Tôi đang làm việc trên một ứng dụng sẽ triển khai giá trị hex dưới dạng khóa doanh nghiệp (ngoài trường tăng tự động làm khóa chính) tương tự với id URL được thấy trong Gmail . Tôi sẽ thêm một ràng buộc duy nhất cho cột và ban đầu nghĩ đến việc lưu trữ giá trị như một bigint để thoát khỏi việc tìm kiếm một trường varchar nhưng đã tự hỏi nếu điều đó là cần thiết nếu trường là duy nhất.Hiệu suất MySQL của trường varchar duy nhất vs bigint duy nhất
Kết nối nội bộ sẽ được thực hiện bằng trường tăng tự động và giá trị hex sẽ được sử dụng trong mệnh đề where để lọc.
Loại sắp xếp hiệu suất nào sẽ lưu trữ giá trị dưới dạng varchar (x) hoặc có thể là char (x) trên công việc bổ sung khi thực hiện chuyển đổi đến và từ hex để lưu trữ giá trị dưới dạng số nguyên trong cơ sở dữ liệu? Nó có đáng giá thêm phức tạp?
Tôi đã thực hiện kiểm tra nhanh trên một số hàng nhỏ (50k) và có thời gian kết quả tìm kiếm tương tự. Nếu có một vấn đề hiệu suất lớn, nó sẽ là tuyến tính, hoặc theo cấp số mũ?
Tôi đang sử dụng InnoDB làm công cụ.
Cá nhân, tôi thực sự cố gắng tránh hiển thị người dùng với GUID trong giao diện người dùng. Ngay cả một dòng URL. Tuy nhiên, tôi sẽ đề nghị sử dụng chúng trong nội bộ và cắt xén chúng * để hiển thị * bằng cách sử dụng một phiên hoặc sử dụng mã cụ thể. Bằng cách đó & item = 1 là mục đầu tiên tôi đã cho thấy ... Tôi kéo GUID * nội bộ *. – Godeke