2 миллиона таблиц в 15 тысячах баз в MySQL, как с этим жить?

Сабж. Как потюнить и что, железо быстрое, нагрузки нет, но запросы тормозят.
  • Вопрос задан
  • 2597 просмотров
Пригласить эксперта
Ответы на вопрос 6
Приколите хоть народ, откуда у вас 15к баз? И какой у них средний размер? Может объединить все базы, укрупнить, только юзеров разделить? Как в некоторых коммерческих CMS можно несколько сайтов на одной копии CMS создавать, но база у них одна будет.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
самое простое:
1. вначале всегда смотрите на кол-во объектов при выборке, прежде чем получать сами строки выборки.
2. ограничьте максимальное кол-во записей до 1, если ищите по ID или ключу.
3. увеличьте размер кэша
4. используйте одну транзакцию вместо нескольких подряд.
5. не используйте связанные таблицы в сложных выборках: делайте 2-3 выборки отдельно в одной транзакции через переменные...

А, ну еще ОБЯЗАТЕЛЬНО: перепроектируйте базу в 3НФ!
Ответ написан
Комментировать
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Я так понимаю, это хостинг, все базы живут в одном компухтере. Скорее всего Вы упёрлись в производительность дисковой системы или в ресурсы ядра, типа количество открытых сокетов, файлов на пользователя и т.д. Если так, то смотреть где затыки, то и улучшать. Ну и перенести особо нагруженные базы на другой сервер.
Ответ написан
alexxxst
@alexxxst Автор вопроса
Вообще, это такой эксперимент. Был сервер с 5 тысячами баз, с 700 тысячами таблиц. По какому-то там железу спокойно тянул свою нагрузку без напрягов, все летало. Было решено взять крутой сервер в 4 раза мощнее и запихнуть на него в 3 раза больше, по идее должно было заработать, но нет.
Ответ написан
Комментировать
Большое значение %sys может говорить о множестве системных вызовов - открытие/закрытие файлов, создание/завершение потоков. Стоит попробовать увеличить table_open_cache и thread_pool_size.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
раскидать на 15 серверов по тысяче баз для начала.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы