网站首页 > 技术文章 正文
SQLite是包含在C语言库中的关系数据库管理系统。它符合ACID,并实现了大多数SQL标准。
作为用于存储在应用软件(例如Web浏览器和手机)中的嵌入式数据库软件,它是一种流行的选择,并且它是世界上部署最广泛的数据库引擎。但是,与流行的看法相反,SQLite不仅在嵌入式设备中有用。每当您建立一个不需要扩展到多台计算机的网站时,在大多数情况下,仅使用SQLite都可以,而且不仅如此,而且您会发现使用SQLite变得更加容易。
与许多其他数据库管理系统相比,SQLite并不是客户端服务器数据库引擎,但是实际上您很少需要它。如果您的应用程序软件与数据库在同一台物理机上运行,?这是大多数中小型Web应用程序所做的,那么您可能只需要SQLite。
多个进程或线程可以同时访问同一数据库,并且读取访问可以并行运行。由于数据库由单个文件组成,因此仅当当前没有其他访问权正在写入数据库时??,才可以满足写访问权。但是,在设置了可配置的busy_timeout并启用了预[url=https://sqlite.org/wal.html]写日志记录(WAL)的情况下[/url],SQLite启用了并发读取和写入。这意味着写入排队。每个应用程序都会快速完成其数据库的工作并继续运行,并且锁定不会持续超过几毫秒。
SQLite的速度非常快,而且有据可查。
即使您刚开始规模较小但以后需要升级,只要您的Web应用程序可以与数据库在同一台计算机上运行(它可以在99%的时间内运行),就可以将硬件升级到功能更强的计算机并保持照常营业。
您唯一需要考虑的客户端服务器设置是:
- 您有多台物理机通过网络访问同一数据库服务器的位置。在此设置中,您有多个客户端之间的共享数据库。
- 如果您的计算机极度忙于写操作,例如每秒接受成千上万的同时写请求,那么您还需要客户端服务器设置,因为专门构建了客户端服务器数据库来处理该问题。
- 如果您使用的是非常大的数据集,例如TB级。客户端-服务器方法更适合大型数据集,因为数据库会将文件拆分为较小的文件,而SQLite仅适用于单个文件。
我已经将SQLite作为Web应用程序数据库运行,每秒有数千个并发写入,它们来自不同的HTTP请求,而没有任何延迟或问题。这是因为即使在非常繁忙的站点上,硬件也非常快并且完全能够处理该问题。
但是,您可能会问,SQLite有什么优点呢?
好吧,首先,所有数据库管理任务变得更加容易。您不需要任何数据库帐户管理,数据库只是一个文件。
此外,您不需要运行需要监视的单独的数据库进程。如果您的应用程序已启动,则您的数据库也已启动!
您可以将数据库分为多个单独的数据库,甚至可以在服务器上为每个用户提供自己的数据库。根据应用程序类型,您可以有一个包含所有用户帐户信息(例如用户名和密码)的数据库,并将其用于登录会话,但是一旦确认登录,就可以使用另一个个人数据库来完成工作。
备份SQLite也非常容易,只需复制文件即可!您甚至可以在访问数据库时执行此操作。
需要特别注意两点,即AUTOINCREMENT命令是与其他数据库不同的,并且SQLite使用动态且弱类型的SQL语法不能保证域完整性。SQLite中的AUTOINCREMENT目的是防止重复使用先前删除的行中的ID。动态和弱类型SQL语法意味着您可以将字符串插入定义为整数的列中。SQLite将尝试在适当的情况下尝试在格式之间转换数据,在这种情况下,将字符串“ 123”转换为整数,但它不保证会进行此类转换,如果无法进行转换,则会按原样存储数据。这不是错误,但被认为是一项功能。
猜你喜欢
- 2024-11-17 SQLite 3.47.0新功能(sqlite3文件怎么打开)
- 2024-11-17 Python SQLite教程—终极指南(python kivy中文教程)
- 2024-11-17 简单了解一下“SQLite的重要特点和功能”
- 2024-11-17 Python SQLite教程(python web开发教程)
- 2024-11-17 [西门子PLC] WinCC flexible SMART V4 SP2 软件SQLite数据库存储
- 2024-11-17 数据库编程之SQLite(一)(sql数据库编程语言)
- 2024-11-17 SQLite 数据库常用命令(sqlite数据库下载)
- 2024-11-17 C# 数据操作系列 - 16 SqlSugar 完结篇(最后的精华)
- 2024-11-17 Windows下,SQLite安装,轻型数据库,遵守ACID关系型数据库
- 2024-11-17 游戏前端数据库-SQLite(游戏数据库用什么)
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)