我正在尝试确定 MySQL 优化器在估计(准备)查询的成本时从何处获取可用于表的索引列表。
我查看了 my.ini 并看到了各种默认设置。我的数据库在一台独立的 PC 上运行。我想总体上优化 InnoDB 和 MySQL 的性能以提高性能。没有磁盘空间限制。我应该更改哪些默认设置以优化以获得更好的性能、可靠性和可能的时间点备份 [高可用性]。
已编辑
目前,每当我通过 MySQL Administrator 上的维护运行“优化表”时,它都会显示:
表不支持优化,改为重新创建+分析
在所有桌子上。我所有的表都是InnoDB,但为什么不支持Optimize?
我一直有这个问题一段时间:https : //stackoverflow.com/questions/7770695/mysql-query-slow-until-reindex-column
看起来一切都很好,当我突然对表进行大量写入时,索引似乎死了,查询最多需要 2 秒。当我有很多流量时总是会发生这种情况,因此连锁反应几乎会使我的数据库服务器停机。
如果我重建索引,一切都会好起来的。什么可能导致索引中的这些突然“中断”?如何预防?
表定义:
+---------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-----------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| user_id | mediumint(8) unsigned | YES | MUL | NULL | |
| created | int(11) unsigned | YES | MUL | NULL | |
| track | int(11) unsigned | YES | MUL | NULL | |
| prop | …Run Code Online (Sandbox Code Playgroud) 在 MySQL 5.5.20 的 vanilla 版本中,InnoDB 表索引统计信息何时更新?哪些事件会触发此类更新?我看到评论表明以下内容可能会触发它: