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

Làm thế nào để tối ưu hóa cơ sở dữ liệu truy vấn này trong cơ sở dữ liệu lớn?

Bạn không có bất kỳ chỉ mục nào ngoài khóa chính. Bạn cần tạo chỉ mục trên các trường mà bạn sử dụng trong câu lệnh WHERE của mình. Nếu bạn chỉ cần lập chỉ mục 1 trường hoặc kết hợp nhiều trường phụ thuộc vào các CHỌN khác mà bạn sẽ chạy trên bảng đó.

Hãy nhớ rằng REGEXP hoàn toàn không thể sử dụng các chỉ mục, LIKE chỉ có thể sử dụng chỉ mục khi nó không bắt đầu bằng ký tự đại diện (vì vậy LIKE 'a%' có thể sử dụng chỉ mục, nhưng LIKE '%a' không thể), lớn hơn / nhỏ hơn (<>) thường cũng không sử dụng chỉ mục.

Vì vậy, bạn chỉ còn lại mã codecheck lĩnh vực. Tôi cho rằng nhiều hàng sẽ có cùng giá trị cho check , vì vậy tôi sẽ bắt đầu lập chỉ mục bằng mã code đồng ruộng. Chỉ mục đa trường chỉ có thể được sử dụng theo thứ tự mà chúng được xác định ...

Hãy tưởng tượng chỉ mục được tạo cho các trường code, check . Chỉ mục này có thể được sử dụng trong truy vấn của bạn (trong đó mệnh đề WHERE chứa cả hai trường), cũng trong truy vấn chỉ có mã code nhưng không có trong truy vấn chỉ có check trường.

ORDER BY id có quan trọng không ? Nếu không, hãy bỏ nó đi, nó sẽ ngăn việc sắp xếp vượt qua và truy vấn của bạn sẽ kết thúc nhanh hơ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. MySQL nối nhiều thành nhiều hàng đơn

  2. lỗi mysql 1292 khi sử dụng truyền trong câu lệnh cập nhật

  3. Xóa một số lượng khỏi nhiều hàng trong cơ sở dữ liệu

  4. Làm cách nào để cho phép khách hàng sử dụng openid của họ trên trang web của bạn, giống như stackoverflow?

  5. Lỗi nghiêm trọng:Gọi đến hàm không xác định mysql_connect_errno () trong