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

Làm cách nào để tối ưu hóa truy vấn MySQL để cập nhật?

Nếu bạn chưa có chỉ mục về number bạn nên thêm một -

CREATE INDEX table_number ON table (number);

CẬP NHẬT Hãy thử điều này -

UPDATE inv t1
INNER JOIN inv t2
    ON t1.name = t2.name
    AND t1.id <> t2.id
SET t1.flag_qty = 1;

Bạn có thể tạo bảng của mình chỉ với các bản sao bằng cách chọn dữ liệu này trực tiếp vào một bảng khác thay vì thực hiện cập nhật cờ này trước.

INSERT INTO duplicate_invs
SELECT DISTINCT inv1.*
FROM inv AS inv1
INNER JOIN inv AS inv2
    ON inv1.name = inv2.name
    AND inv1.id < inv2.id

Nếu bạn có thể giải thích logic mà các hàng bị xóa khỏi inv bảng này có thể là toàn bộ quá trình có thể được thực hiện trong một bướ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. mysql:tách giá trị varchar và chèn các phần

  2. Kết xuất cơ sở dữ liệu mysql vào bản sao lưu bản rõ (CSV) từ dòng lệnh

  3. chuyển dữ liệu từ mySQL sang api trong Flask

  4. Không có tùy chọn để ánh xạ tên cột trong mô hình kích thước tiếp theo

  5. Docker Soạn kết nối ECONNREFUSED 172.18.0.4:3306