加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite数据库模型介绍

发布时间:2020-12-12 20:34:40 所属栏目:百科 来源:网络整理
导读:sqlite是一种单文档的数据库,不需要服务器的支持,可以嵌入到程序中。sqlite提供基本的C API,支持多种语言扩展Perl、 Python和Java等,支持多平台Windows、Mac、POSIX接口的平台。此外,sqlite是开源、自由和免费,可自由地用于商业用途。 sqlite支持最大

sqlite是一种单文档的数据库,不需要服务器的支持,可以嵌入到程序中。sqlite提供基本的C API,支持多种语言扩展Perl、Python和Java等,支持多平台Windows、Mac、POSIX接口的平台。此外,sqlite是开源、自由和免费,可自由地用于商业用途。




sqlite支持最大数据库大小2TB,但是,其更适用于几十GB;其中,100G大小的数据库在进行事务操作时,需要月25MB的内存;

sqlite默认是多线程安全的;

sqlite默认是只增大,不减小的;这是为了减低page cache的碎片化;需要主动运行"vacuum",在创建数据库时,可以设定自动清空模式"pragma auto_cacuum=1";

sqlite配置:默认的page size = 1KB,max size=2000;对于windows系统,可以"pragma page_size=4096,提高大数据存取性能;而且,每个connection对应一个b-tree和page cache;

c core api:基本API,sqlite3_prepare(编译),sqlite3_step(执行),sqlite3_finalize(清空),还有一些辅助函数sqlite3_bind_xxx,sqlite3_collumn_xxx;封装的API,sqlite3_exec,进一步封装sqlite3_get_table;




c extent api:各种用户自定义函数,sqlite3_create_function,sqlite3_create_aggregate,sqlite3_create_collation;

sqlite每个connection对应一种状态: unlocked -> pending -> shared -> reserved -> pending -> exclusive;其中,每个数据库只能对应一个pending、reserved和exclusive状态,它们对应写入操作;而shared对应读取操作;

用户需要处理多个线程、多个连接之间的存取,导致数据库锁死和忙的问题(sqlite_busy);相应的事务注册函数,sqlite3_busy_handler,sqlite3_busy_timeout;sqlite3_commit_hook,sqlite3_update_hook,sqlite3_set_authorize,log_sql;




sqlite数据库有两种模式: shared cache mode和isolation mode;其中,shared cache mode 对应多个客户线程与一个服务器线程交互,服务器线程可以对不同的表同时进行读写操作;而isolation mode则是标准的事务模式。


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读