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

MySQL loại bỏ các bản sao khỏi cơ sở dữ liệu lớn một cách nhanh chóng

Tôi tin rằng điều này sẽ làm được, bằng cách sử dụng khóa trùng lặp + ifnull ():

create table tmp like yourtable;

alter table tmp add unique (text1, text2);

insert into tmp select * from yourtable 
    on duplicate key update text3=ifnull(text3, values(text3));

rename table yourtable to deleteme, tmp to yourtable;

drop table deleteme;

Sẽ nhanh hơn nhiều so với bất kỳ thứ gì yêu cầu nhóm theo hoặc riêng biệt hoặc một truy vấn con, hoặc thậm chí sắp xếp theo thứ tự. Điều này thậm chí không yêu cầu tệp tệp, điều này sẽ giết chết hiệu suất trên một bảng tạm thời lớn. Vẫn sẽ yêu cầu quét toàn bộ bảng gốc, nhưng không tránh được điều đó.



  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ại sao MySQL không hỗ trợ độ chính xác mili giây / micro giây?

  2. # 1273 - Đối chiếu không xác định:'utf8mb4_unicode_ci' cPanel

  3. Cách cài đặt MySQL 8 với Workbench trên Windows 10

  4. Android JDBC không hoạt động:ClassNotFoundException trên trình điều khiển

  5. Giá trị chuỗi không chính xác khi cố gắng chèn UTF-8 vào MySQL thông qua JDBC?