作者:mobiledu2502912377 | 来源:互联网 | 2020-08-01 13:53
MySQL性能优化包括表的优化与列类型选择,表的优化可以细分为什么?1、定长与变长分离;2、常用字段与不常用字段要分离;3、在1对多,需要关联统计的字段上添加冗余字段。
MySQL性能优化包括表的优化与列类型选择,表的优化可以细分为什么? 1、定长与变长分离;2、常用字段与不常用字段要分离; 3、在1对多,需要关联统计的字段上添加冗余字段。
一、表的优化与列类型选择
表的优化:
1、定长与变长分离
如 id int,占4个字节,char(4)占4个字符长度,也是定长,time即每一单元值占的字节是固定的。
核心且常用字段,宜建成定长,放在一张表。
而varchar,text,blob这种变长字段,适合单放一张表,用主键与核心表关联起来。
2、常用字段与不常用字段要分离
需要结合网站具体的业务来分析,分析字段的查询场景,查询频率低的字段,单拆出来。
3、在1对多,需要关联统计的字段上添加冗余字段。
看如下的效果:
注:(key_len : 4 )
五、聚簇索引与非聚簇索引
Myisam与innodb引擎,索引文件的异同
Myisam:由news.myd和new.myi两个文件,索引文件和数据文件是分开的,叫非聚簇索引。主索引和次索引都指向物理行(磁盘的位置)
innodb:索引和数据是聚在一起的,所以是聚簇索引。innodb的主索引文件上直接存放该行数据,次索引指向对主键索引的引用。
注意:innodb来说:
1、主键索引 即存放索引值,又在叶子中存储行的数据。
2、如果没有主键(primary key),则会unique key做主键。
3、如果没有unique,则系统生成一个内部的rowid做主键。
4、像innodb中,主键的索引结构中,即存储了主键值又存储了行数据,这种结构称为聚簇索引。
聚簇索引
优势:根据主键查询条目比较少时,不用回行(数据就在主键节点下)
劣势:如果碰到不规则数据插入时,造成频繁的页分裂
相关文章:
Mysql 性能优化
相关视频:
MySQL优化视频教程
以上就是MySQL大数据查询性能优化教程(图)的详细内容,更多请关注 第一PHP社区 其它相关文章!