SQLite:最精巧的SQL数据库

Sqlite是一个无服务器的、零配置的、事务性的开源免费数据库引擎。SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接,SQLite 直接访问其存储文件。

在主流Linux包括国产Linux操作系统中,普遍内置了sqlite3版本,直接输入sqlite3即可进行访问。

SQLite是桌面和移动端很常用的数据库(和Access类似,一个SQLite数据库就是一个文件),采用标准SQL语法,支持事务等特性,支持各种平台,能作为标准RDBMS数据库使用。

SQLite首页及下载:https://www.sqlite.org/

一份中文的SQLite教程,https://www.runoob.com/sqlite

1. SQLite应用场景

SQLite本身是C写的,体积很小、效率极高,所以,经常被集成到各种应用程序中。例如:Android和iOS都将SQLite作为内置数据库,微信用Sqlite在本机存储好友、消息等数据,浏览器(如chrome,Firefox)用Sqlite在本地存储Cookies。

不仅仅在嵌入端、移动端成为主流外,SQLite在桌面端、微型Web后台等场景都是代替Access数据库最佳选择,性能也优于Access,对SQL支持更标准。类似的产品应该是SQL Server Express。(当然Access即是文件数据库引擎,也是管理工具,易用性比一众SQLite客户端管理工具要好)。

Berkeley DB是另外一个开源的嵌入式数据库,和SQLite一样,BDB是一个函数库,和调用它的应用程序是运行在同一地址空间中的。作为一款优秀的Key/Value存储引擎,是早期的NoSQL,被用来存储大量的非关系型的数据,最大的有点是性能高,适合数据类型简单、效率要求高的场景。BDB不是RDBMS,单独也不支持SQL,但BDB也是MySQL存储引擎的选项之一(参考https://www.mysqlzh.com/doc/218.html)。LDAP是一种一旦数据建立就很少需要改动的数据库,特别适合BDB存储,目前绝大多数的LDAP服务器都选用BDB。

相对Access,SQLite性能和跨平台等有优势,相对BDB,SQLite是标准SQL RDBMS,应用很容易迁移到其它SQL数据库。SQLite也适合作为产品内置数据引擎、演示Demo等,SQLite数据库是中小站点CMS的最佳选择 https://www.cnblogs.com/zhaiqianfeng/archive/2012/07/10/4616827.html。

SQLite还有空间数据支持的扩展SpatiaLite,可以按照OGC的Simple Feature Access标准存取空间数据。这个项目名叫SpatiaLite,为SQLite增加空间数据支持,与其一同分发的还有VirtualShape可以把一个Shapefile作为SQLite的数据库。

2. 关于SQLite的性能及优化

在使用SQLite的时候经常会遇到其性能问题,如参数设置,善用事务特性等,可以参考下面的文章。

SQLite 3性能深入分析。https://blog.csdn.net/f2006116/article/details/77162564?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param

SQLLite操作百万级数据之优化篇。https://blog.csdn.net/lifan_3a/article/details/43834161?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

移动客户端中高效使用 SQLite。  https://www.sohu.com/a/112861893_465908

3. 开源的SQLite 客户端工具

SQLite软件包会安装命令行工具sqlite3,输入sqlite3进入管理工具,提示符“sqlite3>”,可以使用SQL语句外,提供了一套管理命令(https://www.runoob.com/sqlite/sqlite-commands.html),如.help是帮助,.show是显示参数当前设置,.databases 列出数据库的名称及其所依附的文件,.exit 退出 SQLite 提示符,sqlite3 文件名称(假如文件名称不存在,则会新建一个新的db文件)。

(1)DB Browser for SQLite,或者叫sqlite browser , https://download.sqlitebrowser.org。有windows和mac os版本的安装包,也支持Linux,很多Linux发行版带有安装包。sqlite browser功能强大,并支持命令行使用,是SQLite首选管理工具。

(2)sqliteman,http://sqliteman.yarpen.cz/,也是可视化的SQLite管理工具,龙芯版中标麒麟系统软件仓库直接可以安装。

(3)SQLite Manager  Firefox Plugin,是一个 Firefox 浏览器的插件,用来直接通过浏览器管理 SQLite 数据库,能完成日常大多数管理工作,使用FireFox的SQLite Manager插件就能在本机上建个小数据库进行常用的个人数据管理,不需要进行本机安装SQLite。https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/

(4)SQLite Studio,https://sqlitestudio.pl/SQLite图形化管理界面,开源,采用TCL语言开发。可以完美支持utf8格式; 3、支可以导出例如csv、html等数据格式,可以同时一起打开多个数据库文件,甚至能查看编辑二进制段落。
安卓系统内置SQLite,SQLite Studio可以和AndroidStudio配套使用,安卓开发必备。

 (5)DBeaver,支持各种JDBC支持的数据库,基于java的开源数据库客户端,如果需要访问多种数据库连接的时候非常推荐使用,后续将以本软件为主要工具进行介绍。

4. SQLite 加密

在安卓手机中广泛使用了SQLite,目前一般都进行了加密,例如华为手机助手现在导出的数据都是加密后的sqlite数据库文件。

SQLite数据库加密的思路有两种:1. 将内容加密后再写入数据库;2. 对数据库文件加密。一般后者使用较多。

SQLite加密使用最多的是SQLCipher,是完全开源的工具。sqlite browser集成了SQL Cipher,可以直接处理SQLite数据库的加密和解密。

对于SQLite加密DB破解,基本属于手机取证领域,https://zhuanlan.zhihu.com/p/63607377 介绍了一些关于微信数据解密的内容。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值