1。简介:
SQLite是目前最流行的
开源嵌入式数据库,与许多其他嵌入式存储引擎相比(NoSQL),如BerkeleyDB、MemBASE,SQLite的一些基本特征有关系数据库的良好
支持,如标准的SQL语法,业务数据表和索引等。事实上,尽管有许多基本关系数据库SQLite的特点,他们之间没有可比性,因为不同的应用场景。在这里,我们将列出了SQLite的主要特点:
1)。
管理简单,甚至可以考虑没有管理。
2)。它易于
操作,生成SQLite数据库
文件可以无缝移植到各个平台。
3)。它可以以多种形式嵌入到其他
应用程序中,如静态库、动态库等。
4)。易于
维护。
综上所述,SQLite的主要优点是灵活,
速度快,可靠性高。SQLite设计者为了实现这一
目标,
功能做了很多关键的选择,同时也失去了一些关键的关系数据库管理
系统支持的功能,如高并发,细粒度的访问
控制(如行级锁),内置功能丰富的存储过程和SQL语句的复杂性。这是因为这些功能的牺牲是简单的,它简单、高效、可靠的。
二,SQLite的主要优点:
1。文件格式的一致性:
在SQLite的官方文件,这说明我们不应该比SQLite Oracle和PostgreSQL,但看到它作为fopen和fwrite。与我们自定义的
数据文件格式相比,SQLite不仅提供了很好的可移植性,如大、小端32 / 64平台相关的问题,但也提供了数据访问效率高,如基于某些信息建立索引,从而提高这类访问或
排序数据的
性能,交易功能提供的SQLite也,在普通文件的操作不会有效的保证。
2。嵌入式或移动设备的应用:
因为SQLite占用资源少,不需要任何管理开销时,所以对于PDA、
智能手机和其他移动设备,SQLite的优势是毋庸置疑的。
三.内部数据库:
在某些应用场景中,我们需要对插入数据库
服务器的数据进行数据过滤或数据
清理,以确保数据库服务器中数据的有效性。相反,它需要特殊的计算与少量的历史数据,然后确定当前数据是通过计算结果的合法性。在这个应用中,我们可以使用SQLite来缓冲这部分历史数据,也有对SQLite的简单场景,统计数据上。例如,我们正在
运行的实时数据服务程序,我们可能需要每10秒的数据汇总,统计数据每小时的形成,统计数据可以大大减少在
用户查询的数据量,从而显著提高前端程序的查询效率。在这个应用中,我们可以减缓到SQLite 1小时采集数据,当整点到达后,计算缓存数据后清空数据。
4。数据分析:
我们可以充分利用SQLite提供的SQL功能,完成简单的数据统计和分析的功能。这是无与伦比的CSV文件。
5。产品演示与测试:
当我们需要给演示给我们的客户,我们可以使用SQLite作为后台数据库。与其他关系数据库相比,使用SQLite减少很多系统的部署time.sqlite也可以为一个产品的功能测试也起同样的
作用。
三。与关系型数据库,SQLite的一些缺点:
1。c/s应用程序:
如果你有多个客户端需要访问数据库中的数据在同一时间,特别是,它们之间的业务数据需要通过
网络传输完成。在这种
情况下,不应选择SQLite。因为SQLite的数据管理机制是
操作系统的文件系统的依赖性更强,它在这个操作低效率。
2。数据量很大:
文件系统仅限于操作系统,在
处理大量数据时效率很低,大量数据的存储甚至无法提供支持。
三.高并发:
因为SQLite只提供粗粒度的数据锁,如读写锁,大量的数据将被锁定在每个锁操作,即使只有一小部分的数据将不可访问。换句话说,我们可以认为SQLite只提供一个表级锁,没有行级锁提供。该
同步机制、并发性能难以有效。
四。个性化功能:
1。零
配置:
SQLite本身不需要任何初始化配置文件,也没有
安装和
卸载的过程。当然,没有服务器实例的
启动和停止。在使用过程中,不需要
创建用户和分配
权限。在系统灾难的情况下,如电源问题,主机问题,等等,不需要做任何操作,SQLite。
2。没有
独立的服务器:
不同于其他的关系型数据库,SQLite没有客户端程序访问和提供相关服务的一个单独的服务器
进程。作为一个嵌入式数据库,SQLite运行在相同的进程
空间作为主程序,因此它们之间的通信是完全的内部进程通信,而且比进程间通信效率更高。然而,特别是,对保障不力的问题存在的结构,在实际操作中,如在这个时候,那崩溃的过程中的应用问题,由于在相同的进程空间中SQLite过程的依赖,那么SQLite将
退出。但对于独立的服务器进程,他们不会有这样的问题,和他们将在紧张地做他们的
工作环境。
三.单
磁盘文件:
SQLite数据库是存储在一个单一的文件系统的磁盘文件,它可以在任何允许的时间
复制。主要的好处是便于携带和共享。其他数据库引擎基本存储数据库在磁盘的
目录,并形成一套基于
文件目录中的数据库文件。虽然我们可以直接访问这些文件,我们的程序不能运行,只有数据库实例的过程中可以做的好处是更高的。安全性和更好的性能,而且成本安装和维护复杂的成本。
4。平台独立性:
这一点已解释过。与SQLite,许多数据库引擎无法直接备份数据通过备份数据。它们只能通过数据库系统提供的各种转储和还原
工具将数据库中的数据导出到
本地文件,然后加载到目标数据库中,这样就存在明显的效率问题。首先,我们需要导出到另一个文件。如果数据量大,出口的过程将time-consuming.however,这只是工作的一小部分,因为数据导入往往需要更多的时间,需要处理大量数据的验证当进口。存储时,它不是简单的
顺序存储。相反,根据数据结构、算法和
策略,数据需要存储在不同的文件
位置,因此与数据库文件的直接拷贝相比,性能非常差。
5。弱势
类型:
不像大多数的数据库,支持静态类型,在SQLite数据类型作为价值的一个
属性。因此,对于一个数据表中的列,即使申报表给出了该列的类型,我们还可以插入任何类型时,插入数据,例如,整数列存储在的string'hello ',这一特征中唯一的例外是整型主键列。在这种情况下,我们只能在列中存储整数数据。
6。SQL语句编译成虚拟机代码:
许多数据库产品将解析SQL语句到复杂的,嵌套的数据结构,然后将它们发送给
执行器来遍历数据结构完成指定的操作。相比之下,SQLite的SQL语句会编译成字节码,然后执行它自己的虚拟机。这种
方法提供了更好的性能和更好的调试能力。