`
tower
  • 浏览: 239649 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

FastDB不同访问模式带来的影响

阅读更多
本文原创作品,如需转载请注明来源,作者:姜涛, towerjt@gmail.com

FastDB中不同的访问DataBase的模式在程序中能体现不一样的结果。
从试验可以知道,不同访问模式主要体现在对表的锁上。
(具体的试验,大家如果觉得有必要,可以自己做一下,用
subsql -access [read-only concurrent-read concurrent-update normal]
可以指定访问数据的模式,然后自己构建相关测试用例进行测试
dbDatabase::dbAllAccess,一旦某个进程使用该模式访问表,如果该进程使用了insert、update、delete等修改数据的操作,
其他访问该库的进程的所有操作(包括open、select)都会被阻塞,直到该操作提交或回滚
dbDatabase::dbConcurrentUpdate,使用该模式访问表,如果某个进程对数据进行修改性的操作,同时另外的进程使用
dbDatabase::dbReadOnly或者dbDatabase::dbConcurrentRead读取数据,不会出现阻塞的情况。
但是dbDatabase::dbReadOnly会把未提交的脏数据读出来;而dbDatabase::dbConcurrentRead则不会
如果多个进程都使用dbDatabase::dbConcurrentUpdate,实际效果和dbDatabase::dbAllAccess一样,一旦一个进程修改了数据,
其他进程所有的操作(包括open、select)都将阻塞,直到该操作提交或回滚
结论:
FastDB没有提供商用数据库的记录锁甚至是页级锁的机制,锁的范围是一个DataBase文件,
所以在日常的使用过程中:
1、仔细分析业务需求,如果你只需要访问数据,那么最好是使用dbDatabase::dbReadOnly或者是
dbDatabase::dbConcurrentRead。这样的话,你的访问操作不会因为这个表被其他进程修改数据而阻塞。
2、如果一个表有不止一个使用者,那么涉及修改数据的进程应该使用dbDatabase::dbConcurrentUpdate,
而只读的进程使用则使用dbDatabase::dbConcurrentRead。
3、如果表只有一个使用者,则可以根据需要,使用dbDatabase::dbAllAccess或者dbDatabase::dbReadOnly
4、所有的数据修改操作,如果有并发要求,一定要及时提交
分享到:
评论

相关推荐

    fastDB 数据库访问 STL式封装

    fastdb 插入器 迭代器 STL式访问 dbdatabase dbcursor dbquery

    fastdb源码 (一个高效率的内存数据库系统)

    FastDB为具有主导读取访问模式的应用程序作了优化。通过消除数据传输的开销和使用高性能的锁工具实现了查询执行的高速度。数据库文件和使用该数据库的每一个应用程序占用的虚拟内存空间相映射。所以查询在应用程序的...

    FastDB和SQLite的性能测试。

    详细介绍在这里: http://blog.csdn.net/RookieRock/archive/2010/12/06/6057338.aspx

    可以使用的fastdb用例

    可以使用的fastdb用例,方便学习,包括fastdb的安装,和一个简单用例,包括一些资料说明。 fastdb个人使用心得.doc fastdb-361 FastDb 使用说明.txt FastDB.doc FastDB_应用开发指南.docx FastDB+很难得的一篇分析+....

    内存数据库 fastdb源码

    内存数据库 fastdb 速度很快将近磁盘数据的几十倍

    FASTDB应用开发指南

    FASTDB应用开发指南,简单实用,随便看看吧

    fastdb-375源码

    fastdb-375源码,VC6编译通过,subsql也可使用

    fastdb 3.58开发包

    开源内存数据库fastdb源代码,欢迎下载啊。

    fastdb 2.55 源代码

    fastdb 2.55版本源代码,方便大家使用。

    fastdb心得

    fastdb心得 对FastDB进行的几点说明: 1、 功能归纳 2、 工作原理 3、 部署方法 4、 接口调用方法

    FastDb内存数据库调用源码例子-fastdb.dll(delphi)

    fastdb.dll标准DLLapi, 346k,比较迷你很值的学习。里面有好几个工程,几个模块,外国网站上找的。在中国想找几个简单点的FASTDB例子都难。好多都要编绎,结果又失败。还有更好的欢迎联系我一起学习(Q:527524938)...

    fastdb-arm.tar.gz

    fastdb的代码无法在tx2或者说arm架构的开发板上直接使用,编译也无法通过,我这里是在tx2上编译通过的版本,生成的libfastdb.so在fastdb的src/下的隐藏目录.libs下,生成的4个可执行文件就在src下。请参考我的csdn...

    fastdb.rar

    fastdb数据库相关资料

    fastdb,开源的内存数据库

    包含fastdb的源文件,libjnicli.so的生成方法,源文件只有windows上面的jnicli.dll,需要手动安装并且编译生成linux上面的动态链接库

    FastDB 很难得的一篇分析

    FastDB 很难得的一篇分析 详细介绍此数据库的使用。

    FastDB Browser

    The FastDB browser is a frontend tool to monitor content and structure of FastDB databases. FastDB is a Main Memory Object Relational Database Management System (MMORDBMS) written by Konstantin A. ...

    fastdb中文

    fastdb中文描述,需要了解实时库的朋友可以看看!

    fastDB Csharp实例

    c#接口提供了对fastdb的支持,封装了很多函数,方便使用

    FastDB 高效率的内存数据库系统.doc

    FastDB详细介绍,涉及思想,架构,用例,以及相关用法和函数的解释。

    VS2010可以直接编译的FastDB

    可以编译出Unicode版本的,自己弄了一下,是3.65版的。 直接开fastdb.sln就可以了。

Global site tag (gtag.js) - Google Analytics