mysql max_user_connections и innodb против myisam
Итак, у меня есть централизованная CMS с несколькими сайтами, работающими с одной БД. Недавно мы очень редко получали ошибку max_user_connections, которую мы видели раньше (в то время как на гораздо более медленном сервере).
Теперь хосты предположили, что это может решить блокировка строк innodb, а не блокировка таблиц myisam. Похоже, что это может быть так, но я бы сделал, хотя увеличение количества соединений было бы более безопасным.
Я немного изучил innodb vs myisam и не верю, что потеря полнотекстовой индексации будет проблемой, однако я не уверен насчет внешнего ключа.
Поэтому мой вопрос заключается в том, что при работе с производственной базой данных, с огромной CMS и различными экземплярами кода переднего плана, есть ли какие-либо серьезные проблемы при конвертации в innodb? Например, какой тип запросов больше не будет работать?
1 ответ
Два момента:
Increasing the connections
- Это не решит вашу проблему при наличии таких сценариев "Остановить мир". Увеличение количества соединений даст вам больше параллельных соединений, но наличие таких проблем обычно означает, что операции с таблицей выполняются часто, и между одной операцией один или несколько похожих запросов выполняются в состоянии блокировки. Поэтому, даже если вы значительно увеличите пул соединений, это будет лишь временное решение.InnoDB - это совершенно другой Storage-Engine. Поэтому вам нужно потратить некоторое время на различные свойства конфигурации и сценарии резервного копирования. С точки зрения запроса у вас может быть больше возможностей с innodb, чем с myisam. Afaik единственное, что не возможно, это полнотекстовая индексация. Смотрите полный список плюсов и минусов здесь: http://www.kavoir.com/2009/09/mysql-engines-innodb-vs-myisam-a-comparison-of-pros-and-cons.html. Один совет: свяжитесь с различными наборами инструментов для восстановления, отказоустойчивости и резервного копирования
Альтернативы: у вас может не быть другого выбора, кроме как решить проблемы с блокировкой, переключившись либо на механизм блокировки на уровне строк, либо на что-то совершенно другое.
Существует также возможность не переключаться полностью. Вы можете настроить механизм хранения на основе таблиц. Поэтому, если вы идентифицируете таблицу, в которой возникают проблемы с блокировкой, вы можете просто перенести эту таблицу на другой механизм хранения.