SQLite的查询优化】的更多相关文章

SQLite是个典型的嵌入式DBMS,它有很多优点,它是轻量级的,在编译之后很小,其中一个原因就是在查询优化方面比较简单,它只是运用索引机制来进行优化的,经过对SQLite的查询优化的分析以及对源代码的研究,我将SQLite的查询优总结如下: 一.影响查询性能的因素: 1. 对表中行的检索数目,越小越好 2. 排序与否. 3. 是否要对一个索引. 4. 查询语句的形式 二.几个查询优化的转换 1. 对于单个表的单个列而言,如果都有形如T.C=expr这样的子句,并且都是用OR操作符连接起来,形如…
Sqlite是轻量级的,在编译之后很小,其中一个原因就是在查询优化方面比较简单,它只是运用索引机制来进行优化的,经过对SQLite的查询优化的分析以及对源代码的研究,我将SQLite的查询优总结如下: 一.影响查询性能的因素: 1. 对表中行的检索数目,越小越好 2. 排序与否. 3. 是否要对一个索引. 4. 查询语句的形式 二.几个查询优化的转换 1. 对于单个表的单个列而言,如果都有形如T.C=expr这样的子句,并且都是用OR操作符连接起来,形如: x = expr1 OR expr2…
一.7种临时文件    SQLite中,一个数据库由单个磁盘文件构成,简化了SQLite的使用,因为移动或备份数据库只要拷贝单个文件即可.这也使得SQLite适合用作应用程序文件格式.但是,当在单个文件中存储一个数据库时,SQLite会在处理数据库的过程中使用许多临时文件.    SQLite目前使用7种不同类型的临时文件:    * 回滚日志(Rollback journals)    * 主日志(Master journals)    * SQL语句日志(Statement journals…
前言 查询处理及优化是关系数据库得以流行的根本原因,也是关系数据库系统最核心的技术之一.SQLite的查询处理模块很精致,而且很容易移植到不支持SQL的存储引擎(Berkeley DB最新的版本已经将其完整的移植过来). 查询处理一般来说,包括词法分析.语法分析.语义分析.生成执行计划以及执行计划几个部分.SQLite的词法分析器是手工写的(比较简单),语法分析器由Lemon生成,语义分析主要是进行语义方面的一些检查,比如table是否存在等.而执行计划的生成及执行是最核心的两部分,也是相对比较…
前言 SQLite作为嵌入式数据库,通常针对的应用的数据量相对于DBMS的数据量小.所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树的形式来组织这些页面.而对于大型的数据库管理系统,比如Oracle,或者DM ,存储模型要复杂得多.就拿Oracle来说吧,它对数据文件不仅从物理上进行分块,而且从逻辑上进行分段,盘区和页的一个层次划分DM也一样.不管怎么说,数据库文件要存储大量的数据,为了更好管理,查询和操作数据文件,DBMS不得不从物理上.逻…
前言 事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复等等.在数据库中使用事务可以保证数据的统一和完整性,同时也可以提高效率.假设需要在一张表内一次插入20个人的名字才算是操作成功,那么在不使用事务的情况下,如果插入过程中出现异常或者在插入过程中出现一些其他数据库操作的话,就很有可能影响了操作的完整性.所以事务可以很好地解决这样的情况,首先事务是可以把启动事务过程中的所有操作视为事务的过程.等到所有过程执行完毕后,我们可以根据操作是否成功来决定事务是否进行提…
先从全局的角度把握SQLite内核各个模块的设计和功能.SQLite采用了层次化.模块化的设计,而这些使得它的可扩展性和可移植性非常强.而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对于理解通用DBMS具有重要意义.SQLite的内核总的来说分为三个部分,虚拟机(Virtual Machine).Back-end(后端)和compiler(编译器). 1.虚拟机(Virtual Machine)VDBE是SQLite的核心,它的上层模块和下层模块本质上都是为它服务的.它的实现位于…
该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法  :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解析大部分标准SQL语言.但它也省去了一些特性并且加入了一些自己的新特性.这篇文档就是试图描述那些SQLite支持/不支持的SQL语法的.查看关键字列表. 如下语法表格中,纯文本用蓝色粗体显示.非终极符号为斜体红色.作为语法一部分的运算符用黑色Roman字体表示. 这篇文档只是对SQLite实现的SQ…
写在前面:个人认为pager层是SQLite实现最为核心的模块,它具有四大功能:I/O,页面缓存,并发控制和日志恢复.而这些功能不仅是上层Btree的基础,而且对系统的性能和健壮性有关至关重要的影响.其中并发控制和日志恢复是事务处理实现的基础.SQLite并发控制的机制非常简单——封锁机制:别外,它的查询优化机制也非常简单——基于索引.这一切使得整个SQLite的实现变得简单,SQLite变得很小,运行速度也非常快,所以,特别适合嵌入式设备.好了,接下来讨论事务的剩余部分.6.修改位于用户进程空…
写在前面:本节是前一节内容的后续部分,这两节都是从全局的角度SQLite内核各个模块的设计和功能.只有从全局上把握SQLite,才会更容易的理解SQLite的实现.SQLite采用了层次化,模块化的设计,而这些使得它的可扩展性和可移植性非常强.而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对于理解通用DBMS具有重要意义.好了,下面我们开始讨论SQLite剩余的两部分:Back-end(后端)和compiler(编译器). 2.B-tree和PagerB-Tree使得VDBE可以…