URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5781
[ Назад ]

Исходное сообщение
"MySQL: временные таблицы на диске"

Отправлено lithium , 29-Май-08 17:38 
Привет всем.
На MySQL (MySQL-server-community-5.0.51a-0.rhel5) хранится база Zabbix в InnoDB, в /var/tmp создаются файлы вида:
[PRE]
# ls -la /var/tmp
итого 40
drwxrwxrwt  2 root  root  4096 Май 29 17:25 .
drwxr-xr-x 21 root  root  4096 Май 16 15:32 ..
-rw-rw----  1 mysql mysql    0 Май 29 17:25 #sql_7240_13.MYD
-rw-rw----  1 mysql mysql 1024 Май 29 17:25 #sql_7240_13.MYI
-rw-rw----  1 mysql mysql    0 Май 29 17:25 #sql_7240_1.MYD
-rw-rw----  1 mysql mysql 1024 Май 29 17:25 #sql_7240_1.MYI
[PRE]

Попытки поднимать значения tmp_table_size и max_heap_table_size ничего не дают, сейчас
tmp_table_size = 268435456
max_heap_table_size = 268435456
но файлы все равно создаются (причем, индекс всегда размером 1024, таблица - 0), по статистике примерно половина временных таблиц создаются на диске:
| Created_tmp_disk_tables | 30833 |
| Created_tmp_files       | 5     |
| Created_tmp_tables      | 68672 |
Причем изменение вышеназванных переменных с около 8МБ до 256МБ эту пропорцию никак не меняет. Пересмотрел все руководства и гугль, так и не могу найти ответ, может кто что подскажет?


Содержание

Сообщения в этом обсуждении
"MySQL: временные таблицы на диске"
Отправлено angra , 29-Май-08 22:10 
Для начала проверить что существуют индексы по всем полям, по которым идет join

"MySQL: временные таблицы на диске"
Отправлено Асен Тотин , 30-Май-08 00:40 
Привет,

MYI, MYD - это не InnoDB файлы, это MyISAM. Может, у нас есть запрос или процедура, которая создает временную таблицу?

WWell,



"MySQL: временные таблицы на диске"
Отправлено angra , 30-Май-08 01:12 
Именно это и делают запросы с join по неиндексированным полям :)

"MySQL: временные таблицы на диске"
Отправлено lithium , 30-Май-08 09:37 
всем спасибо, нашел объяснение:
"Regardless of size any temp table will go to disk when it contains any data type with TEXT or BLOB in the name." (http://mysqldump.azundris.com/archives/68-Monitoring-MySQL.html)
Это все объясняет.