全球旧事资料 分类
eated
Co
ectio
s变量表示连接意图的数量,而不是当前接连的数量(threads_co
ected),如果它的值快速增加,比如每秒几百,就应该检查连接以及操作系统的网络设置。本系统中该值正常。thread_cache_size定义了MySQL能在缓存中保存的线程数量,可以通过观察threads_created变量的值,以确定线程缓存是否足够大。如果Threads_created
f的值较大或正在增加,可以尝试增加thread_cache_size的值,通过检查Threads_created知道有多少缓存已经在缓存中了。如果每秒创建的线程数量少于10个,缓存的大小就是足够的。另外,可以观察thread_co
ected值的变化来设置线程缓存,本系统中它的值保持在100以下。大多数情况,非常大的线程缓存是没有必要的,通常需要把线程缓存保持足够大以使threads_created不会经常增加,但是如果它的值非常大,本系统已超过一万就属于非常大了,那么就应该把它设置得小一点,因为操作系统不能很好地处理太多的线程,即使它们处于睡眠状态也不行。通常情况,据物理内存设置规则如下:1G内存设为8,2G内存设为16,3G内存设为32,4G或4G以上设为64。本系统内存为4G,且thread_co
ected的增幅并不大,thread_cache_size设置为64,不需要更改。
read_buffer_size
read_buffer_size是MySQL读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果对表的顺序扫描请求非常频繁,并且频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。MySQL只有在查询需要的时候才会为该缓存分配内存,并且是一次性把指定的大小分配给该缓存。read_r
d_buffer_size
read_r
d_buffer_size是MySQL的随机读缓冲区大小。当按任意顺序读取行时例如,按照排序顺序,将分配一个随机读缓存区。进行排序查询时,MySQL
f会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大。MySQL只有在查询需要的时候才会为该缓存分配内存,并且只会分配所需的内存。sort_buffer_size
sort_buffer_size是MySQL执行排序使用的缓冲大小。如果想要增加ORDERBY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段。如果不能,可以尝试增加sort_buffer_size变量的大小。MySQL只有在查询需要排序的时候才会为该缓冲区分配内存,只要发生了排序,MySQL会立即分配变量定义的所有内r
好听全球资料 返回顶部