Насколько хорошо работает уникальный хэш-индекс по сравнению с идентификатором записи? - PullRequest
0 голосов
/ 03 ноября 2018

Следуя рекомендациям CQRS, мне нужно будет указать пользовательский идентификатор (например, UUID) в любой команде create. Это означает, что при использовании OrientDB в качестве хранилища я не смогу использовать сгенерированный RIDs, а просто выполнить поиск по ручному индексу, используя UUIDs.

Теперь в документах OrientDB указано, что производительность выборки записей с использованием RID не зависит от размера базы данных O(1), предположительно, потому что она уже описывает физическое местоположение записи. Это также имеет место при использовании UNIQUE_HASH_INDEX?

Стоит ли отклонять методы CQRS для запроса RID из базы данных при сборке команды create, или разница в производительности незначительна?

1 Ответ

0 голосов
/ 04 ноября 2018

Я проверил производительность извлечения записей на основе RID и индексированных полей UUID, используя базу данных, содержащую 180 000 записей. Для измерения были просмотрены 30 000 записей, при этом очищался локальный кеш между каждым поиском. Это результат:

RID: около 0,2 с на запись

UUID: около 0,3 с на запись

Я выполнил запросы, заполнив базу данных за 30 000 шагов записи. Время поиска не было существенно зависеть от размера базы данных в обоих случаях. Не берите в голову относительно высокие времена, поскольку этот эксперимент проводился на перегруженном компьютере. Это отношение между двумя, что является относительным.

Чтобы ответить на мой собственный вопрос, запрос на основе UNIQUE_HAS_INDEX достаточно близок к запросам на основе RID.

...