愤怒中的小草

博客园 首页 新随笔 联系 订阅 管理

查看mysql线程的状态
show processlist;

1.查看表被锁状态show OPEN TABLES where In_use > 0; 这个语句记录当前锁表状态 

查看正在锁的事物:SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

查看等待锁的事物:SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

清空表缓存
mysql> flush tables;
执行计划查看  explain
mysql> explain select * from clm_treatment;
+----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table         | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra |
+----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------+
|  1 | SIMPLE      | clm_treatment | NULL       | ALL  | NULL          | NULL | NULL    | NULL |  845 |   100.00 | NULL  |
+----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

每一个字段的含义

    • id
      表示查询中select操作表的顺序,按顺序从大到依次执行
    • select_type :
      该表示选择的类型,可选值有: SIMPLE(简单的),
    • type :
      该属性表示访问类型,有很多种访问类型。
      最常见的其中包括以下几种: ALL(全表扫描), index(索引扫描),range(范围扫描),ref (非唯一索引扫描),eq_ref(唯一索引扫描,),(const)常数引用, 访问速度依次由慢到快。其中 : range(范围)常见与 between and …, 大于 and 小于这种情况。
      提示 : 慢SQL是否走索引,走了什么索引,也就可以通过该属性查看了。
    • table :
      表示该语句查询的表
    • possible_keys :
      顾名思义,该属性给出了,该查询语句,可能走的索引,(如某些字段上索引的名字)这里提供的只是参考,而不是实际走的索引,也就导致会有possible_Keys不为null,key为空的现象。
    • key :
      显示MySQL实际使用的索引,其中就包括主键索引(PRIMARY),或者自建索引的名字。
    • key_len :
      表示索引所使用的字节数,
    • ref :
      连接匹配条件,如果走主键索引的话,该值为: const, 全表扫描的话,为null值
    • rows :
      扫描行数,也就是说,需要扫描多少行,采能获取目标行数,一般情况下会大于返回行数。通常情况下,rows越小,效率越高, 也就有大部分SQL优化,都是在减少这个值的大小。注意:  理想情况下扫描的行数与实际返回行数理论上是一致的,但这种情况及其少,如关联查询,扫描的行数就会比返回行数大大增加)
    • Extra
      这个属性非常重要,该属性中包括执行SQL时的真实情况信息,如上面所属,使用到的是”using where”,表示使用where筛选得到的值,常用的有:
      “Using temporary”: 使用临时表 “using filesort”: 使用文件排序
 
 
posted on 2019-01-17 10:52  愤怒中的小草  阅读(180)  评论(0编辑  收藏  举报