MYSQL服务器的几个参数记录

[mysql] 2024-03-29 圈点534

摘要:MYSQL服务器的几个参数记录

tmp_table_size


show global status like ‘created_tmp%‘;

Created_tmp_disk_tables

Created_tmp_files

Created_tmp_tables


每次创建临时表,Created_tmp_tables增加,如果临时表大小超过tmp_table_size,则是在磁盘上创建临时表,Created_tmp_disk_tables也增加,Created_tmp_files表示MySQL服务创建的临时文件文件数,比较理想的配置是:


Created_tmp_disk_tables / Created_tmp_tables * 100% <= 25%比如上面的服务器

Created_tmp_disk_tables / Created_tmp_tables * 100% =1.20%,应该相当好了


另外Mysql的另外一个参数max_heap_table_size比tmp_table_size小时,则系统会把max_heap_table_size的值作为最大的内存临时表的上限,大于这个时,改写硬盘。



table_cache


mysql> show global status like 'open%_tables';

Open_tables是当前正在打开表的数量,

Opened_tables是所有已经打开表的数量。


table_cache是一个非常重要的MySQL性能参数,它在5.1.3之后的版本中叫做table_open_cache。table_cache主要用于设置table高速缓存的数量。由于每个客户端连接都会至少访问一个表,因此此参数的值与max_connections有关。


当某一连接访问一个表时,MySQL会检查当前已缓存表的数量。如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速度;如果该表未被缓存,则会将当前的表添加进缓存并进行查询。


把参数的值调整得比Opened_tables的数值大一些,并且保证在比较高负载的极端条件下依然比Opened_tables略大。



thread_cache_size


Threads_cached     0

Threads_connected   51

Threads_created     655068

Threads_running     48


可以不断刷新,如果 Threads_cached = 0 且 Threads_created 不断增大,那么当前thread_cache_size的值设置要改大,改到 Threads_connected 值左右

thread_cache_size


Thread_Cache 中存放的最大连接线程数.在短连接的应用中Thread_Cache的功效非常明显,因为在应用中数据库的连接和创建是非常频繁的,如果不使用 Thread_Cache那么消耗的资源是非常可观的!在长连接中虽然带来的改善没有短连接的那么明显,但是好处是显而易见的.但并不是越大越好大了反而 浪费资源这个的确定一般认为和物理内存有一定关系,如下:

复制代码 代码如下:

1G —> 8

2G —> 16

3G —> 32

>3G —> 64

如果短连接多的话可以适当加大.


sort_buffer_size = 8M即可

read_buffer_size = 8M即可

read_rnd_buffer_size = 8M即可

table_open_cache = 2048


max_allowed_packet = 16M


tmp_table_size=1024M


innodb_buffer_pool_size = db服务器总内存的60% 到80%

mysql配置参数  

感谢反馈,已提交成功,审核后即会显示