• mysql性能分析


    查看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”: 使用文件排序
     
     
  • 相关阅读:
    基于cocos2d-x的跑酷游戏,不同高度地面的碰撞检測demo,有兴趣能够看一看
    Dynamics CRM Form表单中通过javascript抓取触发change事件字段的属性名
    【项目实战】---使用ajax完毕username是否存在异步校验
    任务调度(三)——Timer的替代品ScheduledExecutorService简单介绍
    UML——用例图
    frameset怎样实现整个页面的跳转
    linux下怎样用c语言调用shell命令
    替换谷歌自带的安卓开发虚拟机?何不试试以下的虚拟机
    android环境下两种md5加密方式
    IOS-Storyboard控制器切换之Modal(1)
  • 原文地址:https://www.cnblogs.com/mutong1228/p/10281039.html
Copyright © 2020-2023  润新知