mysql - 为什么 mySQL 索引基数可能从 >0 变为 null?

标签 mysql indexing cardinality

我在 Centos 上运行 mySQL 5.6,遇到了性能问题。在尝试正确设置空表索引的基数时有一些错误的开始。但是一旦完成并且我的空表的索引被正确设置(设置为 0,而不是 NULL),我就开始了一个填充表的工作。

我定期检查,看到基数稳步上升。然后我开始了另一份工作,看着这个数字继续增长。最后,我同时开始了两个作业(我应该提一下,这些作业与一个服务器进程对话,该服务器进程通过与 mySQL 的单个连接来序列化并发请求)。我几乎立即看到基数开始变为 NULL。

我可以列出更多信息(如果被问到的话,我会列出),但我想知道在插入表时是否有任何正当理由导致索引的基数突然变为 null。

最佳答案

您使用 myisam 吗?您需要使用命令填充它

Analyze table yourtable 

要填充它,mysql 负责生成的唯一索引是主键索引

关于mysql - 为什么 mySQL 索引基数可能从 >0 变为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19258362/

相关文章:

python - 访问不同级别的多级索引,然后将该索引的列转换为数组,然后传递给函数

mysql - Mysql 列上的索引的基数比不同计数低?

php - 我应该在 Windows Server 2012 R2 上使用 wampserver 还是在服务器上安装 apache、mysql 等

mysql - 从结果集创建临时表时出错

mysql - 从 Laravel 5 表单中插入多个选定值

php - 将 blog-detail.php/{slug} 的 URL 重写为 blog-detail/{slug}

sql - 选择顶行时使用了错误的索引

mysql - 索引中的 NULL 基数是一个问题 - MySQL 5.x

mysql - 在mysql workbench中绘制0个或多个基数关系

mysql - 如何在@DatabaseTable中引用不同的模式