key_buffer_size

key_buffer_size指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和Key_reads,可以知道key_buffer_size设置是否合理。比例key_reads /key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可以使用SHOW STATUS LIKE ‘key_read%'获得)。

key_buffer_size只对MyISAM表起作用。即使你不使用MyISAM表,但是内部的临时磁盘表是MyISAM表,也要使用该值。可以使用检查状态值created_tmp_disk_tables得知详情。

对于1G内存的机器,如果不使用MyISAM表,推荐值是16M(8-64M)

提升性能的建议:

1.如果opened_tables太大,应该把my.cnf中的table_cache变大

2.如果Key_reads太大,则应该把my.cnf中key_buffer_size变大.可以用Key_reads/Key_read_requests计算出cache失败率

3.如果Handler_read_rnd太大,则你写的SQL语句里很多查询都是要扫描整个表,而没有发挥键的作用

4.如果Threads_created太大,就要增加my.cnf中thread_cache_size的值.可以用Threads_created/Connections计算cache命中率

5.如果Created_tmp_disk_tables太大,就要增加my.cnf中tmp_table_size的值,用基于内存的临时表代替基于磁盘的

MySQL优化小案例:key_buffer_size

key_buffer_size是对MyISAM表性能影响最大的一个参数,下面一台以MyISAM为主要存储引擎服务器的配置:

mysql> SHOW VARIABLES LIKE '%key_buffer_size%';

下面查看key_buffer_size的使用情况:

mysql> SHOW GLOBAL STATUS LIKE '%key_read%';

+-------------------+-----------------+

| Variable_name     | Value           |

+-------------------+-----------------+

| Key_read_requests | 2454354135490   |

| Key_reads         | 23490           |

+-------------------+-----------------+

2 rows in set (0.00 sec)

一共有Key_read_requests个索引请求,一共发生了Key_reads次物理IO

Key_reads/Key_read_requests ≈ 0.1%以下比较好。

key_buffer_size设置注意事项

1.单个key_buffer的大小不能超过4G,如果设置超过4G,就有可能遇到下面3个bug:

http://bugs.mysql.com/bug.php?id=29446

http://bugs.mysql.com/bug.php?id=29419

http://bugs.mysql.com/bug.php?id=5731

2.建议key_buffer设置为物理内存的1/4(针对MyISAM引擎),甚至是物理内存的30%~40%,如果key_buffer_size设置太大,系统就会频繁的换页,降低系统性能。因为MySQL使用操作系统的缓存来缓存数据,所以我们得为系统留够足够的内存;在很多情况下数据要比索引大得多。

3.如果机器性能优越,可以设置多个key_buffer,分别让不同的key_buffer来缓存专门的索引

上面只是对"新手"来说的,我们还可以更深入地优化key_buffer_size,使用"show status"来查看"Key_read_requests, Key_reads, Key_write_requests  以及Key_writes ",以调整到更适合你的应用的大小,Key_reads/Key_read_requests的大小正常情况下得小于0.01

参考资料:

http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_key_buffer_size

根据上述情况脚本之家小编把key_buffer_size设置为2048M解决了问题。

mysql buffer size_优化mysql之key_buffer_size设置相关推荐

  1. tcmalloc mysql 缓存_Tcmalloc优化Mysql内存管理

    实验环境: OS:Redhat 5.3 64bit Mysql:mysql 5.5.29 TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能, ...

  2. MySQL8.0优化 - 优化MySQL服务器、优化MySQL的参数、优化数据类型

    文章目录 学习资料 优化MySQL服务器 优化服务器硬件 配置较大的内存 配置高速磁盘系统 合理分布磁盘I/O 配置多处理器 优化MySQL的参数 innodb_buffer_pool_size ke ...

  3. mysql join buffer_MySQL cache之join buffer的优化

    MySQL cache之join buffer的优化 mysql的连接(join)处理只有nest loop一种算法,基本原理是先取第一个表的行,然后再依次 扫描第二个表中的所有行进行匹配,一旦匹配成 ...

  4. MySQL主从复制性能优化

    MySQL主从复制性能优化 MySQL的主从复制的基本原理是从库连接到主库,主库生成一个主库DUMP线程,该DUMP线程的主要任务是 一直挖掘binlog日志,然后发送到从库的IO线程,IO线程接收到 ...

  5. php面试专题---MYSQL查询语句优化

    php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...

  6. MySQL 常用SQL优化

    MySQL 常用SQL优化 MySQL 常用SQL优化: 一.大批量插入数据: 1.对于load MyISAM存储引擎的表,可以通过关闭打开MyISAM表非唯一索引的更新来提升导入速度:   例:my ...

  7. mysql tcmalloc_Tcmalloc优化MySQL内存管理

    TCMalloc是什么? TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多. ...

  8. 深入理解MySQL索引和优化丨MySQL的核心原理

    索引介绍 文章相关视频讲解: C/C++ Linux服务器开发高级架构学习视频点击:C/C++Linux服务器开发/Linux后台架构师-学习视频 理解mysql-索引及其优化 MySQL的核心原理分 ...

  9. mysql my.cnf key_buffer_size_优化mysql之key_buffer_size设置

    key_buffer_size key_buffer_size指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度.通过检查状态值Key_read_requests和Key_reads,可以 ...

最新文章

  1. Android数据库文件的导出
  2. 如何去除本地文件与svn服务器的关联
  3. 图片太多加载过慢?学学图片懒加载吧
  4. 国内淘宝镜像 cnpm转npm
  5. 网络编程模型综述 之 多线程模型
  6. python的基本语术_一起学python-彻底掌握专业术语“变量”的概念
  7. 【分布计算环境学习笔记】4 Enterprise Java Bean
  8. javaSE---一个小项目(ATM机)
  9. STL之stack容器
  10. 【原创】软件测试基础流程
  11. MariaDB安装报1067错误解决方式
  12. 站大爷代理IP工具主要功能介绍
  13. emacs-打开和关闭
  14. 【必看】没用的旧手机还能换钱,换换回收手机回收价格表曝光
  15. hyperf中的缓存之CacheEvict
  16. C++字符,字符串,数字,小写,大写的相互转化
  17. AsLine v4.0正式发布-CAD地形图切剖面辅助插件
  18. HASP SRM 加密狗
  19. 推广引流方法有哪些?
  20. 记录一下,西门子的自定数据类型在威纶通的触摸屏中不支持标签导入

热门文章

  1. 类和JSON的序列化与反序列化
  2. ICRA 2021 | π-LSAM:基于平面优化的激光雷达平滑与建图算法
  3. 训练Epoch, Batch, Iteration
  4. java 操作uart串口_【tty】应用程序调用write写串口调用流程
  5. 算法结构2.希尔排序
  6. python(matplotlib)画柱状图(1)
  7. 计算机科学与技术考,计算机科学与技术考研
  8. pwd python 安装 模块_Python自动化办公之邮件定时发送
  9. 生信服务器入门级基本设置
  10. 零基础入门学习Python(13)-字符串