精易论坛

标题: 求精通sqlite大佬帮忙看看 [打印本页]

作者: 易小超    时间: 2024-4-8 22:22
标题: 求精通sqlite大佬帮忙看看
本帖最后由 易小超 于 2024-4-8 23:03 编辑

我这样写,文件数量少的时候速度很快,可超过10w左右,就变得很慢
我现在60w文件,差不多要写入3天左右,有没有大佬帮忙看下怎么优化下

  
如果 (sqlite.打开 (取特定目录 (3)“\” + 编辑框名字.内容 + “.db”, ))
如果 (sqlite.表是否存在 (“lin”))
如果真 (sql.打开 (“lin”, sqlite))
文件_枚举 (编辑框地址.内容 + “/”, “*.txt”, 文本数组, 真, 假, )  ' C:\012.txt
数量 = 取数组成员数 (文本数组)
如果真 (数量 > 9)
t1 = 取启动时间 ()
计次循环首 (10, i)
sql.插入 ()  ' sql.写字段值 (“path”, 文本数组 [1])
sql.写字段值 (“path”, 编码_UTF8编码 (文本数组 [1], ))
sql.提交 ()
计次循环尾 ()
t2 = 取启动时间 ()
间隔 = t2 - t1
信息 = “读取到共计文本数量:”到文本 (数量)#换行符#换行符
信息 = 信息 + “单个耗时(毫秒):”到文本 (间隔 ÷ 10)#换行符
信息 = 信息 + “预计耗时(分钟):”到文本 (间隔 × 数量 ÷ 10 ÷ 60000)#换行符#换行符
信息 = 信息 + “是否继续进行,请选择”
如果真 (信息框 (信息, 4, , ) = 6)
sqlite.关闭 ()
按钮_读取.禁止 = 假
返回 ()


计次循环首 (数量 - 10, i)
sql.插入 ()
sql.写字段值 (“path”, 编码_UTF8编码 (文本数组 [i + 10], ))
sql.提交 ()
计次循环尾 ()
信息框 (“读取结束!!!”, 0, , )

信息框 (“不可以插入”, 0, , )

信息框 (“打开失败”, 0, , )
sqlite.关闭 ()
按钮_读取.禁止 = 假


i支持库列表   支持库注释   
SqliteDBSqlite数据库支持库
shell操作系统界面功能支持库

例子.e

861.94 KB, 下载次数: 13, 下载积分: 精币 -2 枚


作者: 钥匙key    时间: 2024-4-8 22:40
调用显性事务.不要用原装.自己写SQL
作者: 无痕雨    时间: 2024-4-8 22:45
不知道你插入的数据是啥样的 60w要插入3天有点久了   别用支持库的 自己写sql语句   换论坛上那些成品模块的试试看

db.png (74.42 KB, 下载次数: 9)

db.png

作者: 人杰啊    时间: 2024-4-8 22:56
没下载 盲猜:时间耗费在文本处理  或者每条数据都插入一次

可以减少文本处理或者把多次写为同一条sql语句里 多次插入操作改为1次
作者: 燕子1907535456    时间: 2024-4-25 19:03
用sql直接调用试试,弄个多线程,分割写入




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4