关于 sqlite3 有很多的介绍文章,这里就不提了。
说一下 memory vfs for sqlite3 可能用在什么场景下。
一个常见的场景是用户地址本功能。地址本应用中,把一个用户的所有联系人列出来,是最常用的操作,增加/删除/修改 的操作相对显的比较少。
常规的做法可能是把多个用户的数据保存在一个表中(比如用 mysql),至少包含两个字段 ( username, address ) ,username 指明这条记录所属的用户,address 是用户的一个联系人。一般都会对 username 建索引,这样列举一个用户的所有联系人,速度通常还是很快的。不过如果请求数逐渐增多的时候,数据库就会开始显的比较吃力了。
设想另外一种做法,为每个用户建一个 database ,当然不是用 mysql ,而是用 sqlite3 。然后把 sqlite3 的内容保存在 dbm 这类数据库中(比如最近很热门的 tokyo cabinet)。即在 dbm 数据库中保存 (username,buffer)。这个 buffer 就是 sqlite3 database 序列化之后的内容,一般是保存到一个单独的文件中的。现在有了 memvfs ,那么就可以先把这个 buffer 保存到内存中,然后就可以把 buffer 保存到 dbm 数据库了。如果 dbm 数据库足够快,那么整体的速度就会比用前一种方案好。
另外,用 dbm 保存单用户的数据,这个很早之前也有人这样做了。不过以前是直接保存一些自定义的数据结构进去,这样通常扩展性不是很好,而且接口也不再是 sql 了。现在如果把 sqlite3 和 dbm 用这种方式集成起来,就可以保证数据格式的扩展性,并且还可以直接用 sql 。
下载地址:
http://spserver.googlecode.com/files/spmemvfs-0.1.src.tar.gz
分享到:
相关推荐
在Java下连接SQLite数据库 一、下载SQLite数据库的JDBC:http://www.zentus.com/sqlitejdbc/ 二、将下载到的包解压后得到jar包放到%JAVA_HOME%\lib下,并且将其添加到ClassPath系统环境变量中。一定要保证在类路径...
Delphi使用SQLite3,包括本地数据库和内存数据库,本地数据库加载到内存,内存数据库备份到本地,使用sqlite simple delphi包装类。
这是我最近做的C/S结构sqlite数据库管理器V1.2
源码调用sqlite3.dll接口API实现SQLite3数据库操作。Tags:sqlite3。
编译好的sqlcipher nw版本0.48.0,32位
Qt中SQlite数据库加密SqliteCipher 操作实例,打开多个数据库,附着数据库跨库查询, 对应说明:https://blog.csdn.net/woguanni/article/details/120524602
SQLiteSpy_1.8.5 数据库查看UI程序 :查看SQLIte3 数据库的UI小程序 _SQLite权威指南.pdf SQLite学习手册_中文全本.pdf CppSQLite3U国外牛人的sqlite封装.zip C++封装类使用方法:...
易语言sqlite3_static.lib支持库中文名为易语言Sqlite数据库支持库,Sqlite数据库是一个小型关系型文件数据库;跨平台;支持SQL语句、事务、触发器、视图;速度相当快;小巧且不依赖任何额外的驱动程序。Sqlite...
Sqlite3 各位可以自己去下载,官网是:http://www.sqlite.org/。界面我参照了网上了某个管理软件(因为换了电脑不清楚具体是什么名字了,如果原作者发现,还请站内联系我,)。...Tags:Sqlite3数据库。
用VC++6.0开发的基于对话框的应用...目录下有一个名为student.db的文件,是SQLite数据库文件。这个代码说明了怎么用C/C++连接SQLite数据库文件及进行基本的操作,比如插入新的数据,查询数据。对学习SQLite数据库有帮助
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。...
同时还阔以解决System.DllNotFoundException: 无法加载 DLL“SQLite.Interop.DLL”问题。 判断32位进程还是64位进程可以用 Environment.Is64BitProcess 资源全部来自官网...
介绍node-sqlite3 API,并对API初步封装,方便开发人员调用,实现业务逻辑。
通过相关配置,删除数据后,实现SQLite3设置数据库文件自动收缩
内涵Mono.Data.Sqlite.dll以及System.Data.dll
前情提要:Android 数据库(SQLite) 【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练)】 https://blog.csdn.net/weixin_44949135/article/details/105955663 Android ...
C、根据事务日志刷新进程,异步地将所述日志缓存区中的所述事务日志中信息,按照所述内存数据库和文件数据库数据表的对应关系,同步到文件数据库中。本发明提供一种内存数据库到文件数据库的数据同步方法及系统,在不...
Mysql/Sqlserver/Oracle/Sqlite多种数据库连接可视化的集成工具,体积小而功能强大的NavicatePremium,支持所有DBA。