gpt4 book ai didi

sqlite - SQLite更新ONE记录非常(相对)缓慢

转载 作者:行者123 更新时间:2023-12-03 18:21:37 34 4
gpt4 key购买 nike

在插入/更新许多行时,我知道SQLite的“问题”,但事实并非如此。

我正在更新包含约250条记录的表中的ONE一行(由PK索引)中的ONE字段。查询通常需要200毫秒左右的时间。听起来很少,但很大。

为什么1个非常简单的UPDATE查询需要200毫秒?所有的阅读都在快速燃烧。

我试过了:


BEGINCOMMIT-不变,因为它只有1条语句
PRAGMA journal_mode=PERSIST-没有变化,显然不是磁盘io的问题吗?
删除UPDATE语句-有时效果很好!但是它不是很持久


与同一系统上的MySQL进行比较:在非常相似的数据库中为0.6ms。

我不需要交易安全性(ACID?)或任何您所说的那样。如果在此查询期间计算机崩溃,则可以丢失所有更改。 MySQL(InnoDB)为此提供了一个选项:innodb_flush_log_at_trx_commit。 SQLite是否有类似的东西?

如果这很重要,我正在使用sqlite-3.7.9。

最佳答案

是的,SQLite具有MySQL的innodb_flush_log_at_trx_commit之类的选项:

PRAGMA synchronous=OFF


它就像一个魅力。否ACID,是速度。由于某些不可思议的原因, UPDATE现在耗时<1ms。

journal_mode也有改进:

PRAGMA journal_mode=MEMORY
or
PRAGMA journal_mode=OFF


两者都非常快,而不是酸性。回滚不是问题,因此在这种情况下两者都很好。 OFF是最快的,因为它根本不会创建日记(?)。

关于sqlite - SQLite更新ONE记录非常(相对)缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21590824/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com