Назад | Перейти на главную страницу

amazon DynamoDB или MySQL для хранения больших массивов внутри каждой строки

Я пытаюсь решить, какую базу данных мне следует использовать для создаваемого приложения. Я склонялся к DynamoDB из-за его масштабируемости, но потом я прочитал в документация который сказал:

ограничение на размер элемента составляет 64 КБ

хотя похоже, что у MySQL есть подобное ограничение, задокументированное Вот

Это приложение будет хранить много данных в двух массивах, каждый из которых может содержать до 10 000–100 000 строк. Я предполагаю, что каждая из этих строк будет где-то около 20 символов в длину, поэтому каждый элемент массива будет около 40 байт, а каждый массив может быть около 4 МБ.

Учитывая это затруднительное положение, какую базу данных на Amazon AWS вы бы использовали; или как обойти ограничение на размер строки?

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

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

MySql 5.0 Руководство

Таким образом, любая СУБД должна позволять вам хранить одинаковое количество данных внутри каждой строки. Похоже, ни того, ни другого не будет достаточно для ваших нужд или вашего способа обработки данных.

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

При использовании DynamoDB рекомендуется использовать Amazon S3 для хранения больших значений.

Другие варианты включают сжатие содержимого с помощью gzip, что дает вам около 200 КБ памяти.

См. Слайды Мэтта Вудса ниже:

http://www.slideshare.net/AmazonWebServices/building-applications-with-dynamodb

после прочтения далее в Требования к хранилищу MySQL page я заметил этот раздел:

Внутреннее представление таблицы имеет максимальный размер строки 65 535 байт, даже если механизм хранения способен поддерживать строки большего размера. Это число не включает столбцы BLOB или TEXT., которые составляют от 9 до 12 байтов к этому размеру. Для данных BLOB и TEXT информация хранится внутри в области памяти, отличной от буфера строк.