Soy nuevo en PostgreSQL y algo nuevo en las bases de datos en general. ¿Existe una forma establecida de cómo debemos indexar los valores de UUID en Postgres? Estoy dividido entre usar hashing y usar un trie, a menos que ya haya algo incorporado que use automáticamente. Lo que sea que use va a manejar grandes cantidades de datos.
La familia de operadores SP-GiST "text_ops" indexa utilizando un trie. Debido a que los UUID son bastante largos y muy diferentes, suenan atractivos a pesar de que solo haría búsquedas de concordancia completa.
También hay una opción de hash. El hash es O (1), y no tendré que hacer ninguna comparación además de la igualdad, por supuesto, pero debido a que los UUID son bastante largos, me temo que generar hashes de ellos perdería mucho tiempo.
¿O es algo que depende demasiado del sistema y del uso específico?
Prefiero usar bigserial en la mayoría de los casos, pero me han dicho que use uuid para esto. Necesitamos uuid porque podríamos tener múltiples servidores usando diferentes bases de datos, por lo que no hay garantía de que tengamos bigints únicos. Podríamos usar una secuencia diferente (y semilla) para cada servidor, pero aún no es tan flexible como los UUID. Por ejemplo, no podríamos migrar las entradas de la base de datos de un servidor a otro sin convertir las ID y sus referencias en todas partes.