Splitting a MySQL DB in two may ease server from "Too many connetions"? Я так не думаю
Меня попросили разделить MySQL на две части, это своего рода горизонтальный раздел, в котором некоторые строки соответствуют одному сайту, а другие - другому.
Но они хотят разделить его на две БД на одном сервере MySQL.
Я не эксперт по БД, но, полагаю, хранение их на одном и том же сервере MySQL с одинаковым объемом памяти и процессором и на одной платформе не улучшит ситуацию.
Чего мы пытаемся избежать, так это проблемы "слишком много соединений".
3 ответа
Запуск нескольких экземпляров на одном сервере не рекомендуется в качестве решения для ограничения соединения.
Если вы имеете в виду несколько баз данных на одном и том же экземпляре на одном и том же сервере, то это, прежде всего, архитектурное соображение, а не обязательно прямое решение проблемы с ресурсами.
Похоже, ваш сервер должен быть настроен. Я уже приводил рекомендации по настройке соединения, это должно помочь:
Как установить my.cnf в Mysql, чтобы не было ограничений для подключений?
Вы должны выяснить, почему у вас заканчиваются соединения, в первую очередь. Получают ли клиенты соединение, а затем удерживают его в течение длительного времени? У каждого дочернего элемента веб-сервера есть свое собственное соединение, или сервер управляет пулом соединений?
Я рекомендую включить общий журнал запросов для расследования - он записывает детали подключения. Обратите внимание, что вы, вероятно, не хотите, чтобы общий запрос входил в общее производственное использование!
Наличие нескольких баз данных на одном сервере не меняет соединения с сервером.
Увеличивайте количество подключений только потому, что у вас действительно есть большое количество клиентов, которые, как известно, правильно управляют подключениями. Однако в большинстве случаев "слишком много соединений" указывает на проблему на стороне клиента.
Вы правы, это не поможет решить проблему с подключением (при условии, что вы имеете в виду два dbs и один исполняемый двоичный файл mysql, а не две разные установки mysql на одном оборудовании, что может помочь, но это совершенно обратный способ сделать это...)