暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL DBA的自我修养(十八)

记忆乘凉 2017-01-05
224

182:如何查找正在慢的 SQL、同时显示执行计划。

通过show full processlist查看当前所有线程的任务,分析timeinfo信息找出正在慢的SQL,然后用explain 来显示慢SQL的执行计划。

 


183:如何模拟执行速度慢的 SQL,对于 dml 如何进行 select 化,模拟成 select 语句。

能把事做好,就得先学会把事做烂,比如说写一个慢SQL

select化:

select … for update        //   x

select … lock in share mode  //   s

 


184:对于慢 sql、有两个执行步骤。

1.执行计划的显示和排错

2.模拟执行 SQL

 


185:如何判断一个 SQL 很糟糕。

执行计划判断

1rows  #执行行数

2key  #索引使用情况

执行判断

1.时间  #执行时间长短

2.实际访问行数 

 


186:解读经典的四个 show 语句。

Explain  //执行计划

show table status like '%t1%';  //看表有多少行

show index from stock;           //看这个表有没有索引

show create table stock \G        //看表的结构

desc stock;                           //看表的详细信息

show session|global status \G 

show variables like '%%';

 


187:添加索引的风险。

1.添加索引会导致全表锁,阻塞事务进行

2.执行时间非常长,资源消耗非常大,索引也是数据页,会占用一定空间

3.索引不适合,不会走索引



188:使用mysqldumpslow解读 slow log。

使用mysqldumpslow来查看慢日志

执行语句

Time:执行时间

执行用户和地址  会话ID

查询时间  锁的时间  发送的行 执行的行


189:要按时清空 slow log,防止日志过大。

清理slow log过程:

  1. 查看慢日志状态

  2. 关闭慢日志

  3. 将慢日志慢更名或者更换目录

  4. 开启慢日志

  5. 将旧的慢日志文件转移或者删除

 


190:解读 mysqldumpslow -t 10 -s at slowmysql.log 的输出和 mysqldumpslow -t 10 -s t slowmysql.log 的输出。

-s,是order的顺序

al  平均锁定时间

ar  平均返回记录时间

at  平均查询时间(默认)

c   计数

l   锁定时间

r   返回记录

t   查询时间

-t,是top n的意思,即为返回前面多少条的数据

-g,后边可以写一个正则匹配模式,大小写不敏感的

1.按平均锁定时间输出10条查询结果

2.按查询时间输出10条查询结果

 


191:理解主键索引、唯一建索引、唯一约束、主键约束,help 掌握语法

主键索引:主键索引是聚集索引,在MySQLinnodb存储引擎中,聚集索引就是住建索引,因为表示索引组织表,而且表又是聚集索引的叶子节点,所以一个表上只允许有一个聚集索引也就是主键索引,创建主键索引的列为主键列。

唯一键索引:建立唯一键索引的列必须具有唯一性。

唯一约束:唯一键的列必须是唯一的。

主键约束:表中有主键列。

当用户创建了一个主键索引/唯一建索引,也就对相应的创建了一个主键约束/唯一键约束,约束是一个逻辑上的概念,用来保证数据的完整性,而索引是一种数据结构,既有逻辑上的概念,也代表着物理存储的方式。具体的语法前面介绍过。


文章转载自记忆乘凉,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论