mysql cache buffer_Mysql主要配置参数1:table_cache,Key_buffer_size,query_cache_size设置

Mysql主要配置参数1:table_cache 表缓存

Mysql

主要参数在优化MySQL时,有两个配置参数是最重要的,即table_cache和key_buffer_size。而具体到应用环境还有个查询参数query_cache_size直接影响查询性能。下面主要是整理的关于下面三个参数的文章

1.table_cache 表缓存

2.key_buffer_size 键缓冲

3.query_cache_size查询缓存

参数5参考文章

首先,在了解这些参数设置前需要明确的概念是• 什么是mysql

/l_13_1.htm" title="MYSQL" >MYSQL的缓存:在内存中预留的块•

访问内存中的数据快于访问磁盘上的数据。

• 把数据保存在内存中更重要的是可以减少磁盘IO操作。• 当数据变化(update insert

delete...)时对应的缓存就失效

• 内存是有限的

1、table_cache 表缓存table_cache指示表高速缓存的大小。当Mysql

访问一个表时,如果在Mysql表缓冲区中还有空间,那么这个表就被打开并放入表缓冲区,这样做的好处是可以更快速地访问表中的内容。一般来说,可以通过查看数据库运行峰值时间的状态值Open_tables和Opened_tables,用以判断是否需要增加table_cache的值,即如果open_tables接近table_cache的时候,并且Opened_tables这个值在逐步增加,那就要考虑增加这个值的大小了。在

mysql

默认安装情况下,table_cache的值在2G内存以下的机器中的值默认时256到512,如果机器有4G内存,则默认这个值是2048,但这决意味着机器内存越大,这个值应该越大,因为table_cache加大后,使得mysql对SQL响应的速度更快了,不可避免的会产生更多的死锁(dead

lock),这样反而使得数据库整个一套操作慢了下来,严重影响性能。所以平时维护中还是要根据库的实际情况去作出判断,找到最适合你维护的库的table_cache值当服务器打开表文件的时候,它试图保持这些文件的打开状态,以减少打开文件操作的数量。为了实现这样的功能,它在表缓存中维护打开文件的信息。table_cache系统变量控制着这个缓存的大小。如果服务器访问了大量的表,表缓存就会被填满,并且服务器会关闭那些有一段时间没有使用的表,为打开新表留出空间。你可以通过检查Opened_tables状态指示器来访问表缓存的效果:

SHOW STATUS LIKE

’Opened_tables’;Opened_tables显示了某个数据表必须打开的次数(因为它还没有打开)。这个值也显示为

mysql

admin状态命令的输出信息中的Opens值。如果这个数字是稳定的或缓慢增长,那么它的设置可能是正确的。如果这个数字增长得很快,就意味着这个缓存太小了,必须经常关闭数据表来为打开其它的数据表留出空间。如果你拥有文件描述信息,增加表缓存大小将减少数据表打开操作的数量。#

注意,不能盲目地把table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能不稳定或者连接失败。

mysql

手册上给的建议大小是:table_cache=max_connections*nn表示查询语句中最大表数,还需要为临时表和文件保留一些额外的文件描述符。

这个数据遭到很多质疑,table_cache够用就好,检查Opened_tables值,如果这个值很大,或增长很快那么你就得考虑加大table_cache了.在下面的条件下,未使用的表将被关闭并从表缓存中移出:

• 当缓存满了并且一个线程试图打开一个不在缓存中的表时。•

当缓存包含超过table_cache个条目,并且缓存中的表不再被任何线程使用。

• 当表刷新操作发生。当执行FLUSH TABLES语句或执行mysqladmin

flush-tables或mysqladmin

refresh命令时会发生。当表缓存满时,服务器使用下列过程找到一个缓存入口来使用:

• 当前未使用的表被释放,以最近最少使用顺序。•

如果缓存满了并且没有表可以释放,但是一个新表需要打开,缓存必须临时被扩大。

如果缓存处于一个临时扩大状态并且一个表从在用变为不在用状态,它被关闭并从缓存中释放。几个关于table_cache的状态值:

1

table_cache:所有线程打开的表的数目。增大该值可以增加mysqld需要的文件描述符的数量。默认值是64.2

open_tables:当前打开的表的数量.

3  opened_tables :Number of table cache

misses,如果opened_tables较大,table_cache 值可能太小.4

Open_table_definitions : The number of cached

.frm files. This variable was added in MySQL 5.1.3.

5  Opened_table_definitions : The number of

.frm files that have been cached. This variable was added in MySQL

5.1.24.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值