【牛角书】什么时候使用SQLite?SQLite的优缺点分析

一.SQLite简介

SQLite 是一个功能强大的嵌入式关系数据库管理系统,采用紧凑的C库,由 D. Richard Hipp开发。它提供对 SQL92 的一个大子集、多个表和索引、事务、视图、触发器以及大量客户端接口和驱动程序的支持。该库是自包含的,并在不到25,000行 ANSIC中实现,可免费用于任何目的。它快速、高效且可扩展,可在从 ARM/Linux 到 SPARC/Solaris 的各种平台和硬件架构上运行。

二.SQLite的优点

  1. 轻量级:SQLite是被设计成轻量级,自包含的。一个头文件,一个lib库,你就可以使用关系数据库了,不用任何启动任何系统进程。一般来说,整个SQLite库小于225KB。在电脑,手机,相机,家用电子设备等设备的嵌入式软件是非常好的选择。
  2. 零配置:SQLite3核心引擎不依赖第三方软件,不用安装,不用配置,不用启动,关闭或者配置数据库实例。当系统崩溃后不用做任何恢复操作,再下次使用数据库的时候自动恢复。
  3. 单一磁盘文件:SQLite的数据库被存放在文件系统的单一磁盘文件内,只要有权限便可随意访问和拷贝,这样带来的主要好处是便于携带和共享。其他的数据库引擎,基本都会将数据库存放在一个磁盘目录下,然后由该目录下的一组文件构成该数据库的数据文件。尽管我们可以直接访问这些文件,但是我们的程序却无法操作它们,只有数据库实例进程才可以做到。这样的好处是带来了更高的安全性和更好的性能,但是也付出了安装和维护复杂的代价。
  4. 跨平台/可移植性:它是运行在Windows,Linux,BSD,Mac OS X和一些商用Unix系统,比如Sun的Solaris,IBM的AIX,同样,它也可以工作在许多嵌入式操作系统下,比如QNX,VxWorks,Palm OS, Symbin和Windows CE。
  5. 提供简单、易于使用的API:SQLite 有一个非常易于使用的 API,只需要三个函数来执行 SQL 和检索数据。它是可扩展的,允许程序员以 C 回调的形式定义自定义函数和聚合。C API 是脚本接口的基础,其中之一(Tcl 接口)包含在发行版中。开源社区已经开发了大量其他客户端接口、适配器和驱动程序,使得在其他语言和库中使用 SQLite 成为可能。
  6. 数据存储高效:当您需要存储文件存档时,SQLite可以生成较小数据量的存档,并且包含常规ZIP存档的大量元数据。
  7. 数据查询简单:可以将数据加载到SQLite内存数据库中,并随时提取数据,也可以按照想要的方式提取数据。

三.SQLite的缺点

  1. 并发访问的锁机制:SQLite的锁机制是粗粒度的,它允许多个读,但是一次只允许一个写。写锁会在写期间排他地锁定数据库,其他人在此期间不能访问数据库。SQLite已经采取措施以最小化排它锁所占用的时间。通常来讲,SQLite中的锁只保持几毫秒。但是按照一般经验,如果您的应用程序有很高的写并发(许多连接竞争向同一数据库写),并且是时间关键型,您可能需要其他数据库。
  2. 网络问题:有时候需要访问其它机器上的SQLite数据库文件,就会把数据库文件放置到网络共享目录上。这时候你就要小心了。当SQLite文件放置于NFS时,在并发读写的情况下可能会出问题(比如数据损坏)。原因据说是由于某些NFS的文件锁实现上有Bug。

四.什么时候使用SQLite

  1. 嵌入式应用:所有需要迁移性,不需要扩展的应用,例如,单用户的本地应用、移动应用和游戏。
  2. 代替磁盘访问:在很多情况下,需要频繁直接读/写次哦按文件的应用,都很适合转为使用SQLite,可以得益于SQLite使用SQL带来的功能性和简洁性。
  3. 测试:可以秒杀大部分专门针对应用业务逻辑(也就是应用的主要目的:能完成功能)的测试。

五.什么不时候使用SQLite

  1. 多用户应用:如果你在开发的应用需要被多用户访问,而且这些用户都用同一个数据库,那么相比SQLite最好还是选择一个功能完整的关系型数据库(例如:MySQL)。
  2. 需要大面积写入数据的应用:SQLite的缺陷之一就是它的写入操作,这个数据库同一时间只允许一个写操作,因此吞吐量有限。
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SQLite Expert: A powerful administration tool for your SQLite databases Are you developing SQLite3 databases and need an easy and powerful tool? SQLite Expert is the perfect choice. It is the most feature rich administration and development tool for SQLite. SQLite Expert is designed to answer the needs of all users, from writing simple SQL queries to developing complex databases. The graphical interface supports all SQLite features. It includes a visual query builder, an SQL editor with syntax highlighting and code completion, visual table and view designers and powerful import and export capabilities. Supported platforms: Windows 2000, XP, Vista, 7. Visual SQL Query Builder Build complex SQL queries with ease. Formatted SQL query text layout. Powerful means of SQL query parsing and analysis. Advanced SQL editor with syntax highlighting and code completion. Powerful restructure capabilities Visual editors for table columns, indexes, foreign keys, triggers, unique and check constraints. Restructure any complex table without losing data. Any restructure operation is wrapped in a nested transaction which is rolled back if any errors occur when applying changes. Import and Export data Import data from ADO data source, CSV files, SQL script or SQLite. Export data to CSV files, SQL script, Excel or SQLite. Copy tables between SQLite databases using drag and drop operations. Export data to Excel via clipboard. Data editing Edit data in the grid using powerful in-place editors. Image editor currently supporting JPEG, PNG, BMP, GIF and ICO image formats. Visualize and modify BLOB fields using the integrated Hex editor. Other features Full Unicode support. Support for attached databases. Support for encrypted databases. Lua and Pascal scripting support. Recent features View all the functions and collations installed by each SQLite extension! New in 3.0: Customize the look and feel of the application using skins. New in 3.0: Send the contents of any grid to printer or export it to a PDF file. SQLite的专家:一个强大的管理工具,为您的SQLite数据库 你发展sqlite3的数据库,并需要一个简单而强大的的工具? SQLite的专家是最完美的选择。它是功能最丰富的管理和对SQLite的开发工具。 SQLite的专家的目的是回答所有用户的需求,编写简单的SQL查询,以开发复杂的数据库。 图形界面,支持所有的SQLite功能。它包括一个可视化查询生成器,SQL编辑器与语法高亮和代码完成,视力表和视图设计师和强大的进口和出口能力。 支持平台:视窗2000,XP,VISTA,7。 可视SQL查询生成器 轻松建立复杂的SQL查询。 格式化的SQL查询文本布局。 SQL查询解析和分析的有力手段。 高级SQL编辑器与语法高亮和代码完成。 强大的重组功能 表列,索引,外键,触发器,独特和检查约束的可视化编辑器。 任何复杂的表,而不会丢失数据重组。 任何重组操作被包裹在一个嵌套事务回滚,如果发生任何错误更改应用时。 导入和导出数据 从ADO数据源,CSV文件,SQL脚本或SQLite导入数据。 数据导出到CSV文件,SQL脚本,Excel或SQLite的。 使用拖放操作之间的SQLite数据库复制表。 通过剪贴板中的数据导出到Excel。 数据编辑 在使用功能强大的就地编辑网格的编辑数据。 图像编辑器目前支持JPEG,PNG,BMP,GIF和ICO图像格式。 使用集成的十六进制编辑器可视化和修改BLOB字段。 其他特点 完整的Unicode支持。 支持附加的数据库。 支持加密的数据库。 Lua和Pascal的脚本支持。 最新功能 查看所有的功能和安装排序规则每个SQLite扩展! 在3.0的新功能:自定义的外观和感觉的应用程序使用外观。 在3.0的新功能:发送到打印机的网格任何内容或将其导出到一个PDF文件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kk.巴扎嘿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值