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

Loại lập chỉ mục tốt nhất khi có mệnh đề LIKE

Đúng, những gì bạn có ở đây là một kẻ giết cơ sở dữ liệu

Chỉ mục cây B có thể được sử dụng để so sánh cột trong các biểu thức sử dụng các toán tử =,>,> =, <, <=hoặc BETWEEN. Chỉ mục cũng có thể được sử dụng để so sánh LIKE nếu đối số cho LIKE là một chuỗi không đổi không bắt đầu bằng ký tự đại diện.

Nguồn: http://dev.mysql.com /doc/refman/5.7/en/index-btree-hash.html

Vì vậy, điều đó có nghĩa là truy vấn LIKE của bạn không thể sử dụng chỉ mục và khi đó bạn có hai lượt thích được kết nối với OR. Nếu điều đó là không đủ, bạn cũng đã đưa vào so sánh KHÔNG VÀO.

Nhưng may mắn thay, biểu thức LIKE thứ hai không quá tệ, nó không bắt đầu bằng ký tự đại diện. Vì vậy, hy vọng tốt nhất của bạn là tạo một chỉ mục tổng hợp trên usage_guidance, name

Nếu bạn có thể đăng BẢNG TẠO HIỂN THỊ và một vài dòng dữ liệu mẫu + kết quả mong đợi, chúng tôi có thể biết nếu có cách nào để viết lại truy vấn này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Di chuyển trực tuyến từ MySQL 5.6 Non-GTID sang MySQL 5.7 với GTID

  2. COUNT (*) có luôn trả về một kết quả không?

  3. Ví dụ về UTC_DATE - MySQL

  4. Cách di chuyển từ Oracle sang MySQL / Percona Server

  5. Cách cài đặt MySQL 8.0 trên CentOS 8 / RHEL 8