博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第五件:mysql优化原则
阅读量:5070 次
发布时间:2019-06-12

本文共 800 字,大约阅读时间需要 2 分钟。

计算机的优化方式:空间换时间,时间换空间

mysql性能优化
写在前面的话:一次只改变一个设置!这是测试改变是否有益的唯一方法
一、表的优化
1、定长与变长分离<把变长字段放一张表,用主键与核心表关联起来>
    定长:  id int,占4个字节;
        char(4),占4个字符长度;
        time
    变长:    varchar,text,blob
2、常用字段和不常用字段分离<结合网站具体的业务来分析>
3、在1对多,需要关联统计的字段上,添加冗余字段<反范式,占用更多的空间换来效率的提升>
二、列的优化
1、字段类型优先级 整型 > date,time > enum,char > varchar > blob,text
    整型     tinyint ,1个字节<255>
        int ,4个字节
    
    time    定长
    
    enum     约束值,内部转换成数字<整型>,若与char类型联查内部要经历串与值得转换
    char    定长,考虑字符集和校对集<排序规则>
    
    varchar 不定长,考虑字符集和校对集<排序规则> 以及字符集的转换
    blob/text 无法使用内存临时表(排序等操作只能在磁盘上进行)
2、尽量少用null,不利于索引
三、索引- btree索引<树>、hash索引<一对一>
    btree作用:提高查询速度、分组速度、排序速度
    btree用途:联合索引,满足左前缀要求
    Myisam<用的非聚簇索引> 和 InnoDB<用的是聚簇索引> 引擎都是用的 btree索引
    
    innodb 的主索引文件上 直接存放该行数据,次索引指向主键的引用
    myisam中 主索引和次索引,都指向物理行(磁盘位置)
    注意:innodb中 主索引无 primary key,则 unique ,都无则系统内部生成一个 rowid作为主索引

转载于:https://www.cnblogs.com/TianMu/p/7595837.html

你可能感兴趣的文章
雨林木风 GHOST_XP SP3 快速装机版YN12.08
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
设计器 和后台代码的转换 快捷键
查看>>
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
01入门
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
基于grunt构建的前端集成开发环境
查看>>
利用循环播放dataurl的视频来防止锁屏:NoSleep.js
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
Abstract Factory Pattern
查看>>