【问题标题】:Why might mySQL index cardinality change from >0 to null?为什么 mySQL 索引基数会从 >0 变为 null?
【发布时间】:2013-10-08 21:02:49
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql indexing cardinality


    【解决方案1】:

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

    Analyze table yourtable 
    

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

    【讨论】:

    • 是的,它是 myISAM。我做了一个分析表;我将修改我的帖子以描述我为确定基数所做的工作。
    • 转念一想,我不会:保存更改时不断收到“发生错误”。
    【解决方案2】:

    基数在ALTER TABLE ... DISABLE KEYS; 之后显示为NULL

    确保密钥已启用! ALTER TABLE ... ENABLE KEYS;

    【讨论】:

      猜你喜欢
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      • 2013-05-29
      • 2020-10-08
      • 1970-01-01
      相关资源
      最近更新 更多