Mysql:常用的优化技巧
1.通过show status 命令了解各种sql的执行效率
2. 定位执行效率较低的SQL语句
开启慢查询记录:
打开Mysql配置文件my.ini ,找到 [mysqld] 在其下面添加
long_query_time = 2 // 慢查询时间
log_slow_queries = E:/mysql/logs/log.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件
3.通过explain分析低效率的SQL语句的执行情况
使用explain分析该dql语句:
EXPLAIN SELECT * FROM order_copy WHERE id=12345
会产生如下信息:
select_type:表示查询的类型。
table:输出结果集的表
type:表示表的连接类型(system和const为佳)
possible_keys:表示查询时,可能使用的索引
key:表示实际使用的索引
key_len:索引字段的长度
rows:扫描的行数
Extra:执行情况的描述和说明
注意:要尽量避免让type的结果为all,extra的结果为:using filesort
4.适当的位置加上索引【注意以下几种情况】
- 较频繁的作为查询条件字段应该创建索引
select * from order_copy where id = $id
- 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件
select * from order_copy where sex=’女’
- 更新非常频繁的字段不适合创建索引
select * from order_copy where order_state=’未付款’
- 不会出现在WHERE子句中字段不该创建索引
5.如何建索引