我在Amazon超大型EC2实例上运行Linux,具有以下规范:
我有两个大型MySQL数据库运行在MyISAM存储引擎上。一个是2GB,另一个是500 2GB。我希望确保MySQL使用尽可能多的内存,以最大限度地提高查询速度。我知道有许多MySQL内存配置选项,如key_buffer_size和MyISAM_sort_buffer_size,,但我不熟悉优化这些配置选项。
发布于 2011-09-27 23:27:20
这是个很难的话题。不能在这里回答,整个书籍都已经写过了。我建议你的innodb_buffer_pool_size足够大。如果您正在使用myisam表,那么请检查key_buffer_size。此外,还应考虑table_cache和max_connections。
以下是一些可以帮助你的东西:
http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/ http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/ http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_缓冲器_池子_大小/
编辑:
正如@ DB 010所言,考虑DB的使用类型是很重要的。对重读DB的调优与重写有很大不同。此外,你也可以考虑其他的策略。比如Memcached、nosql数据库等等。
发布于 2011-09-28 00:17:01
如果您需要确保MySQL使用它所需的所有内存,则必须切换到InnoDB。除非使用MySQL FULLTEXT搜索功能,否则不会出现任何严重问题。
在MyISAM的情况下,会使用许多缓存,包括内部MySQL密钥缓冲区和系统缓存。如果您想要最好的性能,您需要为任何一个缓存留出空间,但我仍然不建议使用MyISAM,特别是如果数据库的写量很大: MyISAM在写时锁定整个表,而InnoDB只锁受影响的行。
即使将所有数据库都放入内存中,由于索引不足或其他原因,仍然可能会出现运行缓慢的查询。
https://serverfault.com/questions/330522
复制相似问题