擅长:python、mysql、java
<p>为了实现批处理,我执行了以下操作:</p>
<pre><code>inserts = []
insert_every = 1000
for line in file_to_parse:
m = line_regex.match(line)
if m:
fields = m.groupdict()
if use_sql: #This uses Globals, Ick :-/
inserts.append(pythonified)
if (parsed % insert_every) == 0:
connection.execute(log_table.insert(), inserts)
inserts = []
parsed += 1
if use_sql:
if len(inserts) > 0:
connection.execute(log_table.insert(), inserts)
</code></pre>
<p>这不使用事务,但它以一种非常懒惰的方式允许我使用一个较小的示例将insert/parse阶段从大约13秒变为大约2秒。我将使用完整的示例了解mysql和sqlite之间的区别。在</p>
<p>我找到了这个<a href="http://www.sqlalchemy.org/docs/sqlexpression.html#executing-multiple-statements" rel="nofollow noreferrer">here</a>的基本信息。在</p>
<p><strong>结果:</strong><br/>
引擎:未分组插入以分钟为单位的时间:分组插入时间(以分钟为单位)<br/>
Sqlite:61:8<br/>
MySql:15个:2.5</p>
<p>我没有在mysql和sqlite之间刷新我的缓存,它们可能有源文本文件,但我不认为这是一个相对显著的区别。在</p>