软件研究之SQLite
1.前言
因为要用到了 mbtiles ,我不得不去看了看 SQLite 数据库。
优点:
- 不需要配置,不需要安装和管理
- 不需要一个单独的服务器进程或操作的系统(无服务器的)
- 一个完整的SQLite数据库存储在一个单一的跨平台的磁盘文件上
- SQLite是非常小的,轻量级的数据库,完全配置时小于400KiB,省略可选功能配置时小于250KiB
- SQLite是一个自给自足的数据库,这也就意味着不需要任何外部的依赖
- SQLite事务是完全兼容ACID的,允许从多个进程或线程安全访问
- SQLite支持SQL92(SQL2)标准的大多数查询语言的功能
- SQLite使用ANSI-C编写的,并提供了简单和易于使用的API
- SQLite可在UINX(Linux,Max OS-X,Android,iOS)和Windows(Win32,WinCE,WinRT)中运行
缺点:
- 在SQLite中,SQL92不支持的特性如下所示:
- RIGHT OUTER JOIN: 只实现了LEFT OUTER JOIN
- FULL OUTER JOIN: 只实现了LEFT OUTER JOIN
- ALTER TABLE: 支持RENAME TABLE和ALTER TABLE的ADD COLUMN variants命令,
- 不支持DROP COLUMN、ALTER COLUMN、ADD CONSTRAINT
- Trigger支持:支持FOR EACH ROW触发器,但不支持FOR EACH STATEMENT触发器
- VIEWS: 在SQLite中,视图是只读的,不能在视图中执行DELETE、INSERT或UPDATE语句
- GRANT 和 REVOKE:可以应用的唯一的访问权限是底层操作系统的正常文件访问权限
参考文章:
【1】.SQLite 简介
【2】.SQLite简介 SQLite是一个进程内的轻量级嵌入式数据库,它的数据库就是一个文件,实现了自给自足、无服务器、零配置的、事务性的SQL数据库引擎。它是一个零配置的数据库,这就体现出来SQLite与其他数据库的最大的区别:SQLite不需要在系统中配置,直接可以使用。且SQLite不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite可直接访问其存储文件。
【3】.浅谈利用SQLite存储离散瓦片的思路和实现方法 Sqlite的优点:a. 轻量级,b. 单一文件,c. 跨平台/可移植性,d.内存数据库。
【4】.SQLite和MySQL数据库的区别与应用
2.SpatiaLite
参考文章:
【1】.SpatiaLite SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities.
【2】.地理空间数据库盘点
