# 若CARDINALITY / TABLE_ROWS小于10%(经验值),那么表示数据重复率较高,通常需要考虑是否有必要创建该索引 
######################################################### 
# mysql 5.6
目前5.6的STATISTICS表中关于Cardinality的统计是错误的!!!具体可见MySQL bugs #78066。
 但是,表innodb_index_stats中关于Cardinality值得统计依然是正确的  
 #########################################################
 
SELECT  
     t.TABLE_SCHEMA, 
     t.TABLE_NAME,INDEX_NAME, 
     s.CARDINALITY,  
     t.TABLE_ROWS,  
     s.CARDINALITY/t.TABLE_ROWS AS SELECTIVITY 
FROM 
    information_schema.TABLES t, 
    (SELECT database_name,table_name,index_name,stat_value AS CARDINALITY 
     FROM mysql.innodb_index_stats  
     WHERE (database_name,table_name,index_name,stat_name) IN  
           (SELECT table_schema,table_name,index_name,CONCAT('n_diff_pfx0',MAX(seq_in_index)) 
              FROM information_schema.STATISTICS 
          -- where table_name='xxxxx'  
          GROUP BY table_schema , table_name , index_name )) s 
WHERE t.table_schema = s.database_name  
  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;
以下部分出自: 
http://mp.weixin.qq.com/s?__biz=MjM5MjIxNDA4NA==&mid=401131835&idx=1&sn=37c5fd9d3d8670fb379a1e0565e50eeb&scene=0#wechat_redirect 
############################################################# 
# mysql 5.7   
表STATISTICS记录了各个索引的CARDINALITY值 
############################################################# 
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;









