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

Chúng ta có nên đưa cột sắp xếp, khóa chính vào chỉ mục tổng hợp (MySQL) không

Câu trả lời tùy thuộc vào động cơ bạn sử dụng:

  • MyISAM - thêm id vào chỉ mục có thể và có thể sẽ hữu ích
  • InnoDB - Khóa chính đã là một phần của mỗi chỉ mục phụ, vì innodb lưu trữ các hàng trong BTREE được sắp xếp theo khóa chính và chỉ mục cần chính để trỏ đến hàng thực - trong trường hợp đó, việc thêm nó là thừa nếu nó nằm cuối cùng trong chỉ mục ( nhưng làm như vậy sẽ không thêm nó hai lần, vì vậy nó sẽ không làm cho mọi thứ tồi tệ hơn). Trong một số trường hợp, bạn có thể muốn thêm nó dưới dạng không cuối cùng hoặc bạn có nhiều cột chính và bạn thêm một số cột vào chỉ mục của mình theo thứ tự khác - sẽ không có vấn đề gì với nó, innodb sẽ nối các cột chính còn lại của chỉ mục đó, nhưng có thể sử dụng những thứ đã thêm trước đó mà không cần sao chép chúng)

Vì vậy, câu trả lời:

  1. Trong InnoDB thì không cần thiết, Trong MyISAM, sẽ tốt hơn nếu bạn thực sự sử dụng cách phân loại đó, nếu bạn không sử dụng nó, việc thêm nó chỉ làm cho chỉ mục đó lớn hơn.
  2. Thứ tự các cột trong định nghĩa bảng và thứ tự trong chỉ mục là những thứ riêng biệt, vì vậy không sao cả
  3. Có, chỉ số đó có vẻ thực sự tốt - nhưng bạn có thể tự kiểm tra bằng cách sử dụng GIẢI THÍCH , có khả năng đạt hiệu suất tốt hơn - " bao gồm chỉ mục ", nhưng điều đó đi kèm với chi phí, vì vậy, trừ khi truy vấn là quan trọng và hoạt động kém hiệu quả, thì có thể là quá mức cần thiết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn SQL nhiều giá trị trong một ô

  2. Độ dài cột JSON tối đa trong MySQL

  3. Phương pháp tốt nhất để xử lý lỗi bằng PDO

  4. PHP MYSQL tìm nạp một TEXT với các dòng mới

  5. xóa tất cả bản ghi khỏi bảng trong mysql