Ми зіткнулися з проблемою, коли запит на таблицю, що містить приблизно 50 мільйонів рядків і розмір індексу в 4 ГБ (розмір таблиці близько 6 ГБ), призводить до того, що сервер бази даних замінює пам'ять і різко сповільнюється. Я впевнений, що це стосується перевищення розміру темп-таблиці та її заміни на диск.
Якщо я модернізував свій сервер баз даних з 32 ГБ оперативної пам’яті до 64 ГБ оперативної пам’яті, мені цікаво, чи зможе база даних MySQL повністю скористатися цією додатковою пам’яттю, а не замінюватись. Я пережив декілька змінних (наприклад, KEY_BUFFER_SIZE тощо), і вони, здається, підтримують значення значень понад 64 ГБ. Однак документація MySQL говорить, що tmp_table_size максимум на 4 Гб.
То чи варто було б оновити пам'ять? Чи виграла б проблема "велика таблиця запитів" від цього, чи не допоможе це через обмеження в 4 Гб? Я знаю, що є потенційно інші рішення, як-от реструктуризація таблиці, щоб її розподілити різними способами тощо ... але, не змінюючи нічого про таблицю, допоможе додаткова пам'ять?
Також, взагалі, чи є інші змінні, пов'язані з пам'яттю, якими MySQL не міг би скористатися при переході від 32 до 64 ГБ оперативної пам’яті?
Ми використовуємо 64-бітовий Linux (Ubuntu) як наш сервер баз даних.
Спасибі, Гален