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

tối ưu hóa truy vấn với câu lệnh viết hoa

case câu lệnh không thêm thời gian, vì nó được tìm kiếm.

Giải pháp? Lưu trữ các cặp trong một bảng tạm thời. . . với một chỉ mục. Vì vậy:

create temporary table code_pairs (
    old_code varchar(255) not null primary key,
    new_code varchar(255)
);

insert into code_pairs(old_code, new_code)
    values ('akdsfj', 'kadjsf'),
           ('asdf', 'ndgs'),
           . . . ;

Sau đó sử dụng update với join :

update test_table tt join
       code_paris cp
       on tt.code = cp.old_code
    set tt.code = cp.new_code;

Điều này giúp bạn tiết kiệm thời gian vì mã phù hợp được tìm thấy bằng cách sử dụng chỉ mục, thay vì sau đó tìm kiếm từng cái một thông qua một case bản tường trình. Ngoài ra, không có bản cập nhật nào được cố gắng trên các hàng không khớp. 170.000 hàng không có kết quả phù hợp có lẽ là phần chậm nhất của truy vấn, vì chúng cần phải xem qua toàn bộ danh sách case giá trị.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm tương đương với dictcursor trong flashkext.mysql

  2. MySQL select query với tên cột biến

  3. Làm cách nào để lưu trữ mật khẩu an toàn trong MySQL và xác thực với các dịch vụ bên ngoài

  4. Làm thế nào để viết một trình kích hoạt để hủy bỏ xóa trong MYSQL?

  5. tập lệnh mẫu php để phân trang