就是针对一个数据库中的某些应该创建的索引但是又没有创建,导致为了查询这些数据服务器的资源被严重占用。如何能从统计表中查询到这些,然后创建出应该创建的,但是又没有创建的索引。在MS SQL中有这样的统计表,看到资料说MySQL的也有,但是没找到更详细的,请多多指教。

解决方案 »

  1.   


    mysql> show variables like '%log_queries_not_using_indexes%';
    +-------------------------------+-------+
    | Variable_name                 | Value |
    +-------------------------------+-------+
    | log_queries_not_using_indexes | OFF   |
    +-------------------------------+-------+
    1 row in set (0.00 sec)
    有个这个参数  动态打开就行set global   log_queries_not_using_indexes =on;然后没有走索引的查询全部写入慢查询日志
    前提是你慢查询日志也是打开的  
    日志可以人肉看 也可以用工具pt-query-digest分析
      

  2.   

    不过未用和缺少索引还是有很大差别,这种层面是没办法和 SQL Server 比的