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

Tối ưu hóa câu lệnh xóa MySQL

Nếu DELETE của bạn nhằm loại bỏ phần lớn các hàng trong bảng đó, một điều mà mọi người thường làm là chỉ sao chép các hàng bạn muốn giữ lại vào một bảng trùng lặp, sau đó sử dụng DROP TABLE hoặc TRUNCATE để xóa sạch bảng gốc nhanh hơn nhiều.

Chỉ mục có thể giúp tìm các hàng bạn cần xóa, nhưng việc xóa yêu cầu cập nhật chỉ mục. Sau khi xóa nhiều hàng, chỉ mục có thể bị mất cân bằng và yêu cầu bảo trì với OPTIMIZE TABLE .

DATE_SUB() hàm là một biểu thức hằng số (nó không thay đổi theo từng hàng) vì vậy trình tối ưu hóa truy vấn phải đủ thông minh để phân tích và thực hiện phép tính một lần.

Bạn không cần tạo thêm chỉ mục cho khóa chính. Ràng buộc khóa chính hoàn toàn tạo ra một chỉ mục mang lại lợi ích tương tự như một chỉ mục không phải khóa chính.

Chỉ mục kết hợp có thể hữu ích như chỉ mục một cột, miễn là tiêu chí tìm kiếm của bạn tham chiếu đến (các) cột ngoài cùng bên trái của chỉ mục. Cảnh báo "có thể" là do các nút chỉ mục riêng lẻ lớn hơn và do đó, cần nhiều bộ nhớ hơn để lưu chỉ mục vào bộ nhớ cache, nhưng đây là một yếu tố đủ nhỏ để tôi sẽ không tạo toàn bộ chỉ mục cột đơn khác.



  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 MySQL:Khớp giá trị được phân tách bằng dấu phẩy với cột chứa chuỗi được phân tách bằng dấu phẩy

  2. Tìm mức lương tối đa và tối đa thứ hai cho bảng nhân viên MySQL

  3. Sử dụng $ _SESSION để truyền dữ liệu

  4. Trình điều khiển mysql jdbc không hỗ trợ dấu phân cách trong trình kích hoạt có nhiều câu lệnh

  5. Đăng nhập / Hệ thống đăng ký với php và mysql