Я новачок у PostgreSQL і дещо новий в базах даних взагалі. Чи існує усталений спосіб, як слід індексувати значення UUID у Postgres? Я розділений між використанням хешування та використанням трие, якщо тільки в ньому вже є щось вбудоване, яке воно використовує автоматично. Що б я не використовував, буде обробляти величезну кількість даних.
Родина операторів SP-GiST "text_ops" індексує за допомогою трие. Оскільки UUID досить довгі і дуже відрізняються, ці звуки привабливі, хоча я б коли-небудь робив повні результати пошуку.
Також є хеш-варіант. Хешинг - це O (1), і мені не потрібно робити ніяких порівнянь, окрім рівності, звичайно, але оскільки UUID є досить довгим, я боюся, що генерування хешей з них не витратить багато часу.
Або це щось, що занадто багато залежить від системи та специфіки використання?
Я вважаю за краще скористатися bigserial у більшості випадків, але мені сказали використовувати uuid для цього. Нам потрібен uuid, оскільки у нас може бути декілька серверів, що використовують різні бази даних, тому немає гарантії, що у нас будуть унікальні bigints. Ми можемо використовувати різну послідовність (та насіннєву) для кожного сервера, але вона все ще не така гнучка, як UUID. Наприклад, ми не змогли би перенести записи бази даних з одного сервера на інший без перетворення ідентифікаторів та їх посилань скрізь.