加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

行使SQLAlchemy将记录更快地插入表中

发布时间:2021-05-25 06:43:55 所属栏目:编程 来源:网络整理
导读:我正在理会日记并行使SQLAlchemy和Python将其插入MySQL或SQLite.此刻我打开了与DB的毗连,当我遍历每一行时,我在理会后插入它(这只是一个大表,此刻对SQL不是很有履历).然后我在轮回完成时封锁毗连.汇总代码是: log_table = schema.Table('log_table',metadat

我正在理会日记并行使SQLAlchemy和Python将其插入MySQL或SQLite.此刻我打开了与DB的毗连,当我遍历每一行时,我在理会后插入它(这只是一个大表,此刻对SQL不是很有履历).然后我在轮回完成时封锁毗连.汇总代码是:

log_table = schema.Table('log_table',metadata,schema.Column('id',types.Integer,primary_key=True),schema.Column('time',types.DateTime),schema.Column('ip',types.String(length=15))
....
engine = create_engine(...)
metadata.bind = engine
connection = engine.connect()
....
for line in file_to_parse:
    m = line_regex.match(line)
    if m:
        fields = m.groupdict()
        pythonified = pythoninfy_log(fields) #Turn them into ints,datatimes,etc
        if use_sql:
            ins = log_table.insert(values=pythonified)
            connection.execute(ins)
            parsed += 1

我的两个题目是:

>有没有步伐加速这个根基框架内的插入?大概有一个插入行列和一些插入线程,某种批量插入等?
>当我行使MySQL时,约莫120万笔记录的插入时刻为15分钟.行使SQLite,插入时刻是一个多小时. db引擎之间的时刻差别是否正确,可能它是否意味着我做了一些很是错误的工作? 最佳谜底 你应该实行的最重要的工作是环绕多个插入安排一个事宜,由于它是将数据库提交到磁盘,这必要很长时刻.您必要确定批处理赏罚级别,但原始的第一次实行是环绕整个批次包装事宜.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读