Каковы ограничения реализации MySQL NDB Cluster?

Я хочу реализовать NDB Cluster для MySQL Cluster 6. Я хочу сделать это для очень большой структуры данных с минимум 2 миллионами записей.

Я хочу знать, есть ли какие-либо ограничения реализации кластера NDB. Например, размер ОЗУ, количество баз данных или размер базы данных для кластера NDB.

2 ответа

Решение

2 миллиона баз данных? Я полагаю, вы имели в виду "строки".

В любом случае, что касается ограничений: одна из самых важных вещей, которую следует иметь в виду, это то, что NDB/MySQL Cluster не является базой данных общего назначения. В частности, операции объединения, а также подзапросы и операции с диапазонами (запросы, такие как: заказы, созданные с настоящего момента до недели назад), могут быть значительно медленнее, чем вы ожидаете. Отчасти это связано с тем, что данные распределены по нескольким узлам. Несмотря на то, что были сделаны некоторые улучшения, производительность Join может быть очень разочаровывающей.

С другой стороны, если вам нужно иметь дело со многими (предпочтительно небольшими) параллельными транзакциями (обычно обновления одной строки / вставки / удаление поисков по первичному ключу), и вам удается сохранить все свои данные в памяти, тогда это может быть очень масштабируемое и производительное решение.

Вы должны спросить себя, почему вы хотите кластер. Если вам просто нужна обычная база данных, которая у вас есть сейчас, за исключением доступности с 99,999%, то вы можете быть разочарованы. Конечно, кластер MySQL может предоставить вам большую доступность и время безотказной работы, но рабочая нагрузка вашего приложения может не очень хорошо подходить для кластера thtings. Кроме того, вы можете использовать другое решение высокой доступности, чтобы увеличить время бесперебойной работы вашей традиционной базы данных.

Кстати, вот список ограничений в соответствии с документом: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-limitations.html

Но что бы вы ни делали, попробуйте кластер, посмотрите, хорошо ли это для вас. MySQL кластер не является "MySQL + 5 девяток". Вы узнаете, когда попробуете.

Кластер NDB поставляется с двумя типами хранения.

1. В памяти. 2. Хранение дисков.

NDB появился как в хранилище данных в памяти, так и в версии 7.4(MYSQL 5.6) и далее начал поддерживать дисковое хранилище.

текущая версия 7.5(MySQL 5.7) поддерживает дисковое хранилище, и в этом случае не будет никаких ограничений по размеру, поскольку данные будут находиться на диске, а ограничение зависит от доступного вам дискового пространства.
Конфигурации дискового хранилища - https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-disk-data-symlinks.html

В памяти хранения в кластере NDB также достаточно зрел, и вы можете определить использование памяти в файле config.ini узла управления. пример - DataMemory=3072M IndexMemory=384M

в средней таблице (зависит от данных, хранящихся в столбцах) общий размер дБ должен быть меньше 1 ГБ, что может быть легко настроено.

Примечание: в моей собственной реализации я столкнулся с одной проблемой производительности, поскольку производительность NDB снижается с увеличением количества строк в таблице. При высокой нагрузке одновременное чтение будет ухудшаться с увеличением числа строк. Удостоверьтесь, что вы не идете на полное сканирование таблицы и предоставьте достаточный предикат условия where. Для правильной работы определите вторичный индекс правильно согласно вашему шаблону запроса. Определение вторичного индекса снова увеличит потребление памяти, поэтому планируйте свой шаблон запросов и ресурсы памяти соответственно.

Другие вопросы по тегам