[mysql] 2025-05-03 圈点391
摘要: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%