远远地  

conn=sqlite3.connect('urls.db')

conn=sqlite3 connect ":memory:" )

SQLite不仅可以把数据库 放在硬盘上,还可以放在内存中(sqlite3_open(":memory:", &db)),经测试,同样条件下数据库放在内存中比放在硬盘上插入记录速度快差不多3倍。但数据库放在内存中时有如下缺陷:

1、断电或程序崩溃后数据库就会消失,你需要定期Attach到硬盘上备份;

2、在内存中的数据库不能被别的进程访问(因为没名字,以后可能支持),即使在多线程下,也得使用同一句柄;

3、不支持像在硬盘上的读写互斥处理,自己加锁吧。

  看来,追求速度要付出代价啊!

 

 

 

有没有什么方法折衷一下,就是 conn=sqlite3 connect ":memory:" )使用完之后,再保存在本地呢?

 

 

记录你执行过的sql,在使用完之后再connect("memory.db"),将sql重新执行一次,就可以保存了 也不太好

posted on   远远地  阅读(2878)  评论(0编辑  收藏  举报
编辑推荐:
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 数据并发安全校验处理工具类
 
点击右上角即可分享
微信分享提示