Tôi có một lược đồ kế thừa (từ chối trách nhiệm!) Sử dụng id được tạo dựa trên hàm băm cho khóa chính cho tất cả các bảng (có rất nhiều). Một ví dụ về id như vậy là:
922475bb-ad93-43ee-9487-d2671b886479
Không có hy vọng có thể thay đổi cách tiếp cận này, tuy nhiên hiệu suất với truy cập chỉ mục là kém. Đặt ra vô số lý do có thể xảy ra, có một điều tôi nhận thấy rằng dường như ít hơn tối ưu - mặc dù tất cả các giá trị id trong tất cả các bảng có độ dài chính xác 36 ký tự, nhưng kiểu cột varchar(36)
thì không char(36)
.
Việc thay đổi các loại cột thành độ dài cố định char(36)
sẽ cung cấp bất kỳ lợi ích hiệu suất chỉ mục đáng kể nào , ngoài việc tăng rất ít số lượng mục trên mỗi trang chỉ mục, v.v.?
Tức là postgres thực hiện nhanh hơn nhiều khi xử lý các loại có độ dài cố định so với các loại có độ dài thay đổi?
Vui lòng không đề cập đến việc tiết kiệm lưu trữ cực nhỏ - điều đó sẽ không thành vấn đề so với phẫu thuật cần thiết để thực hiện thay đổi cho các cột.