SQLite简介
SQLite第一个Alpha版本诞生于2000年5月. 至今已经有4个年头了. 而在今年的5月SQLite也迎来了一个新的里程: SQLite 3. SQLite官方网站: http://www.sqlite.org/
SQLite是一个用C语言书写的小型库,它提供了数据库SQL引擎并实现了大部分的标准SQL92和ACID特性。与数据库服务器如MySQL或PostgreSQL相比较,它的特殊性,在于不是复制客户机/服务器结构,而是通过使用数据库文件直接集成到程序中。SQLite是D. Richard Hipp创建的公共项目。
SQLite是一个数据库引擎,存在于许多大型公共软件如Skype、Firefox、Gears和McAfee的一些产品中。在许多语言,如PHP、Python和Perl,以及一些手机如iPhone和那些运行Symbian的手机上也使用了SQLite。
特征:
SQLite不工作在客户机/服务器范例下,而是一个函数库。除其他功能,应该指出:
- 1)它缺少安装和配置的过程。这包括缺少用户管理和用户权限。
- 2)整个数据库存储在一个文件中。
- 3)在每个数据库存储的数据类型是数据的属性,而不是列。一列可以包含不同类型的数据。
SQLite实现了大多数的SQL 92标准,除了:
- 1)用GRANT和REVOKE管理权限
- 2)外键的管理
- 3)联合类型RIGHT OUTER JOIN和FULL OUTER JOIN(但支持LEFT OUTER JOIN)
- 4)仅部分考虑触发
- 5)修改表结构受限:您可以重新命名一个表并添加列,但不能修改或删除列。
SQLite 使用注意事项
在确定是否在应用程序中使用 SQLite 之前,应该考虑以下几种情况:
- 目前没有可用于 SQLite 的网络服务器。从应用程序运行位于其他计算机上的 SQLite 的惟一方法是从网络共享运行。这样会导致一些问题,像 UNIX® 和 Windows® 网络共享都存在文件锁定问题。还有由于与访问网络共享相关的延迟而带来的性能下降问题。
- SQLite 只提供数据库级的锁定。虽然有一些增加并发的技巧,但是,如果应用程序需要的是表级别或行级别的锁定,那么 DBMS 能够更好地满足您的需求。
- 正如前面提到的,SQLite 可以支持每天大约 100,00 次点击率的 Web 站点 —— 并且,在某些情况下,可以处理 10 倍于此的通信量。对于具有高通信量或需要支持庞大浏览人数的 Web 站点来说,应该考虑使用 DBMS。
- SQLite 没有用户帐户概念,而是根据文件系统确定所有数据库的权限。这会使强制执行存储配额发生困难,强制执行用户许可变得不可能。
- SQLite 支持多数(但不是全部)的 SQL92 标准。不受支持的一些功能包括完全触发器支持和可写视图。请参阅 unimplemented SQL92 features。
如果您感到其中的任何限制会影响您的应用程序,那么您应该考虑使用完善的 DBMS。如果您可以解除这些限制问题,并且对快速灵活的嵌入式开源数据库引擎很感兴趣,则应重点考虑使用 SQLite。
一些能够真正表现 SQLite 优越性能的领域是 Web 站点,可以使用 SQLite 管理应用程序数据、快速应用程序原型制造和培训工具。