数据库专家的成长之路:揭秘嵌入式与SQLite的未知秘密

发表时间: 2018-11-02 08:00

数据库是软件系统的存储和支撑

朋友们,如果您要做软件开发,前端的用户界面您设计起来得心应手,可再好的界面都是要处理和记录数据的,您是无论如何都很难绕过数据库的,特别是稍微上规模的软件系统,都要有数据库作为数据存储或后台支撑。

目前市面上流行的数据库系统有很多,每种数据库都有自己的特色和特长。选择合适自己软件系统的数据库,可能是您开发时需要考虑的最重要课题之一。

如果您做大型系统,您要选的可能是微软的SQLServer、流氓公司的Oracle、蓝色巨人的DB2、永远开源的FirebirdSQL、永远开源的Postgresql、永远开源的MariaDB或暂时开源的MySQL等。

但如果您做的是小型系统,数据存储数量不是太大、要求数据存取速度快、要求安装部署工作量基本为零。总之一句话,能用简单。那么,我今天讲的SQLite,恰巧就是一把很好用的小刀,她速度快、零部署、永远开源、仅仅是一个文件,而且主流的编程语言都直接集成了访问接口,好东西大家都喜欢。

SQLite是什么?

SQLite,是一款轻型的,遵守ACID的关系型数据库管理系统,她包含在一个相对小的C库中。SQLite是D.RichardHipp建立的公有领域项目。其的设计目标主要为嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

SQLite能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 C#、PHP、Delphi、Java等,同时SQLite支持ODBC接口,与其它数据库相比,它的处理速度是最快的。

SQLite第一个Alpha版本诞生于2000年5月。 至2018年已经有18个年头,SQLite当前最新版本是3.25.x。

SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在Android的App中都可以集成。

SQLite的作者D. Richard Hipp,2000年1月,Hipp和一个同事讨论关于创建一个简单的嵌入式SQL数据库的想法,2000年8月,SQLite 1.0版发布了。2001年中期,很多项目都开始使用SQLite。在随后的几年中,开源社区的其他成员开始为他们喜欢的脚本语言和程序库编写SQLite扩展。

2004年,SQLite从版本2升级到版本3,这是一次重大升级。截止到2018年11月初,SQLite当前最新版本是3.25.2。

SQLite的优点

封装好体积小:最低只需要几百K的内存就可以运行,SQLite的接口封装在一个只有几百KDLL中,调用起来非常方便。

速度快性能高:对数据库的访问性能很高,其运行速度比Mysql等开源数据库要快很多,当然更比那些巨无霸的商业数据库速度快的多。

可移植性超强:能支持各种32位和64位体系的硬件平台,也能在Windows、Linux、BSD、Android等软件平台中运行。

SQL支持还不错:SQLite支持ANSI SQL92中的大多数标准,提供了对子查询、视图、触发器等机制的支持

接口支持非常棒:SQLite为C、Delphi、Java、PHP、Python等多种语言提供了API接口,所有的应用程序都必须通过接口访问SQLite数据库。绝大部分编程语言都直接封装了SQLite支持。

SQLite的不足之处

SQLite的不足之处是很明显,那就是不适合大型应用!道理很简单,您用SQLite的目的就不是用在大型应用的嘛。SQLite是一把锋利的小刀、是用来杀鸡的;你要是宰牛,还是配一把牛刀吧!

SQLite不支持自定义函数、不支持存储过程、不支持并发访问、对SQL-92的支持也不完整,这些对于大型应用来说,恰恰都是很重要的。如果是大型应用,还是选其它数据库吧,PostgreSQL、MariaDB、FirebirdSQL这些开源数据库是首选;MySQL这种暂时开源以后难说的是次选;SQL Server、Oracle、DB2、Sybase这些,您愿意花银子也可以考虑。

对了,SQLite的官网是www.sqlite.org,您可以随时下载最新的SQLite支持。

*本文部分图片来源于网络,如有侵权,请及时联系我们删除