位置: 编程技术 - 正文
推荐整理分享简单解析MySQL中的cardinality异常(mysql -ne),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql -ne,mysql 语法解析,mysql详细介绍,mysql语句解析过程,mysql原理解析,mysql的理解,mysql原理解析,mysql原理解析,内容如对您有帮助,希望把文章链接给更多的朋友!
前段时间,一大早上,就收到报警,警告php-fpm进程的数量超过阈值。最终发现是一条sql没用到索引,导致执行数据库查询慢了,最终导致php-fpm进程数增加。最终通过analyze table feed_comment_info_id_ 命令更新了Cardinality ,才能再次用到索引。排查过程如下:sql语句:
索引信息:
通过explian查看时,发现sql用的是主键PRIMARY,而不是obj_type索引。通过show index 查看索引的Cardinality值,发现这个值是实际数据的两倍。感觉这个Cardinality值已经不正常,因此通过analyzea table命令对这个值从新进行了计算。命令执行完毕后,就可用使用索引了。
Cardinality解释官方文档的解释:An estimate of the number of unique values in the index. This is updated by running ANALYZE TABLE or myisamchk -a. Cardinality is counted based on statistics stored as integers, so the value is not necessarily exact even for small tables. The higher the cardinality, the greater the chance that MySQL uses the index when doing总结一下:1、它代表的是索引中唯一值的数目的估计值。如果是myisam引擎,这个值是一个准确的值。如果是innodb引擎,这个值是一个估算的值,每次执行show index 时,可能会不一样2、创建Index时(primary key除外),MyISAM的表Cardinality的值为null,InnoDB的表Cardinality的值大概为行数;3、值的大小会影响到索引的选择4、创建Index时,MyISAM的表Cardinality的值为null,InnoDB的表Cardinality的值大概为行数。5、可以通过Analyze table来更新一张表或者mysqlcheck -Aa来进行更新整个数据库6、可以通过 show index 查看其值
几个缩减MySQL以节省磁盘空间的建议 我们在工作中时常会遇到一些客户的TPSQPS都不太高,但磁盘占用非常大,一旦单实例空间太大,像内存、网络、CPU以及备份都将增加相应的开销。可能仅
MySQL中一些优化straight_join技巧 在oracle中可以指定的表连接的hint有很多:orderedhint指示oracle按照from关键字后的表顺序来进行连接;leadinghint指示查询优化器使用指定的表作为连接的首
通过MySQL优化Discuz!的热帖翻页的技巧 写在前面:discuz!作为首屈一指的社区系统,为广大站长提供了一站式网站解决方案,而且是开源的(虽然部分代码是加密的),它为这个垂直领域的行
标签: mysql -ne
本文链接地址:https://www.jiuchutong.com/biancheng/347319.html 转载请保留说明!友情链接: 武汉网站建设