我读了这个:Importing a CSV file into a sqlite3 database table using Python
似乎每个人都建议使用逐行读取,而不是使用SQLite的bulk .import。但是,如果您有数百万行的数据,这将使插入速度非常慢。还有其他方法可以避免这种情况吗?
更新:我尝试下面的代码逐行插入,但是速度不如我预期的那样。反正有改进的地方吗
for logFileName in allLogFilesName:
logFile = codecs.open(logFileName, 'rb', encoding='utf-8')
for logLine in logFile:
logLineAsList = logLine.split('\t')
output.execute('''INSERT INTO log VALUES(?, ?, ?, ?)''', logLineAsList)
logFile.close()
connection.commit()
connection.close()
最佳答案
使用生成器表达式将您的数据即时划分为多个块,在事务内进行插入。这是sqlite optimization FAQ的报价:
Here's您的代码看起来如何。
同样,sqlite具有import CSV files的能力。
关于python - 使用Python批量将大量数据插入SQLite,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18219779/