Mysql优化篇

11. January 2017 DataBase 0

show processlist 查看当前在进行的线程

show status 了解各SQL执行频率

使用explain分析低效SQL执行计划

type=ALL 全表扫描,效率最低

type=index 索引全扫描

type=range 索引范围扫描

type=ref 非唯一索引扫描或唯一索引前缀扫描

type=eq_ref 使用唯一索引,相当于使用多表链接中primary_key 或则unique index

type=const/system 单表中最多有一个匹配行,查询速度很迅速

type=null 不用访问表或索引,直接查出结果,适合常量或变量的select

通过show profile; 分析SQL执行效率

select @@have_profiling 查看当前版本数据库是否支持profile

select @@profiling 查看是否开启了profiling

set profiling=1 设置profiling 开启

show profiles; 查看当前SQL运行事件和Query ID

show profile for query ID 查看指定语句具体查询时间

load data infile 路径 into  table 表明   //大批量插入数据

MyISAM 表,插入大量数据   关闭表非唯一索引更新

alter table 表名 disable keys 

load data infile 路径 into  table 表明   //大批量插入数据

alter table 表名 enable keys;
InnoDB 表的话,关闭唯一性校验 

set unique_checks=0

load data infile 路径 into  table 表明   //大批量插入数据

set unique_checks=1

Group BY 用户想要避免排序结果的消耗,可以指定order by null,则不需要进行Filesort,Filesort往往非常消耗时间。


Leave a Reply

Your email address will not be published. Required fields are marked *