mysql数据库优化索引_MySQL数据库优化之SQL及索引

1、数据准备

(1)使用MySQL官方提供的sakila数据库:参考 http://dev.mysql.com/doc/index-other.html

(2)下载安装参考:http://dev.mysql.com/doc/sakila/en/sakila-installation.html

source e:/sakila-db/sakila-schema.sql

source e:/sakila-db/sakila-data.sql

(3)本人使用的MySQL版本为5.5.39

2、开启慢查询日志

(1)查看是否开启了慢查询日志

show variables like 'slow_query_log'

3675b70dce7980cbd54e13e31fedba51.png

从上图结果中看出暂时未开启

(2)查询没有使用索引的语句是否开启了慢查询

show variables like '%log_queries_not_using_indexes%'

0c5e13e4209340b9d0bc141200291ec3.png

没有开启,把它开启:

a6e3174d1f427653d99e1b63641abafe.png

(3) 查询记录慢查询日志的时间

show variables like 'long_query_time';

e26ca48330c7757af69f6678edb03663.png

上图是设置了10s时间,为了方便,设置长1:

set global long_query_time=1;      (4)开启慢查询日志功能

set global slow_query_log=on;      (5)查看日志记录位置

show variables like 'slow%';

38ba158d5a53327476cec2f8517829aa.png

也可以对位置进行更改。

set global slow_query_log_file='C:/mysqllogs/first_slow.log';

3、慢查询日志的存储格式

执行如下sql语句,查看日志记录格式:

select * from store limit 5; 查看日志得到如下结果:

# Time: 150816 16:49:11 ---执行SQL的时间

# User@Host: root[root] @ localhost [127.0.0.1] ---执行SQL的主机信息

# Query_time: 0.027000 Lock_time: 0.027000 Rows_sent: 2 Rows_examined: 2

use sakila; -----SQL的执行信息

SET timestamp=1439714951; ----时间戳格式

select * from store limit 5; ----具体的SQL内容

4、慢查询日志之分析工具mysqldumpslow

查看日志(windows下需要安装perl环境),该命令有很多参数:

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldumpslow.pl -t 1 C:\mysqllogs\f

irst_slow.log结果如下:

25a4f787f4c86e7c186c0c508b3dc4a9.png

5、使用explain查询sql的执行计划

explain select * from store limit 5;如下图:

51879c409ab76ac72cd52a2669ba95e7.png

explain 返回各列的含义如下:

table:查询的表

type:显示连接使用的类型,从最好到最差的类型为:const、eq-reg、ref、range、index和ALL

possible-keys:显示可能应用到这张表的索引

key:实际使用的索引

key_len:使用的索引的长度,长度越短越好

ref:显示索引的哪一列被使用了,如果可能的话,是一个常数

rows:请求数据的行数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值