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

             并发和网络方面存在劣势

  • 相关阅读:
    CentOS查看CPU信息、位数、多核信息
    Linux常用命令大全
    chmod命令详细用法
    tar命令的详细解释
    yum和rpm命令详解
    LeetCode 241. Different Ways to Add Parentheses
    LeetCode 139. Word Break
    LeetCode 201. Bitwise AND of Numbers Range
    LeetCode 486. Predict the Winner
    LeetCode 17. Letter Combinations of a Phone Number
  • 原文地址:https://www.cnblogs.com/wygyxrssxz/p/4522103.html
Copyright © 2011-2022 走看看