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

Chuyển đổi thành varchar hoặc varchar thành int khi so sánh trong MySQL có nhanh hơn không?

Điều đó phụ thuộc vào các chỉ số. Nếu cả hai cột đều có chỉ mục được đặt, bạn nên chuyển thành int , bởi vì nó chỉ cần so sánh 4 byte. Tuy nhiên, nếu chỉ varchar cột được lập chỉ mục, truyền đến varchar .

Cuối cùng, bạn nên có explain truy vấn của mình ed, để xem chỉ mục nào được sử dụng và truyền cho phù hợp.

Nếu không có chỉ mục nào được đặt, truyền thành int là cách tiếp cận tốt hơn nói chung. Tuy nhiên, nếu không có bộ lập chỉ mục, điều đó không thực sự quan trọng, bạn sẽ tiết kiệm được nhiều thời gian hơn khi lập chỉ mục hơn là chọn đúng cách để ép kiểu. Ngoại trừ, một lần nữa, các bàn nhỏ. Sau đó, nó cũng không thực sự quan trọng.

Trên thực tế, chúng ta không chỉ nên tính đến chi phí để so sánh mà còn cho quá trình truyền:Truyền một int tới một varchar nhanh hơn một chút so với phân tích cú pháp varchar thành một int . Tuy nhiên, so sánh một varchar có ít nhất 4 ký tự sẽ khiến lợi thế đó trở nên vô dụng. Nếu các giá trị của bạn có xu hướng cao hơn 999, hãy truyền đến int sẽ nhanh hơn. Nhưng điều đó bây giờ phụ thuộc vào hệ điều hành của bạn, kiến ​​trúc, tập lệnh được sử dụng bởi nhị phân mysql của bạn, v.v. Cách duy nhất để có được câu trả lời thực sự đáng tin cậy là:Đánh giá tình huống đó trên máy mục tiêu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel có thể xử lý các ứng dụng có lưu lượng truy cập cao không?

  2. Cách xem truy vấn đầy đủ từ DANH SÁCH TIẾN TRÌNH

  3. Tính 1 tuần trước Chủ nhật cuối cùng và từ hôm nay đến Chủ nhật tuần trước

  4. Những ký tự nào thực sự có khả năng gây ra SQL injection trong MySQL?

  5. Nhóm MySQL theo các giá trị liên tiếp