服务器基础设施:
我有一个运行 nginx + wordpress + mysql 的 centos 服务器。
问题:
mysql 频繁关闭并且 wordpress 显示“无法连接到数据库”警报。
发现问题:
看来问题是由于 innodb_buffer_pool 大小造成的。
分析:
在检查日志并阅读有关缓冲池的信息后,我了解到如果我使用混合存储引擎(myISAM 和 innodb)。事实上,我确实一直在使用这两种引擎。
问题:
- 如何查找mysql缓冲区在工作过程中是否相互竞争?
- 如果可以使用某种方法查找,可以通过发送电子邮件/短信来实现自动查找吗?
答案1
简短答案
- MyISAM 仅缓存来自
.MYI
文件的索引。 - InnoDB缓存数据和索引页(InnoDB Page为16K)
除非 mysqld 之外存在内存分配问题(通常是由于存在大量 DB 连接,其中每个 DB 连接都为其自己的会话分配大量内存),否则键缓冲区和 InnoDB 缓冲池不可能竞争
较长的答案
请参阅我的旧帖子
Apr 14, 2011
:InnoDB 和 MyISAM 之间的主要区别是什么?Apr 24, 2012
:打开和关闭数据库连接的代价有多大?