Vấn đề của bạn không phải ở khối lượng dữ liệu per se , đó là một số bộ giá trị của bạn chứa numpy.int64
các giá trị không thể được sử dụng trực tiếp làm giá trị tham số cho câu lệnh SQL của bạn. Ví dụ,
a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, a[1], 1, 1, 1)
crsr.execute(sql, params)
sẽ ném
vì giá trị tham số thứ ba là numpy.int64
phần tử từ mảng numpy của bạn a
. Chuyển đổi giá trị đó với int()
sẽ tránh được vấn đề:
a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, int(a[1]), 1, 1, 1)
crsr.execute(sql, params)
Nhân tiện, lý do mà
sql = 'SET GLOBAL max_allowed_packet=50*1024*1024'
cursor.execute(sql)
không hoạt động là max_allowed_packet
là một cài đặt MySQL không có bất kỳ ý nghĩa nào đối với Microsoft SQL Server.