什么是 SQLite?
SQLite 是一款轻型的嵌入式数据库. 它的数据库就是一个文件.
小型嵌入式, 跟 mysql 差不多, 但是更小, 功能相对较少, 它占用的资源非常低, 可能只需要几百 k 的内存就够了.
是一个真正开源的无限制的数据库, 跨平台, 支持 Linux, Mac , Android, iOS 和 Windows 等, 主要应用于嵌入式开发.
SQLite 有什么特点?
SQLite 的优点
- 源代码不受版权限制, 真正的自由, 开源和免费.
- 无服务器, 不需要一个单独的服务器进程或者操作的系统
- 一个 SQLite 数据库是存储在一个单一的跨平台的磁盘文件
- 零配置, 因为其本身就是一个文件, 不需要安装或管理, 轻松携带
- 不需要任何外部的依赖, 所有的操作等功能全部都在自身集成.
- 轻量级,SQLite 本身是 C 写的,体积很小,经常被集成到各种应用程序中.
SQLite 的缺点
- 缺乏用户管理和安全功能
- 只能本地嵌入,无法被远程的客户端访问,需要上层应用来处理这些事情;
- 不适合大数据
- 适合单线程访问,对多线程高并发的场景不适用;
- 各种数据库高级特性它都不支持,比如管理工具、分析工具、维护等等;
SQLite 的应用场景
小型网站
SQLite 适用于中小规模流量的网站.
日访问在 10 万以下的网站可以很好的支持, 适用于读多写少的操作, 如管理员在后台添加数据, 其他访客多为浏览.
10 万 / 天是一个临界值, 事实上在 100 万的数据量之下,SQLite 的表现还是可以的, 在往上就不适合了.
使用它无需单独购买数据库服务, 无需服务器进程, 配置成本几乎为零, 加上数据的导入导出都是复制文件, 维护难度也几乎为零, 迁移到别的服务器无需任何配置即可支持, 加上其读取的速度非常快, 省去了远程数据库的链接, 能够极大提升网站访问速度.
嵌入式设备
SQLite 适用于手机, PDA, 机顶盒, 以及其他嵌入式设备. 作为一个嵌入式数据库它也能够很好的应用于客户端程序.
因为其轻量, 小巧, 不怎么占用内存, 数据的读写性能好, 加上嵌入式设备数据量并不大, 不需要频繁的维护, 所以比较适合.
数据库教学
SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
其无配置, 无依赖, 小巧, 单一文件的特性让它的安装和使用非常简单, 非常适合用来讲解 SQL 语句.
学生可以在很短的时候使用并操作 SQLite, 不受系统和商业限制等影响, 学习的结果可以通过邮件或者云文件等形式发送给老师进行评分.
可以通过它快速实现一个最小化应用, 适合学生快速了解 SQLite, 以及 SQL 语法, 从而实现数据库的触类旁通, 了解其他数据库系统的设计实现原则.
本地应用程序
其单一磁盘文件的特性, 并且不支持远程连接, 使其适用于本地的应用程序, 如 PC 客户端软件.
常用的应用类型为金融分析工具、CAD 包、档案管理程序等等. (手机上的通讯录也是用此开发的)
没有远程, 意味着适用于内部或者临时的数据库, 用来处理一些数据, 让程序更加灵活.
不适用场景
很明显其适合小型网站, 相对的就不适合高流量网站., 也不适合超大的数据集, 在其缺点也提到, 不适合高并发访问.
具体的使用场景并没有绝对的限制, 要看情况, 分清楚需求和业务场景, 市场上也有其他同类或者其他类型的数据库, 参考使用成本, 性能等各种因素来决定到选择哪种数据库才是最佳选择.