【发布时间】:2017-04-23 01:29:44
【问题描述】:
我目前无法在合适的时间内大规模更新 SQLite 数据库记录。
我有一个包含大约 70,000 条记录的小型数据库,我有一些办公室人员使用 Navicat 过滤记录并进行一些批量编辑以提交。当尝试对一个字段中的大量记录执行 UPDATE 时,一切都变得一团糟,当我查看原始 SQL 查询时,我可以看到程序正在使用 UPDATE ..SET.. WHERE 来执行操作。
我的问题是我可以做些什么来帮助这个查询运行得更快?我在用于匹配要更新的记录的列上有一个 SQLite 自动索引,但是我已经阅读和搜索了所有内容,但除了我已有的解决方案之外,还没有看到任何类型的解决方案。更新 20,000 条记录中的一个字段实际上需要将近 3 个小时……无论是否使用 Navicat。整个数据库只有 30mb,所以我一定是做错了。
所有其他数据库操作都运行良好且快速,不确定出了什么问题并寻求 SQLite 兽医的指导。
【问题讨论】:
-
该 UPDATE 是否使用子查询?
-
我可以从原始输出中看到的一个例子是:UPDATE table SET column=1.0 WHERE (column_value='value') column_value is a SQLite auto indexed column if that 这很重要...跨度>
标签: database performance sqlite