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

Chỉ mục và khóa chính nhiều cột

Tôi không quen thuộc với nội bộ của các chỉ số trên mySql, nhưng trên hai sản phẩm của nhà cung cấp cơ sở dữ liệu mà tôi quen thuộc với (MsSQL, Oracle), các chỉ số là cấu trúc Cây cân bằng, có các nút được tổ chức thành một bộ tuần tự gồm các cột. chỉ mục được xác định trên ( Theo trình tự được xác định )

Vì vậy, trừ khi mySql làm điều đó rất khác, (có thể là không), bất kỳ chỉ mục tổng hợp nào (trên nhiều cột) đều có thể có thể sử dụng được bởi bất kỳ truy vấn nào cần lọc hoặc sắp xếp theo tập hợp con của các cột trong chỉ mục, miễn là danh sách các cột tương thích, tức là nếu các cột, khi được sắp xếp theo thứ tự giống như danh sách các cột được sắp xếp theo thứ tự trong chỉ mục hoàn chỉnh, là một tập hợp con có thứ tự của tập hợp đầy đủ các cột chỉ mục, bắt đầu ở đầu chuỗi chỉ mục thực tế, không có khoảng trống ngoại trừ ở cuối ...

Nói cách khác, điều này có nghĩa là nếu bạn có chỉ mục trên (a, b, c, d) một truy vấn lọc trên (a), (a, b) hoặc (a, b, c) cũng có thể sử dụng chỉ mục , nhưng một truy vấn cần lọc trên (b), hoặc (c) hoặc (b, c) sẽ không thể sử dụng chỉ mục ...

Vì vậy, trong trường hợp của bạn, nếu bạn thường xuyên cần lọc hoặc sắp xếp trên cột mục một mình, bạn cần thêm một chỉ mục khác trên chính cộ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. Có cách nào hiệu quả hơn để tạo phân trang trong Hibernate hơn là thực hiện các truy vấn chọn và đếm không?

  2. Tìm kiếm vùng lân cận

  3. Tại sao TRẠNG THÁI BẢNG HIỂN THỊ của innodb lại không đáng tin cậy như vậy?

  4. # 1139 - Gặp lỗi 'toán hạng lặp lại-toán tử không hợp lệ' từ regexp

  5. thay đổi công cụ mặc định mysql thành innodb