优化一个已有四年历史的 MySQL 数据库

RPK*_*RPK 5 mysql

四年前,我使用 MySQL 5.1 后端开发了一个应用程序。在那之后,我只提供了几次远程支持,但对于应用程序崩溃也是如此,而不是数据库。数据库仍然运行良好。客户按确定的时间表进行备份。我想优化数据库,因为我认为这些年来许多记录被删除和添加。

如何调整数据库并将其调整为适当的形状?需要注意哪些事项?

Rol*_*DBA 3

您可以通过两件事来消除表碎片并分配适当的缓存资源:

选项 1:在每个表上运行OPTIMIZE TABLE 。这将单独收缩每个表并计算所有表的索引统计信息。

选项 2:mysqldump 所有内容并重新加载备份。当然,每个表都会被删除并重新创建,而不会产生表碎片。索引也被重建。

您可能还想计算 InnoDB Buffer Pool 和 MyISAM Ke​​y Cache 的适当大小。无论推荐大小为多少,请确保innodb_buffer_pool_sizekey_buffer_size的总大小不超过计算机上安装的 RAM 的 75%。