我想使用MySQL编写一个实时应用程序.
它需要一个小表(少于10000行),该表将承受大量读取(扫描)和写入(更新以及某些插入/删除)的负载.我说的真的是每秒10000次更新或选择.这些语句将仅在少数几个(少于10个)打开的mysql连接上执行.
该表很小,不包含任何需要存储在磁盘上的数据.所以我问哪个更快:InnoDB或MEMORY(HEAP)?
我的想法是:
>这两个引擎都可能直接从内存中提供SELECT,因为InnoDB也会缓存整个表.那更新呢? (innodb_flush_log_at_trx_commit?)
>我主要关心的是锁定行为:InnoDB行锁定与MEMORY表锁定.这会成为MEMORY实现中的瓶颈吗?
感谢您的想法!
解决方法:
如果确实需要进行大量并发更新,那么几乎可以肯定innodb的性能会更好,因为HEAP表仅具有表级锁,而不具有像Innodb这样的行级锁.
如果您从头开始,我将研究使用MySQL 5.5或Percona的XtraDB,因为它们都比现有的MySQL 5.1包含了许多可扩展性改进.