【sqlite权威指南】笔记2 sqlite介绍

sqlite是嵌入式数据库,没有独立运行的进程,与所服务的应用程序在应用程序进程空间内共生共存,作为托管的一部分。

从外部观察,只有一个数据库引擎。

 数据库服务器和客户端运行在同一进程中,不需要网络配置或管理,即不用担心防火墙或者地址解析,不用浪费时间管理复杂的授权和权限。

 

sqlite嵌入到主程序中,每个进程有独立的数据库服务器,但是可以操作同一数据库文件,因为sqlite利用OS完成数据的同步和加锁

 

 

 

 

编译器处理sql语句,语法分析器采用lemmon,其采用了特殊的预防措施防止内存泄露,并且性能较高。

代码生成器将语法书翻译成sqlite专用的汇编代码,最终交给虚拟机处理。

虚拟机(virtual database engine,VDBE):sqlite过程及产生VDBE,执行VDBE

后端

  • B-Tree处理页,职责是排序。维护多个页之间错综复杂的关系
  • Pager帮助B-tree管理页面,负责传输,从磁盘读入或写入,这里引用缓存避免频繁读写磁盘
  • OS接口为sqlite其他模块提供屏蔽差异的抽象层,最终其他模块看到一个一致锁文件处理接口

 

sqlite特性

  • 零配置   不需要DBA,只需要较少内存就可运行
  • 移植性   不限软件,不限数据库
  • 紧凑性   1个头文件、1个库、关系型不需要外部数据库的服务器  0.5MB
  • 简单性   模块化,独立的
  • 灵活性   关系型数据库前端和紧凑的B-tree后端
  • 自由授权 源码在公共域中
  • 可靠性   
  • 易用性     动态类型、冲突解决等
  • 性能和限制 

         B-Tree在一般量下快速,但量大无优势,没有其他大型数据库优化方案;

         并发和网络方面存在劣势

 

posted @ 2015-05-22 13:29  自信乐观  阅读(139)  评论(0编辑  收藏  举报