首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何优化MySQL的内存使用?

如何优化MySQL的内存使用?
EN

Server Fault用户
提问于 2011-09-27 22:06:21
回答 2查看 9.9K关注 0票数 9

我的设置(示例)

我在Amazon超大型EC2实例上运行Linux,具有以下规范:

  • 7 GB内存
  • 20个EC2计算单元(8个虚拟核,每个核心2.5个EC2计算单元)
  • 1690 GB本地实例存储
  • 64位平台

我有两个大型MySQL数据库运行在MyISAM存储引擎上。一个是2GB,另一个是500 2GB。我希望确保MySQL使用尽可能多的内存,以最大限度地提高查询速度。我知道有许多MySQL内存配置选项,如key_buffer_sizeMyISAM_sort_buffer_size,,但我不熟悉优化这些配置选项。

问题

  1. 如何检查MySQL当前在Linux系统上使用的内存?
  2. 如何最大化/优化MySQL内存的使用?
  3. 假设我的查询和模式是优化的,我还应该考虑哪些其他的更改?
EN

回答 2

Server Fault用户

回答已采纳

发布于 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数据库等等。

票数 7
EN

Server Fault用户

发布于 2011-09-28 00:17:01

如果您需要确保MySQL使用它所需的所有内存,则必须切换到InnoDB。除非使用MySQL FULLTEXT搜索功能,否则不会出现任何严重问题。

在MyISAM的情况下,会使用许多缓存,包括内部MySQL密钥缓冲区和系统缓存。如果您想要最好的性能,您需要为任何一个缓存留出空间,但我仍然不建议使用MyISAM,特别是如果数据库的写量很大: MyISAM在写时锁定整个表,而InnoDB只锁受影响的行。

即使将所有数据库都放入内存中,由于索引不足或其他原因,仍然可能会出现运行缓慢的查询。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/330522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档