mysql5.7创建索引_mysql5.6, mysql5.7什么时候该创建索引?

# 若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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值