PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Разлика в производителността между UUID, CHAR и VARCHAR в таблицата на PostgreSql?

Използвайте uuid . PostgreSQL има родния тип по някаква причина.

Той съхранява uuid вътрешно като 128-битово двоично поле. Другите ви предложени опции го съхраняват като шестнадесетичен, което е много неефективно в сравнение.

Не само това, но и:

  • uuid прави просто сортиране по байтове за подреждане. text , char и varchar вземете под внимание сортирането и локалите, което е безсмислено за uuid.

  • Има само едно канонично представяне на uuid . Същото не важи за текст и т.н.; трябва да вземете предвид главни срещу малки шестнадесетични букви, наличие или отсъствие на {...-...} s и т.н.

Просто няма въпрос. Използвайте uuid .

Единственият друг тип, който има някакъв смисъл, е bytea , който поне може да се използва за директно съхраняване на 16-те байта на uuid. Това бих направил, ако използвах системи, които не могат да се справят с типове данни извън основния набор, като наистина тъпо ORM от някакъв вид.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Филтрирайте по период от време (един и същи месец и ден) през годините

  2. Заявка за Squeel и Heroku, Postgres:Грешка при използване на GROUP BY и ORDER

  3. Как да получите заявка за атрибути на колона от името на таблицата с помощта на PostgreSQL?

  4. JPA Hibernate извиква съхранена процедура

  5. Подобрете производителността на заявките на PostgreSQL, като оставите съединение за 100 милиона данни