MySQL 5.5 InnoDB是否将索引保存在磁盘上的内存和表中? 它是否曾经自己的内存caching部分或整个表? 还是它完全依赖于操作系统页面caching(我猜,这是因为Facebook的SSDcaching是为MySQL构build的,是在操作系统级别完成的: https : //github.com/facebook/flashcache/ )? Linux默认使用页面caching的所有可用RAM吗? 所以如果RAM大小超过表大小+进程使用的内存,那么当MySQL服务器启动并首次读取整个表时它将从磁盘,并从整个表上的这一点是在RAM中? 因此,使用炼金术数据库(Redis之上的SQL,所有内容总是在RAM中: http : //code.google.com/p/alchemydatabase/ )应该不会比MySQL更快,因为RAM和数据库大小相同?
阅读innodb_buffer_pool_size。
这就是你告诉innodb有多less内存来caching。 (不使用OS页面caching)
MySQL 5.5文档 – http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html
一个好的博客要遵循 – http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/
将Flashcache看作位于HDD前的L1 SSDcaching。
我不能说Redis vs MySQL的性能,但MySQL在处理语句,遵守ACID等方面还有其他的性能开销。
如果你全部在RAM中,任何系统的性能都将是“好的”。