Мы столкнулись с проблемой, когда запрос таблицы, содержащей около 50 миллионов строк и размером индекса 4 ГБ (размер таблицы около 6 ГБ), приводит к перестановке памяти на сервере базы данных и резкому замедлению. Я почти уверен, что это связано с превышением размера временной таблицы и ее переносом на диск.
Если я обновлю свой сервер базы данных с 32 ГБ ОЗУ до 64 ГБ ОЗУ, мне будет интересно, сможет ли база данных MySQL полностью использовать преимущества этой дополнительной памяти, а не подкачки. Я просмотрел несколько переменных (например, KEY_BUFFER_SIZE и т. Д.), И они, похоже, поддерживают значения настроек более 64 ГБ. Однако в документации MySQL говорится, что tmp_table_size максимально достигает 4 ГБ.
Так стоит ли обновление памяти? Извлекает ли из этого проблему «большая таблица запросов» или она не поможет из-за ограничения в 4 ГБ? Я знаю, что потенциально существуют другие решения, такие как реструктуризация таблицы, которая будет разделена различными способами и т.д.
Кроме того, в целом, существуют ли другие переменные, связанные с памятью, которые MySQL не сможет использовать при перемещении от 32 до 64 ГБ ОЗУ?
Мы используем 64-битную Linux (Ubuntu) в качестве сервера базы данных.
Спасибо, Гален