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

MySQL-Hiệu suất khi đặt hàng trên cột được tính toán

Trên thực tế, bạn không thể tối ưu hóa truy vấn đó.

Bạn đang sắp xếp kết quả bằng cách sử dụng một giá trị được tính toán, vì vậy bạn không thể sử dụng một chỉ mục. Nếu bạn sử dụng explain bạn có thể thấy truy vấn của mình đang được thực thi như thế nào và using temporary tạm thời sẽ có mặt trong extra , có nghĩa là tất cả dữ liệu từ truy vấn của bạn đang được lưu trữ trên một bảng tạm thời, trong đó thứ tự được thực hiện.

Không quan trọng nếu bạn chỉ muốn 50 kết quả phù hợp đầu tiên trong truy vấn, trước tiên nó phải lấy tất cả dữ liệu, chuyển nó vào một bảng tạm thời, sắp xếp kết quả trong bảng đó và sau đó trả lại cho bạn 50 kết quả phù hợp đầu tiên.

Như bạn có thể giả sử, đây là một hoạt động tiêu tốn thời gian và bộ nhớ.

Vì vậy, tùy chọn tốt nhất của bạn là đặt một chỉ mục trong bảng để lấy tất cả các hàng bạn cần nhanh nhất có thể và sau đó xử lý chúng bằng php để lấy dữ liệu bạn cần.

Nhân tiện, hãy xem Hướng dẫn tối ưu hóa MySQL .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hướng dẫn thiết kế cơ sở dữ liệu để quản lý blog trong MySQL

  2. Tốt hơn là sử dụng một giá trị trống dưới dạng '' hoặc là NULL?

  3. Làm thế nào để tạo một UUIDv4 trong MySQL?

  4. MySQL Workbench không hiển thị kết quả truy vấn

  5. SUM (truy vấn con) trong MYSQL