gpt4 book ai didi

mysql - 如何更安全地使用 MyISAM 表?

转载 作者:可可西里 更新时间:2023-11-01 07:29:33 24 4
gpt4 key购买 nike

我喜欢 InnoDB 的安全性、一致性和自检性。

但我需要 MyISAM 的速度和轻量级。

我怎样才能使 MyISAM 不那么容易因崩溃、坏数据等而损坏?通过检查(CHECK TABLE 或 myisamchk)需要很长时间。

我不是在要求事务安全性——这就是 InnoDB 的目的。但我确实想要一个我可以快速重启的数据库,而不是几小时(或几天!)之后。

更新:我不是在问如何更快地将数据加载到表中。我已经对此表示反对,并确定使用 MyISAM 表来加载数据要快得多。我现在要做的是降低使用 MyISAM 表的风险。也就是说,减少损坏的机会,提高恢复速度。

最佳答案

MyISAM 所谓的速度优势实际上很快就会消失 - 它缺少行级锁定这一事实意味着小的更新可能导致大量数据被锁定,并阻塞查询。因此,我对声称的 MyISAM 速度优势持怀疑态度:开始执行多个 UPDATE,每秒的查询量将会下降。

我认为您最好问“如何才能使支持 InnoDB 的应用程序更快?”然后答案涉及缓存数据,也许是在对象级别,在轻量级缓存中 - ACID 是有成本的,而且对于 Web 应用程序来说,它并不是真正需要的。

如果 UPDATE 很少见(如果不是,MyISAM 不是一个好的选择)那么您甚至可以使用 MySQL 查询缓存。

memcached ( http://www.danga.com/memcached/ ) 是一个非常流行的对象缓存选项。根据您的应用程序,您还有其他选择(HTTP 缓存等)

关于mysql - 如何更安全地使用 MyISAM 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com