mysql中基数异常的简单解析

mysql中基数异常的简单解析
清晨,闹钟在早上收到警告,php-fpm进程数超过阈值,最后发现是一个SQL不使用索引,造成数据库查询慢的执行,最终导致在php-fpm进程数量的增加,基数是更新的分析表feed_comment_info_id_0000命令再次使用指数。

调查过程如下:

SQL语句:
选择ID从feed_comment_info_id_0000哪里obj_id = 101型= 1;

索引信息:
显示指数从feed_comment_info_id_0000
+ + + + --------------------------- ------------ ---------- -------------- + ------------- + + + + ----------- ------------- ---------- -------- + + + + ------ ------------ ---------
表non_unique key_name | | | | seq_in_index column_name整理基数| | | | sub_part |填充空index_type评论| | | |
+ + + + --------------------------- ------------ ---------- -------------- + ------------- + + + + ----------- ------------- ---------- -------- + + + + ------ ------------ ---------
| feed_comment_info_id_0000 | 0 |初级| 1 | ID |一| 6216 |空|空| | btree | |
| feed_comment_info_id_0000 | 1 | obj_type | 1 | obj_id |一| 6216 |空|空| | btree | |
| feed_comment_info_id_0000 | 1 | obj_type | 2 |型|一| 6216 |空值是B树| | | | |
| feed_comment_info_id_0000 | 1 | user_id | 1 | user_id |一| 6216 |空|空| | btree | |
+ + + + --------------------------- ------------ ---------- -------------- + ------------- + + + + ----------- ------------- ---------- -------- + + + + ------ ------------ ---------
5行(0秒)

当通过解释,发现SQL是使用主键小学,不obj_type指标。看着显示指数在指数的基数值,发现这个值是两倍的实际数据。它认为,基数值是不正常的,所以价值是从新分析表命令计算。当命令完成后,可使用索引。

基数的解释

官方文件的解释:

索引中唯一值的个数的估计。这是通过运行分析表或myisamchk的基数是计算基于存储整型数据更新,所以价值不一定精确甚至小表。基数越高,MySQL在做索引时使用索引的机会就越大。

总结:

1。它代表了索引中的唯一值的数量的估计值。如果是MyISAM引擎,这个值是一个准确的价值。如果是InnoDB引擎,这个值是一个估计值,它可能是不同的每一次显示指标执行。

2。在创建索引的时候(除了主键),MyISAM表的基数值为空,而InnoDB表的基数的价值可能是线数;

3,值的大小影响索引的选择。

4、在创建索引的时候,对MyISAM表的基数值为空,而InnoDB表的基数的价值可能是线数。

5,更新一个表或mysqlcheck AA可以通过分析表更新整个数据库

6,可以通过显示索引看到它的值。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部