Tôi không phải là lập trình viên Rust, nhưng các cân nhắc về hiệu suất phải giống nhau bất kể ngôn ngữ ứng dụng.
Đối với trường hợp này, tôi chỉ cần chuẩn bị một truy vấn để CHÈN một hàng, với các tham số cho các cột của một hàng đó. Sau đó, chạy một vòng lặp để thực hiện truy vấn đã chuẩn bị với các giá trị khác nhau cho các tham số. Điều này vượt ra khỏi vòng lặp chi phí phân tích cú pháp SQL, bởi vì điều đó chỉ được thực hiện một lần ở bước chuẩn bị. Việc thực thi truy vấn đã chuẩn bị đó không phân tích cú pháp lại câu lệnh.
Tôi hy vọng đây chính xác là những gì exec_batch()
đang làm. Nhưng nó có thể chuẩn bị lại câu lệnh INSERT mỗi lần trong vòng lặp. Đó sẽ là một cách tiếp cận ngây thơ, nhưng tôi không biết gói Rust có ngây thơ hay không.
Nếu điều này không đủ hiệu quả, bạn nên cân nhắc tải số lượng lớn dữ liệu bằng cách sử dụng TẢI DỮ LIỆU [ĐỊA PHƯƠNG] THÔNG TIN . Điều đó thường nhanh hơn vài lần so với bất kỳ câu lệnh INSERT nào ngay cả với một bộ 1000 bộ giá trị.
Bạn có thể thích bản trình bày của tôi Tải dữ liệu nhanh! trong đó tôi đã so sánh hiệu suất tương đối của các giải pháp nhập dữ liệu khác nhau.