数据库
首页 > 数据库> > mysql查看索引利用率

mysql查看索引利用率

作者:互联网

-- mysql查看索引利用率
-- 如果很慢把排序去掉,加上limit  并且在where条件中限定表名。
-- cardinality越接近0,利用率越低

SELECT 
  t.TABLE_SCHEMA,
  t.TABLE_NAME,
  INDEX_NAME,
  CARDINALITY,
  TABLE_ROWS,
  CARDINALITY / TABLE_ROWS AS SELECTIVITY 
FROM
  information_schema.TABLES t,
  (SELECT 
    table_schema,
    table_name,
    index_name,
    cardinality 
  FROM
    information_schema.STATISTICS 
  WHERE (
      table_schema,
      table_name,
      index_name,
      seq_in_index
    ) IN 
    (SELECT 
      table_schema,
      table_name,
      index_name,
      MAX(seq_in_index) 
    FROM
      information_schema.STATISTICS 
    GROUP BY table_schema,
      table_name,
      index_name)) s 
WHERE t.table_schema = s.table_schema 
  AND t.table_name = s.table_name 
  AND t.table_rows != 0 
  AND t.table_schema NOT IN (
    'mysql',
    'performance_schema',
    'information_schema'
  ) 
ORDER BY SELECTIVITY ;

 

标签:index,TABLE,name,information,索引,mysql,table,利用率,schema
来源: https://www.cnblogs.com/LoveBB/p/16334128.html