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.