आप इसे हासिल करने के लिए कुछ चीजें कर सकते हैं।
एसक्यूएल को लिखते समय एक अतिरिक्त तर्क का उपयोग करना एक तरीका है।
df.to_sql(method = 'multi')
इसके अनुसार दस्तावेज़ीकरण , 'मल्टी' को मेथड तर्क में पास करने से आप बल्क इंसर्ट कर सकते हैं।
एक अन्य समाधान है कि मल्टीप्रोसेसिंग.डमी का उपयोग करके एक कस्टम इंसर्ट फंक्शन का निर्माण किया जाए। यहाँ दस्तावेज़ीकरण का लिंक दिया गया है:https://docs.python.org/2/library/multiprocessing.html#module-multiprocessing.dummy
import math
from multiprocessing.dummy import Pool as ThreadPool
...
def insert_df(df, *args, **kwargs):
nworkers = 4 # number of workers that executes insert in parallel fashion
chunk = math.floor(df.shape[0] / nworkers) # number of chunks
chunks = [(chunk * i, (chunk * i) + chunk) for i in range(nworkers)]
chunks.append((chunk * nworkers, df.shape[0]))
pool = ThreadPool(nworkers)
def worker(chunk):
i, j = chunk
df.iloc[i:j, :].to_sql(*args, **kwargs)
pool.map(worker, chunks)
pool.close()
pool.join()
....
insert_df(df, "foo_bar", engine, if_exists='append')
दूसरी विधि https://stackoverflow.com/a/42164138/5614132 पर सुझाई गई थी। ।