Chia nhỏ về hiệu suất thực tế của so sánh chuỗi so với không nổi, trong trường hợp này, bất kỳ kích thước nào không có dấu và có dấu đều không quan trọng. Kích thước thực sự là sự khác biệt thực sự về hiệu suất. Có thể là 1byte + (lên đến 126byte) so với 1,2,4 hoặc 8 byte so sánh ... rõ ràng là non-float nhỏ hơn chuỗi và float, do đó thân thiện với CPU hơn trong lắp ráp.
So sánh chuỗi với chuỗi trong tất cả các ngôn ngữ chậm hơn so với thứ mà CPU có thể so sánh trong 1 lệnh. Ngay cả khi so sánh 8 byte (64 bit) trên CPU 32 bit vẫn nhanh hơn VARCHAR (2) hoặc lớn hơn. * Một lần nữa, hãy xem lắp ráp được sản xuất (thậm chí bằng tay), cần nhiều hướng dẫn hơn để so sánh các ký tự theo ký tự so với số CPU từ 1 đến 8 byte.
Bây giờ, nhanh hơn bao nhiêu? cũng phụ thuộc vào khối lượng dữ liệu. Nếu bạn chỉ đơn giản so sánh 5 với 'audi' - và đó là tất cả những gì DB của bạn có, thì sự khác biệt kết quả là rất nhỏ mà bạn sẽ không bao giờ nhìn thấy nó. Tùy thuộc vào CPU, việc triển khai (máy khách / máy chủ, web / tập lệnh, v.v.), bạn có thể sẽ không nhìn thấy nó cho đến khi bạn đạt được vài trăm so sánh trên máy chủ DB (thậm chí có thể vài nghìn so sánh trước khi nó được chú ý).
- Để loại bỏ tranh chấp không chính xác về so sánh băm. Bản thân hầu hết các thuật toán băm đều chậm, vì vậy bạn không được hưởng lợi từ những thứ như CRC64 và nhỏ hơn. Trong hơn 12 năm, tôi đã phát triển các thuật toán tìm kiếm cho các công cụ tìm kiếm nhiều quận và 7 năm cho các văn phòng tín dụng. Bất kỳ thứ gì bạn có thể giữ ở dạng số càng nhanh ... ví dụ như số điện thoại, mã zip, thậm chí đơn vị tiền tệ * 1000 (lưu trữ) div 1000 (truy xuất) sẽ nhanh hơn DECIMAL để so sánh.
Ozz