如何优化MYSQL语句让网站大提速系列2之SQL语句的优化

 Mysql   高蒙   阅读(1671)   评论(0)   2016-02-15 11:52:10    慢查询的开启 慢查询记录日志 慢查询的查询 mysql优化 网站提速 如何优化mysql 优化mysql的方法 


本文是如何优化MYSQL语句让网站提速系列的第二篇,sql语句的优化。主要是如何的显示慢查询、定位慢查询和explain分析sql语句。

一、定位慢查询。增、删、改所占10%,查询所占90%。

二、如何显示慢查询。

三、如何定位慢查询。

四、explain分析SQL语句。

 

如何显示慢查询

指令描述
show status关于数据库的状态
show status like 'com_insert'显示执行多少次的插入
show status like 'com_update'显示执行多少次的更新
show status like 'com_delete'显示执行多少次的删除
show status like 'com_select'显示执行多少次的查询
show status like 'uptime'显示mysql服务启动多长时间,如果时间过长,表存储引擎是myisam,进行碎片整理
show status like 'slow_queries'显示慢查询的个数
show variables like 'long_query_time'显示慢查询的时间,默认10秒
set long_query_time=0.5设置慢查询的时间

show [ seesion | global ] status like ... 默认是会话级别(session)。如果想从mysql启动开始的时候就记录,那么就是用global。

如何定位慢查询(开启慢查询日志)

一旦开启慢查询日志,慢查询日志文件的位置在mysql数据库的配置文件my.ini中设置。

datadir="F:/data/mysql/mysql-error.log"  

此处是设置将来保存慢查询日志的文件位置。默认情况下,mysql不会记录慢查询日志。

第一步:如何开启慢查询服务

1、先停止mysql服务。

    已配置环境变量

net stop mysql

    mysql.exe  客户端服务

    mysqld.exe 服务器服务 

 

2、通过安全模式启动,就会记录慢查询语句。

  未配置环境变量

路径\mysql\bin
路径\mysql\bin>mysqld --safe-mode --slow-query-log
                       安全模式启动  开启慢查询日志 

 

 注意:在安全模式下开启,在系统的服务中查看mysql是不显示正在运行的。

以上操作是针对于mysql5.5版本。

如果是低版本:

mysqld -log-slow-queries="d:/mylog.log";

3、关闭安全模式启动mysql。

4、set long_query_time=0.5。

5、select * from table。

6、到慢查询日志中的查找对应的SQL语句。

explain分析SQL语句

1、如果用主键去查询,自动会使用主键索引。

2、如果创建的是复合索引,只有左边可以用,右边不能用。

3、模糊查询时,%或者_写在左边没有索引,写在右边会用到索引。

4、在条件的语句中使用or,那么or两边的字段都必须要有索引,有一个没有,索引将无法使用。

5、如果一个字段是字符型,必须要加引号。

 

例如:

explain select * from destoon_info_22 where title='脉动式灭菌器';

+----+-------------+-----------------+------+---------------+-------+---------+-------+------+-------------+
| id | select_type | table           | type | possible_keys | key   | key_len | ref   | rows | Extra       |
+----+-------------+-----------------+------+---------------+-------+---------+-------+------+-------------+
|  1 | SIMPLE      | destoon_info_22 | ref  | title         | title | 303     | const |    1 | Using where |
+----+-------------+-----------------+------+---------------+-------+---------+-------+------+-------------+

possible_keys 和 key 就是索引的名称。




相关文章



我要评论


站长昵称:(*)

输入内容:


评论列表


高蒙

男,程序猿一枚

 

人生要是没有理想, 那跟一条咸鱼有什么分别。


关于我

  http://www.shuchengxian.com

高蒙个人博客是以PHP技术为主的程序员个人博客。博客主要发布php开发中遇到的问题以及解决办法,同时个人博客也分享网站模板素材,jquery插件等方面素材。


站点声明:相关侵权、举报、投诉及建议等,请发E-mail:936594075#qq.com(#替换成@)。

Copyright © 2018, www.shuchengxian.com, All rights reserved. 个人博客皖公网安备 34152302000022号 皖ICP备15015490号

关键词:个人博客,PHP博客,PHP博客程序,高蒙博客,高蒙个人博客,php程序员博客,程序员个人博客