PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Sự khác biệt về hiệu suất giữa UUID, CHAR và VARCHAR trong bảng PostgreSql?

Sử dụng uuid . PostgreSQL có kiểu gốc là có lý do.

Nó lưu trữ uuid nội bộ dưới dạng trường nhị phân 128 bit. Các tùy chọn được đề xuất khác của bạn lưu trữ nó dưới dạng hệ thập lục phân, so sánh rất kém hiệu quả.

Không chỉ vậy, mà còn:

  • uuid sắp xếp theo từng byte đơn giản để sắp xếp. text , charvarchar xem xét các đối chiếu và ngôn ngữ, điều này là vô nghĩa đối với một uuid.

  • Chỉ có một bản trình bày hợp quy của một uuid . Điều này cũng không đúng đối với văn bản, vv; bạn phải xem xét chữ hoa và chữ thường, có hay không có {...-...} s, v.v.

Không có câu hỏi nào cả. Sử dụng uuid .

Loại duy nhất có ý nghĩa khác là bytea , ít nhất có thể được sử dụng để lưu trữ trực tiếp 16 byte của uuid. Đây là những gì tôi sẽ làm nếu tôi đang sử dụng các hệ thống không thể đối phó với các kiểu dữ liệu bên ngoài tập hợp cơ bản, giống như một ORM thực sự ngu ngốc.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL không thể kết nối:không tìm thấy định nghĩa dịch vụ

  2. Không thể xuất bảng AWS RDS Postgres sang CSV trong S3 bằng cách sử dụng hàm aws_s3.query_export_to_s3

  3. Tại sao PostgreSQL coi các ranh giới NULL trong các loại phạm vi là khác biệt với các ranh giới vô hạn?

  4. Tham chiếu đến bí danh cột tổng hợp được chọn trong mệnh đề có trong Postgres

  5. Mối quan hệ Nhiều-Nhiều giữa hai bảng trong hai cơ sở dữ liệu khác nhau