MYSQL 之SET GLOBAL innodb_buffer_pool_size =n
工作遇到一个情况是索引相同的情况下,mysql服务在linux上运行很快,在windows服务器上运行很慢,版本是V5.7以后得版本,同事查找了下说应该设置
SET GLOBAL innodb_buffer_pool_size =n,这个值貌似默认为128M。作用是
表示缓冲池字节大小,InnoDB缓存表和索引数据的内存区域。mysql默认的值是128M。最大值与你的CPU体系结构有关,在32位操作系统,最大值是 4294967295 (2^32-1) ,在64 位操作系统,最大值为18446744073709551615 (2^64-1)。在32位操作系统中,CPU和操作系统实用的最大大小低于设置的最大值。如果设定的缓冲池的大小大于1G,设置innodb_buffer_pool_instances的值大于1
其中n这个值越大性能越好,这个说法是不科学的,
但是查了一下网上的说法,正确的配置方法,应该是根据下面的情况来判断
mysql> SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_data';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| Innodb_buffer_pool_pages_data | 1388 |
+-------------------------------+-------+
1 row in set (0.00 sec)
mysql> SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_total';
+--------------------------------+--------+
| Variable_name | Value |
+--------------------------------+--------+
| Innodb_buffer_pool_pages_total | 131071 |
+--------------------------------+--------+
1 row in set (0.00 sec)
mysql> SHOW GLOBAL STATUS LIKE 'Innodb_page_size';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.00 sec)
'Innodb_buffer_pool_pages_data' X 100 / 'Innodb_buffer_pool_pages_total'
当结果 > 95% 则增加 innodb_buffer_pool_size, 建议使用 ram total 75%
当结果 < 95% 则减少 innodb_buffer_pool_size,
建议 'Innodb_buffer_pool_pages_data' X 'Innodb_page_size' X 1.05 / (1024*1024*1024)
如果不在合理范围内的话貌似设置的数值再大也不能体现出优化效果,反而可能会造成
操作系统变慢占用更多的内存。
最新文章
- Nginx学习笔记(二) Nginx--connection&;request
- [转] 主流JS框架中DOMReady事件的实现
- C#分部方法
- C# 中将多个空格替换成一个空格
- c#通过Dotpeek调试dll
- Cycling Label
- PowerShell 远程管理之 about_Remote_Troubleshooting
- Android: ADT 23.0.2
- Effective C++学习笔记(Part One:Item 1-4)
- android 5.0 -- Palette
- C/C++ 知识点---LIB和DLL的区别与使用(网摘)
- Centos下快速安装Nginx
- supervisor进程管理工具的使用
- .NET Framework和 .Net Core实现不一致的API之 `EmailAddressAttribute`
- 内网ntp时间同步配置
- 4.请介绍一下c++和Java的区别
- 「NOI2003」逃学的小孩
- 终极大招——Scrapy框架
- NYOJ 92
- C#的SubString(int start,int end);