存储器(HEAP)与读写环境中的InnoDB

Joh*_*nes 3 mysql memory heap innodb locking

我想用MySQL编写实时应用程序.

它需要一个小表(少于10000行),它将在重读(扫描)和写(更新和一些插入/删除)负载下.我说的是每秒10000次更新或选择.这些语句只在少数(少于10个)打开的mysql连接上执行.

该表很小,不包含任何需要存储在磁盘上的数据.所以我问哪个更快:InnoDB或MEMORY(HEAP)?

我的想法是:

  1. 两个引擎都可能直接从内存中提供SELECT,因为即使InnoDB也会缓存整个表.UPDATE怎么样?(的innodb_flush_log_at_trx_commit?)

  2. 我主要担心的是锁定行为:InnoDB行锁与MEMORY表锁.这是否会成为MEMORY实施的瓶颈?

谢谢你的想法!

ggi*_*oux 5

如果你真的需要那么多的并发更新,几乎可以肯定innodb会表现得更好,因为HEAP表只有表级锁,而不是像Innodb那样的行级锁.

如果你从头开始我会调查使用MySQL 5.5或Percona的XtraDB,因为它们都包含了比MySQL 5.1更多的可扩展性改进.