Vì vậy, tôi có một kịch bản python mà đi qua khoảng 350.000 đối tượng dữ liệu, và tùy thuộc vào một số xét nghiệm, nó cần phải cập nhật một hàng đại diện cho mỗi một trong những đối tượng trong một db MySQl. Tôi cũng đang sử dụng pymysql như tôi đã có ít rắc rối nhất với nó đặc biệt là khi gửi qua các truy vấn chọn lớn (chọn câu lệnh với mệnh đề where column IN (....)
có thể chứa hơn 100.000 giá trị).PyMySQL cập nhật khác nhau trong một truy vấn?
Vì mỗi cập nhật cho mỗi hàng có thể khác nhau, mỗi câu lệnh cập nhật khác nhau. Ví dụ: đối với một hàng, chúng tôi có thể muốn cập nhật first_name
nhưng đối với hàng khác, chúng tôi muốn để lại first_name
không bị ảnh hưởng và chúng tôi muốn cập nhật last_name
.
Đây là lý do tại sao tôi không muốn sử dụng phương thức cursor.executemany()
trong một tuyên bố cập nhật chung và sau đó bạn cung cấp giá trị như tôi đã đề cập, mỗi bản cập nhật khác nhau làm việc cho trường hợp của tôi. Tôi cũng không muốn gửi hơn 350.000 báo cáo cập nhật riêng lẻ qua dây. Có anyway tôi có thể gói tất cả các báo cáo cập nhật của tôi với nhau và gửi chúng cùng một lúc?
Tôi đã thử tất cả chúng trong một truy vấn và sử dụng phương thức cursor.execute()
nhưng dường như không cập nhật tất cả các hàng.
Có bao nhiêu bản cập nhật khác nhau? tức là bạn đang cập nhật bao nhiêu bảng khác nhau với ba bảng giá trị triệu đô la đó? và có bao nhiêu cột khác nhau trên các bảng đó? tức là nó chỉ là một vài câu lệnh cập nhật khác nhau? –
Có các tùy chọn hữu ích nào khác ngoài truy vấn 'một truy vấn' hoặc 'một phần ba triệu' không? Điều gì sẽ xảy ra nếu dữ liệu được tải vào một 'bảng làm việc' trong cơ sở dữ liệu và thao tác nó từ đó? Cơ sở dữ liệu như chơi với dữ liệu trong bảng? –
@RyanVincent tất cả chỉ cập nhật cùng một bảng, tuy nhiên bảng có 12 cột và mỗi câu lệnh cập nhật có thể cập nhật bất kỳ kết hợp cột nào khác cùng một lúc, từ 1 cột đến 10 cột. –