MySQL DBA
分类: Mysql/postgreSQL
2013-03-07 13:21:01
对mysql tmp类参数做一个整理。
1. max_tmp_tables
一个连接同时打开的临时表数目最大值。 默认值:32,可动态改变。
set global max_tmp_tables=64;
set session max_tmp_tables=64;
2. slave_load_tmpdir
slave 在复制过程中执行load data infile 创建临时文件路径。不支持动态改变。默认:/tmp。
3. tmp_table_size
内存临时表大小最大值,默认值16M,与参数max_heap_table_size(两者中较小的值)限制内存表大小。如果超出设定值,mysql将自动转化为myisam表,存放在tmpdir中。
4. max_heap_table_size
内存表最大行数。支持动态改变,如果创建的memory表超出设定值,会返回错误:talbe a is full。动态改变此参数对已存在的内存表无影响,除非这些表发生变动:recreate,alter,truncate table。
4. tmpdir
mysql 临时文件路径。默认:/tmp。可设置为路径列表(linux使用冒号,其他系统使用分号),循环使用。
slave 使用tmpdir存储表及load data操作文件, tmpdir不能设置在虚拟空间,如果server重启后文件丢失,同步复制将实效。
sorting(order by or group by)使用临时文件大小计算方式:
Size=(data length +row pointer)* match rows * 2
row pointer = 4 byte
在tmpdir 目录中 select 产生的文件名:SQL_*