MySql缓存中的关键项

MySql的设计中大量使用了缓存,下面这些缓存配置项是应该熟知的

key_buffer_size

key_buffer_size是设置MyISAM表索引的缓冲区大小,此参数对MyISAM表性能影响最大

对于内存在4GB左右的服务器来说,该参数可设置为256MB或384MB

table_cache

table_cache是指表高速缓存的大小。当MySQL访问一个表时,如果在MySQL表缓冲区中还有空间,那么这个表就被打开并放入表缓冲区,这样做的好处是可以更快速地访问表中的内容

一般通过查看 Open_tables 和 Opened_tables 这两个状态的值,来判断是否需要增加table_cache的值,如果open_tables接近table_cache,并且 Opened_tables这个值在逐步增加,那就要考虑增加table_cache的大小了

sort_buffer_size

sort_buffer_size指的是查询排序时所能使用的缓冲区大小,系统默认大小为2MB

该参数对应的分配内存是每连接独占的,如果有100个连接,那么实际分配的总排序缓冲区大小为100×6MB=600MB。所以,对于内存在4GB左右的服务器来说,推荐将其设置为6~8MB

read_buffer_size

read_buffer_size指的是读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享,值的设置可参照sort_buffer_size

join_buffer_size

join_buffer_size指的是联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享,值的设置可参照sort_buffer_size

thread_cache_size

thread_cache_size用于设置Thread Cache池中可以缓存的连接线程最大数量,可设置为0~16384,默认为0

这个值表示可以重新利用保存在缓存中线程的数量,当断开连接时,如果缓存中还有空间,那么客户端的线程将被放到缓存中;如果线程重新被请求,那么请求将从 缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,增加这个值可以改善系统性能

1GB内存 -> 8

2GB内存 -> 16

3GB内存 -> 32

4GB及以上可以给此值为64或更大的数值

query_cache_size

query_cache_size指定MySQL查询缓冲区的大小。观察MySQL状态,如果 Qcache_lowmem_prunes 的值非常大,则表明经常出现缓冲不够的情况;如果Qcache_hits的值非常大,则表明查询缓冲使用得非常频繁;对于 Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多

tmp_table_size

tmp_table_size用于设置内存临时表的最大值。如果超过该值,则会将临时表写入磁盘,其范围为1KB到4GB

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2015-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ascii0x03的安全笔记

PHP防止SQL注入的方法

菜鸟今天刚刚学习PHP和SQL方面的内容,感觉坑比较深,做一下简单的记录,欢迎批评交流。 主要有两种思路一种是过滤,一种是使用占位符,据说第二种可以根本解决SQ...

431100
来自专栏电光石火

springboot整合websocket实现消息推送

69230
来自专栏菩提树下的杨过

mybatis 3.x 缓存Cache的使用

mybatis 3.x 已经支持cache功能了,使用很简单,在mappper的xml文件里添加以下节点: 1 <mapper namespace="com....

237100
来自专栏Golang

influxdb 简介与实现(一)

InfluxDB是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及执行分析。

32840
来自专栏Spring相关

Tomcat改端口号;修改访问路径,以及配置Context 标签以后Tomcat启动不了

docBase:war包的名称(注意 这里如果找不到相应的war包,tomcat启动不了)

37620
来自专栏雪胖纸的玩蛇日常

54.1 怎样才算学会django? 知道这28个知识点才算会django2

25750
来自专栏吴伟祥

RESTful接口入门 转

从下面的图片可以看出,当我们需要把相同的数据展示到不同的界面上时,提供一个可以访问后台的接口,前台只负责将数据友好的,华丽的展示出来即可。而不需要为每一个前台都...

14030
来自专栏Linyb极客之路

RESTful API设计指南

在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的...

13030
来自专栏文渊之博

SQL 扩展事件

    在本篇,我通过使用新建“Session ”对话框来创建新的扩展事件会话。定义一个自己的扩展事件,动作和谓词,并且发布一个以收集事件数据为目的的会话。 首...

21870
来自专栏数据小魔方

MySQL基础入门——MySQL与R语言、Python交互

MySQL作为z最为流行的关系型数据库管理平台之一,与绝大多数数据分析工具或者编程语言都有接口,今天这一篇分享如何将MySQL与R语言、Python进行连接。 ...

41880

扫码关注云+社区

领取腾讯云代金券