Хороший дизайн базы данных для вызова и сравнения 2D массивов данных? - PullRequest
2 голосов
/ 30 сентября 2008

Я хочу хранить двумерные массивы 900x100 элементов в базе данных. Эффективный отзыв и сравнение массивов имеет важное значение. Я мог бы использовать таблицу со схемой типа [A, x, y, A (x, y)], чтобы один массив скомпрометировал 90 000 записей. Это похоже на обычный дизайн таблицы для хранения массива, который обеспечит эффективный вызов отдельных элементов, но неэффективный вызов всего массива и сделает очень неэффективным сравнение массивов.

Должен ли я оставить дизайн таблицы таким образом, построить и сравнить мои массивы в коде? Или есть лучший способ структурировать таблицу так, чтобы я мог получить эффективное сравнение массивов, используя только операции с базой данных?

спасибо

Ответы [ 3 ]

2 голосов
/ 30 сентября 2008

Если позволяет тип данных, сохраните их в сцепленном формате и сравните в памяти после того, как они были деканкатенированы. Операция с базой данных будет намного быстрее, и операции в памяти будут также быстрее, чем поиск в базе данных.

Кто знает, вы можете даже сравнить его без деконкатенирования.

0 голосов
/ 13 января 2011

Когда я работал в сейсмической промышленности, мы просто сбрасывали наши массивы (обычно 1d из нескольких тысяч элементов) в двоичный файл. База данных будет использоваться только для того, что по существу было метаданными (местоположение, индексирование и т. Д.). Это было бы значительно быстрее, но оно также позволяло разъединять данные в случае необходимости: в производстве это было обычным делом, несколько тысяч элементов звучат не очень хорошо, но типичный набор данных может легко составлять сотни ГБ - это 1990-е годы, поэтому нам пришлось развязать ленту.

0 голосов
/ 30 сентября 2008

900 x 100 элементов на самом деле очень малы (даже если элементы массивные 1КБ, что составляет всего 90 МБ). Разве вы не можете просто сравнивать в памяти при необходимости и хранить на диске в каком-либо сериализованном формате?

Не имеет смысла хранить двумерные массивы в базе данных, особенно если это неизменяемые данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...