2012-02-17 3 views
1

Я собираюсь хранить некоторые данные спецификации как строки JSON (высота, вес и т. Д.) - по одному на продукт. Доступ к данным будет очень редко (один раз изначально, а затем только снова, если я изменю алгоритм и вам нужно будет обновить итоговые показатели). Мой план состоит в том, чтобы хранить ссылку на местоположение строки JSON в базе данных MySQL вместе с остальными данными продукта.Магазин JSON Blobs в MySQL или S3

Каждый блок размером около 6k и, предположив, что я собираюсь хранить 10 миллионов из них, мои тесты показывают, что размер таблицы MySQL с этими 10-метровыми строками будет равен ~ 70 ГБ (включая столбец id с индексом). Хранение их на S3 получилось бы немного дешевле, но в обоих случаях оно низкое.

Есть ли недостаток, чтобы положить их в MySQL. Может ли одна очень большая таблица повлиять на производительность остальной части сервера?

ответ

1

Я рекомендую, вы

  • Сжать их: Это идеальный сценарий для торговли stoage пространства от циклов декомпрессии процессора. JSON, как правило, сильно сжимаемый, скажем, 2: 1, как минимум, собирается до 10: 1
  • хранить их непосредственно в отдельной таблице MyISAM: Таким образом, это гарантировано, чтобы не мешать с другими таблицами
+0

Благодарности. Должен ли я хранить их как blobs или текст в MySQL? – alan

+0

Возможно, вы захотите использовать http://dev.mysql.com/doc/refman/5.0/en/myisampack.html – Daan

+0

Я использую Amazon RDS, и кажется, что MyISAM не поддерживается для моментальных снимков/резервных копий ... будет ли InnoDB значительно хуже в этой ситуации? – alan