mysql – 疯狂基数计算显示表状态
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 疯狂基数计算显示表状态,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3426字,纯文字阅读大概需要5分钟。
内容图文
![mysql – 疯狂基数计算显示表状态](/upload/InfoBanner/zyjiaocheng/902/0fc9b7b02c3d46edb89c87670c46bb9a.jpg)
Iteration1:
mysql> show table status LIKE "mybigusertable";
+-----------------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+--------------------------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+-----------------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+--------------------------+
| mybigusertable | InnoDB | 10 | Compact | 3089655 | 1686 | 5209325568 | 0 | 797671424 | 0 | 3154997 | 2011-12-04 03:46:43 | NULL | NULL | utf8_unicode_ci | NULL | | InnoDB free: 13775872 kB |
+-----------------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+--------------------------+
mysql> show index from mybigusertable;
+-----------------+------------+-----------------+--------------+--------------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-----------------+------------+-----------------+--------------+--------------------+-----------+-------------+----------+--------+------+------------+---------+
| mybigusertable | 0 | PRIMARY | 1 | someid | A | 3402091 | NULL | NULL | | BTREE
迭代2
mysql> show index from mybigusertable;
+-----------------+------------+-----------------+--------------+--------------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-----------------+------------+-----------------+--------------+--------------------+-----------+-------------+----------+--------+------+------------+---------+
| mybigusertable | 0 | PRIMARY | 1 | someid | A | 2811954 | NULL | NULL | | BTREE
上述两次之间的时间不到5秒.为什么每次调用show index时都会有这么大的差异?
这只发生在这个表中,我检查了几个较大的表,并且每次访问它们时都会显示相同的数字
仅供参考:
mysql> select count(*) from mybigusertable;
+----------+
| count(*) |
+----------+
| 3109320 |
+----------+
1 row in set (4 min 34.00 sec)
几个问题:
>为什么基数变化如此之大,它真的重要吗?
> Optimize Table有多重要?它会使查询更快吗?
解决方法:
MySQL通过从索引中抽取随机页面来确定索引的基数.页面具有不同的记录数和分布.
对于基数不变的索引,索引很可能适合单个页面,或者页面具有均匀分布(例如,来自优化表).
如果计数差异很大,您可以考虑优化表以重新分配记录.这将有助于MySQL选择最佳索引.
内容总结
以上是互联网集市为您收集整理的mysql – 疯狂基数计算显示表状态全部内容,希望文章能够帮你解决mysql – 疯狂基数计算显示表状态所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。