• 【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在一般量下快速,但量大无优势,没有其他大型数据库优化方案;

             并发和网络方面存在劣势

  • 相关阅读:
    Asp.net Vnext 模块化实现
    Asp.net Vnext 实现IView
    Asp.net Vnext TagHelpers
    MVC 源码调试
    Asp.net Vnext 中间件实现基本验证
    Azure SQL Federation(联合)
    Microsoft Azure 配置负载均衡
    Asp.net Vnext 调试源码
    阅读文献总结笔记9
    阅读文献总结笔记4
  • 原文地址:https://www.cnblogs.com/wygyxrssxz/p/4522103.html
Copyright © 2020-2023  润新知