В моем приложении Ruby On Rails мне приходится хранить (относительно) большие матрицы размером около 300x300 элементов (значения с плавающей запятой, в основном разные) для каждого документа. При каждом извлечении документа необходимо загружать полную матрицу для пользовательских вычислений. Матрицы также довольно часто обновляются (так что производительность записи и кэширование памяти также являются проблемой).
Каков хороший способ хранения таких матриц (с точки зрения производительности)? Некоторые альтернативы, которые приходят мне на ум:
- Таблица со столбцами
row
,column
иvalue
. Но я предполагаю, что выборка и сохранение всей матрицы (около 90000 ячеек) не является хорошей идеей при каждом запросе (некоторое кэширование памяти поможет). - Сохраните сериализованную матрицу в текстовом поле/столбце. Есть ли у вас какие-либо идеи, как это сравнивается с 1. с точки зрения производительности?
- Используйте какую-нибудь базу данных документов (например, Mongo) и сохраните всю матрицу в одном поле документа (не уверен, в чем преимущество по сравнению с 2.).