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

Làm cách nào mysql có thể chèn hàng triệu bản ghi nhanh hơn?

Rất có thể là do bạn đang chèn các bản ghi như thế này:

INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");

Gửi một truy vấn mới mỗi khi bạn cần INSERT một cái gì đó không tốt cho hiệu suất. Thay vào đó, hãy kết hợp các truy vấn đó thành một truy vấn duy nhất, như thế này.

INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2"),
                                                 ("data1", "data2"),
                                                 ("data1", "data2"),
                                                 ("data1", "data2"),
                                                 ("data1", "data2");

Bạn cũng có thể đọc thêm về tốc độ chèn trong Tài liệu MySQL . Nó phân biệt rõ ràng những điều sau đây.

Tất nhiên không kết hợp TẤT CẢ chúng, nếu số lượng là LỚN. Giả sử bạn có 1000 hàng cần chèn, sau đó đừng làm điều đó cùng một lúc. Nhưng có lẽ bạn không nên cố gắng có tất cả 1000 hàng trong một truy vấn. Thay vào đó, hãy chia nó thành các kích thước nhỏ hơn.

Nếu nó vẫn thực sự chậm, thì có thể chỉ là do máy chủ của bạn chậm.

Lưu ý rằng tất nhiên bạn không cần tất cả các khoảng trắng đó trong truy vấn kết hợp, điều đó chỉ đơn giản là để có cái nhìn tổng quan hơn về câu trả lời.




  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 cập nhật hai bảng cùng một lúc

  2. Khám phá MySQL Binlog Server - Ripple

  3. SQLite trong Android:Các phím ngoại và <bảng ràng buộc> dự kiến

  4. Trình kích hoạt MySQL PHP - Làm thế nào để chuyển các biến để kích hoạt?

  5. MySQL:Lỗi khi thả cơ sở dữ liệu (errno 13; errno 17; errno 39)