千家信息网

MySQL5.6怎么快速定位不合理索引

发表于:2024-10-20 作者:千家信息网编辑
千家信息网最后更新 2024年10月20日,这篇文章主要讲解了"MySQL5.6怎么快速定位不合理索引",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"MySQL5.6怎么快速定位不合理索引"吧!#
千家信息网最后更新 2024年10月20日MySQL5.6怎么快速定位不合理索引

这篇文章主要讲解了"MySQL5.6怎么快速定位不合理索引",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"MySQL5.6怎么快速定位不合理索引"吧!


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

感谢各位的阅读,以上就是"MySQL5.6怎么快速定位不合理索引"的内容了,经过本文的学习后,相信大家对MySQL5.6怎么快速定位不合理索引这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

索引 不合理 定位 学习 内容 中关 统计 必要 就是 思路 情况 数据 文章 更多 知识 知识点 篇文章 经验 跟着 部分 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库中什么是用户 软件开发项目走竞争性谈判 安徽录播服务器云服务器 中国网络安全办法 我的世界服务器账号达到限制 java 数据库加密 天津数据软件开发品质保障 文库 软件开发流程ppt 延安服务器机房空调厂家 sql 备份表数据库表 服务器目录遍历 多少行业需要网络安全 csol为什么不能强化服务器 达梦数据库分库中间件 西安网络技术是什么 网络安全的三个方面包括哪些 方舟手机版进服务器的教程 金融数据库朱世武pdf 互联网科技开锁公司招聘 企业如何做好服务器安全 我的世界小本解说画画服务器 软件开发 企业知识库 服务器产生的高温利用取暖 互联网最科技前沿site 逃离塔科夫数据库任务2攻略 陕西苑鑫驰网络技术有限公司 连云区无忧网络技术专业服务 中央关于网络安全的战略部署 电子商务和互联网科技公司区别 国内花呗软件开发机构
0