常用的MySQL数据库优化方法

十点数据 1年前 ⋅ 2530 阅读

MySQL数据库优化.jpg

查询部分:

1、等值连接(from a,b)>外连接(from a left join b)>子查询。

2、依照小结果驱集驱动大结果集的原则写where条件的顺序。

3、不使用not in ,可用 not exists代替。

4、尽量减少对字符串、时间类型字段用>、<,可用between and代替。	条件列中不可使用函数 例如:

Year(publishtime)>2016。

5、多表查询中数据量大时,用关联代替  in,不要使用or 连接。

6、养成用explain 检测语句效率

7、多表查询最好的优化方式是建视图,提高表的逻辑独立性,还可以屏蔽原有表结构变化带来的影响。

索引部分:

1、一个查询只能用到一个索引,也就是where条件与索引配合使用的必要性。

2、选择建立单列索引还是复合索引,复合索引同样是依照从左到右的顺序,而且一定要将使用频率最高的字段放在左边。若第一个没有与条件匹配到,则其他字段的索引不会被使用。

3、关联查询时,条件两边字段类型相同并且都建有索引才会提速。

4、建过索引的字段默认值不要为null

5、Like  ‘%XXX%’是不会用到索引的,但like ‘xxxx%’会被用到。

6、尽量不要对大文本或长字符串建索引,可以建前缀索引。

7、经常有删除操作的表、或有大量长文本的表要定期进行碎片整理。用MyISAM引擎为例,我们对表做删除操作时,data中的*.MYD文件的大小是不会变小,会影响我们的存储与查询。所以要定期做清理(OPTIMIZE TABLE  `***`可多个表‘,’连接)

全部评论: 0

    我有话说: