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

Khi nào thì thêm chỉ mục trên trường bảng SQL (MySQL)?

Việc sử dụng các chỉ mục trong bảng SQL không phải lúc nào cũng rõ ràng. Nhưng có một số quy tắc chung có thể giúp bạn quyết định trong hầu hết các trường hợp.

  1. Đặt chỉ mục trên các cột đang được sử dụng trong mệnh đề where
  2. Đặt chỉ mục trên các cột mà bạn sử dụng để tham gia.
  3. Cố gắng không sử dụng nhiều hơn 4-5 chỉ mục trên các cột trong cùng một bảng.

Và các khái niệm chung mà bạn nên ghi nhớ là:

  1. Bất kỳ chỉ mục nào bạn sử dụng sẽ giúp tìm kiếm trên các cột đó nhanh hơn.
  2. Bất kỳ chỉ mục nào bạn thêm vào đều khiến quá trình chèn vào bảng này chậm hơn một chút.
  3. Từ hai phần trước. Bạn có trách nhiệm quyết định xem bạn thực hiện bao nhiêu lần chèn và truy vấn trên các bảng để quyết định xem có nên sử dụng chỉ mục và trên cột nào hay không.

CHỈNH SỬA

Nhận xét của @AndrewLazarus thực sự quan trọng và tôi quyết định thêm nó vào câu trả lời:

  1. Không sử dụng chỉ mục trên các cột chỉ có một vài giá trị khác nhau. Ví dụ, một cột chứa một trạng thái, khi chỉ có một vài trạng thái hoặc một giá trị boolean. Lý do không nên làm như vậy là chỉ mục không thực sự giúp ích cho bạn vì nó sẽ chỉ được chia cho số lượng giá trị và vì bạn chỉ có một vài trong số chúng, nên sẽ không có bất kỳ lợi ích thực sự nào. Bảng sẽ tiêu tốn nhiều dung lượng hơn với chỉ mục và định dạng chậm hơn khi chèn, nhưng bạn sẽ không nhận được hiệu suất tốt hơn đáng kể khi truy vấn


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP - Dấu ngoặc kép hay dấu ngoặc kép xung quanh truy vấn SQL?

  2. Lỗi MySQL 2006 (HY000) tại dòng 406:Máy chủ MySQL đã biến mất

  3. Không thể tìm thấy mô-đun `mysql` node.js

  4. Tương đương với RowID của Oracle trong MySQL

  5. Bí danh MySQL cho các cột SELECT *