使用 MyISAM 和 InnoDB 表维护 MySQL 数据库

标签 mysql database

我是 MySQL 新手,正在寻找一些数据库维护技巧。

我有一个较旧的网站,它有一个 MySQL 数据库版本 5.1.29,其中混合了 MyISAM 和 InnoDB 表。 99% 的表是 MyISAM,其中两个是 InnoDB。

我发现这篇好文章MySQL Maintenance Tasks for InnoDB with MySQL 5.1描述了 InnoDB 的一些维护任务。

对于我的环境中的数据库维护,您有何建议?

最佳答案

这取决于您的表格的使用方式。那些附加和更新的通常是尽可能最佳的。添加和删​​除大量记录的情况可能会变得更加低效,但针对这些记录的OPTIMIZE TABLE 会收紧它们。

虽然“如果没有损坏就不要修复它”规则在这里适用,但如果您可以在测试实例上执行此操作并且不会出现任何问题,那么将 MyISAM 表转换为 InnoDB 是值得的。 MyISAM 表有许多缺陷,但最主要的缺陷是它们没有记录日志,如果您在不幸的时候遭遇服务器崩溃,它们可能会被损坏而无法修复。

对 MySQL 最好的维护就是保持版本最新。 5.1 落后了许多版本,迁移到 5.5 将提供显着的性能优势。

关于使用 MyISAM 和 InnoDB 表维护 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19596151/

相关文章:

java - 如何使用java跟踪MS Access数据库的每个操作

mysql - SQL : Multiple String Replace (Add a space in front of capital letter(s) starting with 2nd capital letter)

mongodb - 在MongoDb中,当只更新文档的2个字段时,进行常规更新还是原子更新更快?

MySQL 行锁定 myisam innodb

mysql - 希望通过标准文件 io 接口(interface) Linux 设备驱动程序(使用遗留代码)使 MySQL 数据库记录可读为文本文件中类似 CSV 的行

mysql - 如何在 MySQL 中使用 group_concat() 获取总计数?

c# - 如何使用 MongoDB 建模数据

java.sql.SQLException :near"İşlem":Syntax error

python - Django - SQL 查询 - 时间戳

mysql - 如何获取mysql上三个表之间的顺序和总和?