sql >> Databáze >  >> RDS >> PostgreSQL

Rozdíl ve výkonu mezi UUID, CHAR a VARCHAR v tabulce PostgreSql?

Použijte uuid . PostgreSQL má nativní typ z nějakého důvodu.

Interně ukládá uuid jako 128bitové binární pole. Vaše další navrhované možnosti jej ukládají jako hexadecimální, což je ve srovnání velmi neefektivní.

Nejen to, ale:

  • uuid provádí jednoduché řazení po byte pro objednávání. text , char a varchar zvažte kolace a národní prostředí, což je pro uuid nesmyslné.

  • Existuje pouze jedna kanonická reprezentace uuid . Totéž neplatí pro text atd.; musíte vzít v úvahu velká a malá hexadecimální písmena, přítomnost nebo nepřítomnost {...-...} s atd.

Není tu žádná otázka. Použijte uuid .

Jediný další typ, který dává smysl, je bytea , který lze použít alespoň k přímému uložení 16 bajtů uuid. To je to, co bych udělal, kdybych používal systémy, které si neumí poradit s datovými typy mimo základní sadu, jako opravdu hloupé ORM nějakého druhu.



  1. zahrnout třídu Jfactory do externího souboru php, Joomla

  2. Proč mají všechny databáze veřejné schéma v PostgreSQL?

  3. Jak používat funkci Rand v kombinaci s Union v MySQL

  4. Chyba:Tato funkce není dostupná pro databázi, kterou používáte