Мы близки к тому, чтобы требовать репликации в нашей базе данных MySQL, и я ищу немного разъяснений по поводу лучшей стратегии. Надеюсь, это все еще достаточно конкретный вопрос, который можно задать здесь.
В настоящее время у нас есть 1 БД для нашего приложения, которое достаточно интенсивно для чтения. Я подумываю начать с простой настройки «ведущий-ведомый», в которой показания будут разделены примерно на 40% для ведущего и 60% для ведомого на основе некоторой элементарной логики балансировки нагрузки в приложении.
Я сказал 40-60, потому что есть некоторые случайные операции чтения, которые, как я знаю, могут занять много времени, потенциально минута или дольше. Вместо того, чтобы балансировать нагрузку этих чтений, я планирую всегда направлять их на мастер. Я бы предпочел, чтобы мастер выполнил работу и дал ведомому время наверстать упущенное, вместо того чтобы потенциально вводить задержку репликации при более простых запросах. (Когда мы сможем перейти к нескольким рабам, у нас будет один, посвященный этим интенсивным запросам).
Так что я предполагаю, что мой вопрос - это звучит как нормальный план, или если нет, то что было бы лучшей альтернативой?
Изменить в ответ на комментарии ниже:
@ Romain. Большая часть приложения включает в себя зарегистрированных пользователей, которые публикуют, комментируют и отвечают, поэтому для этих операций необходимо по возможности избегать устаревших данных.
@ Jaydee - да, я встроил весовое значение для каждого сервера, чтобы при необходимости легко изменять% чтения.