考虑这种情况,假设如下:
在所述假设下MyISAM的优点:
总而言之,我对MyISAM非常满意,但有一个例外。在所述假设下,MyISAM有一个主要缺点,即表级锁定。当UPDATE向经常读取的表运行时,所有读取都被阻止。毋庸置疑,这会导致必须解决的主要性能问题。
我的问题是:
答案 0 :(得分:1)
innodb_file_per_table
选项“更加喜欢”它。然而,InnoDB仍会将关键信息存储在其系统级数据文件中,并且您无法通过重命名数据库来重命名数据库,就像使用MyISAM一样重命名数据库。答案 1 :(得分:0)
您是否真的使用myisam和innodb表获取了性能指标?根据我的经验,当你考虑从innodb获得的所有ACID好处时,速度上的差异并不是那么多。只是单独锁定表会影响速度,因此innodb总体上会更快。
另请注意,myisam在插入时要快得多,而不是选择。你只插入5%的时间......做数学。
你总是可以使用innodb来做mysqldump,所以你的备份过程是一样的。
答案 2 :(得分:0)
我知道有些项目使用镜像数据库进行搜索。它倾向于针对搜索进行优化,有时甚至可以在不同的机器上运行,只是为了隔离开销。
这里唯一的缺点是让它们保持同步有点麻烦。如果搜索表中的陈旧数据不是太麻烦,那么它可能是最好的选择。如果性能是一个问题。
这不是我最喜欢的解决方案,但理论上它非常简单。
答案 3 :(得分:0)
换句话说,我认为你一定要试试InnoDB并对应用程序的性能进行基准测试。迁移非常简单,所以我没有理由不去尝试。对我来说,InnoDB很长一段时间是默认选择。