Как ускорить запрос mariaDB, используя несколько серверов БД, используя Galera Cluster и MaxScale?
Я тестирую с помощью инструмента стресс-теста (чтобы запустить много одновременных пользователей и много запросов). При использовании большего количества дБ-серверов скорость не добавляется (я использую 5 серверов).
Я проверил на каждом сервере, и я вижу, что запросы были распределены на каждом сервере.
Что мне делать, если я хочу увеличить сервер базы данных, чтобы повысить скорость запросов?
1 ответ
Galera достигает максимума где-то около 5 узлов в кластере. Вероятно, это происходит из-за широковещательной передачи каждой записи каждому другому узлу и ожидания ответов.
Есть много способов увеличить MySQL; Galera является одним из них, и это, пожалуй, лучший сегодня для масштабирования записи.
Для масштабирования чтения подчиненные устройства репликации обеспечивают практически неограниченное масштабирование. Вы можете подвесить традиционные подчиненные устройства репликации каждого узла Galera. Это позволит вам разгрузить чтения от ваших 5 узлов. Рабы могут быть каскадными (используя "реле"), что дает неограниченное масштабирование. Сервер может легко иметь 10 подчиненных серверов; сделать 6 уровней, и у вас есть миллион серверов. (Я не работал с более чем 3 уровнями и более 30 рабами.)
Распространенный способ расширения - посмотреть на код. Составные индексы неизвестны многим новичкам. Для вставки, дозирования и LOAD DATA
очень эффективно. Для хранилищ данных сводные таблицы часто ускоряют "отчеты" в 10 раз. Для высокоскоростного приема пищи очень удобен стол для пинг-понга. Для индексов GUID/UUID лучше всего отказаться от них. То же самое для EAV. Для огромных удалений есть несколько подходов.