Мне нужна база данных MySQL, которая работает быстро и поддерживает множество соединений. Большинство соединений будет только для чтения, но некоторые будут для чтения / записи. Все соединения должны будут читать и записывать хотя бы некоторые данные.
У меня есть 4 тестовых сервера, которые я могу посвятить экспериментам. Изначально я планировал сделать мультимастер, но потом немного прочитал о MySQL Cluster. У меня есть несколько вопросов:
Только ОЗУ MySQL Cluster? В брошюре говорится, что дисковые таблицы поддерживаются, но даже в их собственной документации иногда говорится, что это не так. Я хочу пережить отключение электричества.
MySQL Cluster дает мне лучшую надежность по сравнению с несколькими мастерами? Меня беспокоит отключение электроэнергии, из-за чего моя установка с несколькими мастерами безнадежно рассинхронизируется. Возможность плавного восстановления после отключения электроэнергии или другого сбоя - моя основная причина, по которой я рассматриваю что-то иное, чем использование нескольких мастеров.
Есть ли способ использовать временные таблицы? Мое приложение использует несколько временных таблиц, но я вижу, что MySQL Cluster их не поддерживает. Есть ли иной способ решения проблемы, кроме использования постоянных таблиц, как если бы они были временными?
Могу ли я в любое время добавлять и удалять узлы данных? Без перерыва в обслуживании?
Чтобы ответить на ваши вопросы (на них, кстати, тоже есть ответы в руководстве).
Сказав все это хорошо о кластере MySQL, я все же хочу отметить следующее: MySQL Cluster имеет некоторые ограничения, например, выполнение операций JOIN в кластере MySQL в настоящее время очень медленное. В следующей версии это будет исправлено (ищите «проталкивающие соединения»), поэтому вы должны быть осторожны при настройке и провести несколько тестов, прежде чем переходить к кластеру, чтобы увидеть, соответствует ли это вашим потребностям.