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

Tối ưu hóa chèn MySQL để xử lý luồng dữ liệu

Nếu dữ liệu của bạn không cần phải đi vào cơ sở dữ liệu ngay lập tức, bạn có thể lưu dữ liệu chèn vào bộ nhớ cache ở đâu đó, sau đó phát hành một câu lệnh chèn lớn hơn, ví dụ:

chèn vào tên_bảng (x, y, z) các giá trị (x1, y1, z1), (x2, y2, z2), ... (xN, yN, zN) khi cập nhật trùng lặp ...;

Để rõ ràng hơn, tôi sẽ duy trì một danh sách các phụ trang đang chờ xử lý. Trong trường hợp này là danh sách các bộ ba (x, z, y). Sau đó, khi danh sách của bạn vượt quá một số ngưỡng (N), bạn tạo câu lệnh chèn và phát hành nó.

Tôi không có số liệu thời gian chính xác cho bạn, nhưng hiệu suất này đã tăng lên khoảng 10 lần khi so sánh với việc chèn từng hàng riêng lẻ.

Tôi cũng chưa chơi với giá trị của N, nhưng tôi thấy 1000 hoạt động tốt. Tôi hy vọng giá trị tối ưu bị ảnh hưởng bởi cài đặt phần cứng và cơ sở dữ liệu.

Hy vọng điều này sẽ hữu ích (tôi cũng đang sử dụng MyIsam).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lưu trữ số thẻ tín dụng trong PHIÊN - các cách giải quyết?

  2. Thêm Tiền tố để tự động tăng dần trong mysql db

  3. count (*) và count (column_name), sự khác biệt là gì?

  4. Nhiều nơi trong

  5. Tạo mảng cho PDO từ các biến được truyền từ jquery