SQLite基础—Day3
Varsion

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。

本篇是该系列教程的第三篇也是最后一篇,新来的朋友可以在我的博客搜索第一篇,从头开始看

上篇介绍了Sqlite的 表的操作、运算符以及表达式。

Sqlite的增、删、改、查的部分 都和MySQL完全相同。这边就不做赘述了。

这边来为大家讲一下Sqlite的优缺点:


SQLite的优缺点

SQLite是非凡的数据库,他可以进程在使用它的应用中。作为一个自包含、基于文件的数据库,SQLite提供了出色的工具集,可以处理所有类型的数据,没有什么限制,而且比起服务器运行的进程型服务器使用起来轻松许多。

一个应用使用SQLite时,它的功能直接被集成在其中,应用会直接访问包含数据的文件(即SQLite数据库),而不是通过一些端口(port, socket)来交互。感谢这种底层技术,这使SQLite变得非常快速和高效,并且十分强大。

SQLite支持的数据类型

NULL

NULL值

INTEGER

有符号整数,按照设置用1、2、3、4、6或8字节存储

REAL

浮点数,使用8字节IEEE浮点数方式存储

TEXT

文本字符串,使用数据库编码存储(UTF-8, UTF-16BE 或 UTF-16LE)

BLOB

二进制大对象,怎么输入就怎么存储

SQLite 的优点

基于文件

整个数据库都包含在磁盘上的一个文件中,因此它有很好的迁移性。

标准化

尽管它看起来像个“简化版”的数据库,SQLite 确实支持 SQL。它略去了一些功能(RIGHT OUTER JOIN 和 FOR EACH STATEMENT),但是,又同时增加了一些其他功能。

对于开发和测试

在绝大多数应用的开发阶段中,大部分人都非常需要解决方案能有并发的灵活性。SQLite 含有丰富功能基础,所能提供的超乎开发所需,并且简洁到只需一个文件和一个 C 链接库。

SQLite的缺点

没有用户管理

高级数据库都能支持用户系统,例如,能管理数据库连接对数据库和表的访问权限。但由于 SQLite 产生的目的和本身性质(没有多用户并发的高层设计),它没有这个功能。

缺乏额外优化性能的灵活性

仍然是从设计之初,SQLite 就不支持使用各种技巧来进行额外的性能优化。这个库容易配置,容易使用。既然它并不复杂,理论上就无法让它比现在更快,其实现在它已经很快了。

何时使用 SQLite ?

嵌入式应用

所有需要迁移性,不需要扩展的应用,例如,单用户的本地应用,移动应用和游戏。

代替磁盘访问

在很多情况下,需要频繁直接读/写磁盘文件的应用,都很适合转为使用 SQLite ,可以得益于 SQLite 使用 SQL 带来的功能性和简洁性。

测试

它能秒杀大部分专门针对应用业务逻辑(也就是应用的主要目的:能完成功能)的测试。

何时不用 SQLite ?

多用户应用

如果你在开发的应用需要被多用户访问,而且这些用户都用同一个数据库,那么相比 SQLite 最好还是选择一个功能完整的关系型数据库(例如 MySQL)。

需要大面积写入数据的应用

SQLite 的缺陷之一是它的写入操作。这个数据库同一时间只允许一个写操作,因此吞吐量有限。


  • Post title:SQLite基础—Day3
  • Post author:Varsion
  • Create time:2020-07-27 10:30:08
  • Post link:https://blog.varsion.cn/post/23164fa5.html
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
Comments