MySQL « Принцип работы memory tables

Интересен принцип работы memory tables для MySQL.

Например как долго там хранятся данные? Я так понимаю данные будут удалены после перезагрузки машины.

Можно ли указать размер таблицы, при превышении которого старые данные будут вытесняться.

Тут у меня проводится аналогия с кешем, например memcache или APC для пхп, возможно я не прав и чего-то недопонимаю.

Объясните АЗЫ пожалуйста.

1 ответов


В этом разделе документации по MySql все очень подробно расписано.

Например как долго там хранятся данные? Я так понимаю данные будут удалены после перезагрузки машины.

Да, все верно. Данные будут хранится до перезагрузки или удаления данных запросами. Стоит отметить, что удаление целой таблицы или какой-то одной записи по сути две разных операции. Удаляя одну запись, память не возвращается.

Можно ли указать размер таблицы, при превышении которого старые данные будут вытесняться.

Размер данной таблицы контролируется параметром max_heap_table_size, который по умолчанию равен 16Мб. Данный параметр глобален. Однако, если его устанавливать индивидуально, перед созданием таблицы, то это даст возможность использовать различные величины для каждой таблицы.

Про вытеснение данных ничего не сказано. Однако, данный тип таблиц сравнивается с temporary tables, которые при превышении размера конвертируются в обычныю таблицы. Отсюда можно сделать вывод, что memory tables таким не обладают и вставка данных, при достижении максимума будет невозможной.

Отмечу еще, что для данных таблиц невозможно использовать типы Text и Blob.