Я прочитал большую часть документов MySQL Cluster и некоторых учебных руководств все же, у меня все еще есть некоторые вещи, не ясные, и майор их прямо сейчас:
Относительно вопроса № 2 обновление строки находится в следующем синтаксисе:
UPDATE db_accounts.tbl_items SET items=items+%lld WHERE id_account=%u
"id_account" является (уникальным) индексом.
MySQL Cluster - это база данных в памяти (хотя некоторые столбцы могут храниться на диске, индексированные столбцы - нет). Если выдернуть вилку из розетки, ваши данные исчезнут. Процесс восстановления узла, вновь присоединяющегося к кластеру, заключается в том, что он берет потерянные данные с уцелевшего узла (для этого требуется хорошая быстрая связь между узлами), а затем аккуратно применяет события репликации, пока не догонит его и не сможет активно участвовать. Если имеется свежая резервная копия, то можно восстановить систему из нее, а не из другого узла, но принцип тот же: узел должен быть заселен данными с нуля.
MySQL Cluster - это, по сути, распределенная хэш-таблица. Узел NDB, на котором хранится конкретная строка данных, определяется хэш-алгоритмом, применяемым к первичному ключу. Производительность увеличивается при добавлении узлов, при условии, что ваши данные хорошо распределены по узлам. Производительность может сильно пострадать, если запросы должны касаться нескольких узлов - т.е. сложные соединения - но при поиске конкретной строки по первичному ключу производительность молниеносна.
Очевидно, что, учитывая распределенность узлов, медленная или перегруженная сеть будет сильно влиять на производительность.