2016-10-07 16 views
0

Существует много таблиц с типом столбца TEXT. Некоторые из таблиц являются большими, а служба - высокой нагрузкой. Все таблицы в InnoDB.Память VS MyIsam tmpfs?

Когда SQL-запрос создал таблицу tmp, если у нее есть поле с типом TEXT, таблица создается на диске с типом MyISAM. Во избежание операций ввода-вывода на диске временный каталог MySQL (tmpdir) монтируется в памяти (tmpfs).

1) Что будет быстрее MyMPAM tmpfs или памяти? Есть ли большая разница?

2) Если MyISAM используется для временных таблиц Мне нужно настроить буферы, которые необходимы только для таблиц MyISAM: read_buffer_size read_rnd_buffer_size? Смогут ли эти конфигурации MyISAM повлиять на производительность вообще? (Myisam_sort_buffe_size, key_buffer_size)

Я хочу изменить ТЕКСТ на VARCHAR.

ответ

0

Как правило, лучше всего игнорировать все возникающие проблемы.

  • Если SELECTвключает в TEXT колонку, это нужно обязательно использовать MyISAM, не ПАМЯТЬ. То есть, если вы не касаетесь каких-либо TEXT, BLOB, или «большой» VAR* столбец, то много не нужно использовать MyISAM.
  • Посмотрим на запрос; возможно, мы можем избежать таблицы tmp!
  • Табличка tIP MyISAM будет в основном (полностью?) Оставаться в ОЗУ, если это практично, в зависимости от различных проблем кеширования.
  • Для таблицы tmp MEMORY почти всегда быстрее MyISAM.
  • Если вы используете ramdisk, а таблица tmp слишком велика, запрос будет аварийно завершен.
  • Если вы используете ramdisk, вы крадете RAM из других вещей (в частности, InnoDB buffer_pool), тем самым замедляя все остальное!
  • Изменения от текста до VARCHAR не будет работать, если вам нужно больше, чем 255 (или это 512? У меня нет точного среза.)
  • Ни один из параметров вы упоминаете не имеют отношения к этому использования дело.
+0

И почти весь этот вопрос исчезает в MySQL 8.0. Таблицы Temp будут InnoDB и оптимизированы несколькими способами. Это «возможно» в 5.7; см. 'internal_tmp_disk_storage_engine'. –

+0

Все таблицы имеют текстовый столбец и 50% таблицу tmp создают на диске в MyIsam. У нас много оперативной памяти, и мы можем использовать tmpfs для создания tmp-таблицы, это быстрее, чем tmp-таблица на диске. У нас есть MySQL 5.6. Tmpfs - виртуальная область в ОЗУ. Я хотел бы знать, что быстрее MyISAM монтирует в tmpfs или Memory? Должен ли я устанавливать настройки MyIsam для продуктивной работы с таблицей tmp? – paurlift

+0

Вместо этого я бы работал над тем, чтобы избегать 'TEXT', или, по крайней мере, избегать выборки столбцов' TEXT' в сложных запросах. И я попытаюсь улучшить сложные запросы, чтобы они не нуждались в таблицах tmp. Не могли бы вы показать нам несколько общих запросов? –

 Смежные вопросы

  • Нет связанных вопросов^_^