Вопрос

У нас есть наш основной сервер MySQL в городе A. У нас есть большая часть нашего персонала обслуживания клиентов в городе B. Сотрудники жалуются, что соединение слишком медленно для сервера. Варианты:

  1. Попросите их выйти через общедоступный интернет, а не на нашу прямую связь между городами; Таким образом, Ping может быть дольше, но они не конкурируют с трафиком VoIP между городами

  2. Кластер базу данных, чтобы записаться и чтения могут происходить одновременно на местных серверах в обоих городах.

2 очень предпочтительнее, но, как вы, вероятно, можете сказать по моему описанию, я абсолютно понятия не имею, как его реализовать или даже если это «кластеризация». Лучшее, что я мог найти для MySQL Cluster, - это то, что для этого потребуется использование таблиц NDB, и я бы предпочел не преобразовать всю нашу базу данных в это. Какие у меня есть варианты? Спасибо.

Это было полезно?

Решение

Как далеко друг от друга (время пинга) два города? 80 мс - это то, что мы испытываем по всей США. Это не плохо.

Написание обеим руководителям мастера возможно, но имеет много болевых точек.

NDB Cluster позволяет горячо, но (как вы говорите) требует некоторого преобразования.

Итак, вернемся к тому, что я считаю единственным жизнеспособным решением: единственным писательским мастером, плюс любое количество рабов.

Одна вещь, которая может сделать отдаленное мастер болезненным, это то, что «единица действия пользователя» приведет ко многим операторам SQL. Это может/должно быть решено путем (1) переосмыслить код для использования меньшего количества операторов (2) Использовать хранимую процедуру, чтобы инкапсулировать как можно больше операторов SQL, а затем развернуть ее на удаленном мастере.

Читает (кроме «критических чтений») может/должен перейти к рабу, за балансировщиком нагрузки. И какой -то механизм должен гарантировать, что чтения обычно являются «локальными».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top