У меня есть таблица с 60 столбцами (и тысячами строк), и она ссылается на 15 таблиц каталога и 3 из них ссылаются на еще 3 таблицы каталога (вся база данных меньше 1 ГБ). Эти таблицы используются для выполнения некоторого поискового запроса "onchange" в веб-приложении (я имею в виду, что пользователь выбирает или записывает значение в поле выбора / ввода на экране и автоматически обновляет результаты, пока он / она не найдет то, что ищет).
Как и следовало ожидать, этот поисковый запрос выполняется часто, поэтому MySQL изо всех сил пытается получить результаты (с 10 одновременными пользователями ... пока).
Я понимаю что использование таблиц памяти (копии исходных таблиц) только для этого запроса было бы хорошим вариантом, но я никогда не работал с такими таблицами. Я не знаю, как управлять вставкой / обновлением / удалением в этих таблицах. Должен ли я выполнять это действие дважды (одно в таблице памяти и одно в исходной таблице)? У меня нет проблем с этим, но есть ли другой / лучший способ?
Я понимаю ограничения таблиц памяти относительно размера (я могу изменить max_heap_table_size) и если система cra sh (с использованием init_file для повторного заполнения таблиц), и у меня достаточно оперативной памяти (система использует только 6 ГБ из установленных 16 ГБ). Есть ли еще одна вещь, которую я должен учитывать при использовании этих таблиц?