Mnesia: при запросе таблицы order_set возвращаются ли записи в гарантированном порядке?

Будут ли выборки и чтения (наряду с их двоюродными братьями dirty_) возвращать записи в порядке сортировки первичного ключа, когда таблица имеет *ordered_set*? Другими словами, если мой выбор соответствует более чем одной записи, есть ли какие-либо гарантии в отношении порядка возвращаемых записей? Точно так же, если index_read используется и возвращает более одной записи, сортируются ли они каким-либо особым образом по отношению к первичному ключу.


person Jr0    schedule 22.10.2012    source источник


Ответы (1)


Краткий ответ: Да. Если вы используете order_set и сопоставляете несколько объектов, они будут упорядочены при возврате.

mnesia в значительной степени построена вокруг ets, и документация направит вас к руководству пользователя ERTS и руководству пользователя ets для деталей реализации.

Из руководства пользователя ets на select:

В таблицах типа order_set объекты посещаются в том же порядке, что и при первом/следующем обходе. Это означает, что спецификация соответствия будет выполняться для объектов с ключами в первом/следующем порядке, и соответствующий список результатов будет в порядке этого выполнения.

person Soup d'Campbells    schedule 08.01.2013