Самый эффективный способ хранения и доступа к огромной матрице данных в MySQL
Я собираюсь хранить огромное количество матричных данных в mysqlDB, что является наиболее эффективным способом хранения и доступа к данным?
Эффективность наиболее важна при получении данных, таблица не будет регулярно обновляться.
Матрица составляет около 100 000 раз 1000 (вероятно, больше в будущем)
id1
value
value_id1
id1
value
value_id2
id2
value
value_id1
id2
value
value_id2
.
.
.
id 100.000
value
value_id1000
vs
value_id1, value_id2, value_id3 ... id 1000
id1 value value value
id2 value value value
id3 value value value
.
.
.
id 100.000
Когда данные огромны, что является наиболее эффективным, короткий вызов (запрос mysql) или для хранения данных в виде матрицы? Данные используются регулярно, поэтому они должны быть эффективными для извлечения данных.
Ответы
Ответ 1
Поскольку вы сказали, что хотите повысить эффективность при наборе, я бы использовал следующий формат таблицы
Column Row Value
1 1 1.2
2 1 2.3
...
Используя формат и индексирование по столбцу и строке матрицы, вы можете получить любую часть данных так быстро, как вы хотите.
Ответ 2
Здесь есть несколько актуальных вопросов:
Ответы на плотные матрицы, похоже, сводятся к нормализованной таблице со столбцами для столбца, строки и значения, как это было предложено Taesung выше, или что-то вроде сохранения отдельных строк из исходной матрицы в виде блоков.
HDF5, похоже, делается для такого рода вещей. Было бы здорово, если бы кто-то с опытом мог прокомментировать дальше.