`

SQLLite的适用场景

阅读更多

SQLite最佳试用场合

  • 网站

    作为数据库引擎SQLite适用于中小规模流量的网站(也就是说, 99.9%的网站). SQLite可以处理多少网站流量在于网站的数据库有多大的压力. 通常来说, 如果一个网站的点击率少于100000次/天的话, SQLite是可以正常运行的. 100000次/天是一个保守的估计, 不是一个准确的上限. 事实证明, 即使是10倍的上述流量的情况下SQLite依然可以正常运行.

  • 嵌入式设备和应用软件

    因为SQLite数据库几乎不需要管理, 因此对于那些无人值守运行或无人工技术支持的设备或服务, SQLite是一个很好的选择. SQLite能很好的适用于手机, PDA, 机顶盒, 以及其他仪器. 作为一个嵌入式数据库它也能够很好的应用于客户端程序.

  • 应用程序文件格式

    SQLite作为桌面应用程序的本地磁盘文件格式取得了巨大成功.例如金融分析工具、CAD 包、档案管理程序等等. 一般的数据库打开操作需要调用sqlite3_open()函数,并且标记一个显式本地事务的起始点(BEGIN TRANSACTION)来保证以独占的方式得到文件的内容. 文件保存将执行一个提交(COMMIT)同时标记另一个显式本地事务起始点. 这种事务处理的作用就是保证对于应用程序数据文件的更新是原子的、持久的、独立的和一致的.

    数据库里可以加入一些临时的触发器,用来把所有的改变记录在一张临时的取消/重做日志表中. 当用户按下取消/重做按钮的时候这些改变将可以被回滚. 应用这项技术实现一个无限级的取消/重做功能只需要编写很少的代码.

  • 替代某些特别的文件格式

    许多程序使用fopen(), fread(), 或 fwrite()函数创建和管理一些自定义的文件用来保存数据. 使用SQLite替代这些自定义的文件格式将是一种很好的选择.

  • 内部的或临时的数据库

    对于那些有大量的数据需要用不同的方式筛选分类的程序, 相对于编写同样功能的代码, 如果你把数据读入一个内存中的SQLite数据库, 然后使用连接查询和ORDER BY子句按一定的顺序和排列提取需要的数据, 通常会更简单和快速. 按照上述的方法使用内嵌的SQLite数据库将会使程序更富有灵活性, 因为添加新的列或索引不用重写任何查询语句.

  • 命令行数据集分析工具

    有经验的SQL用户可以使用SQLite命令行程序去分析各种混杂的数据集. 原是数据可以从CSV(逗号分隔值文件)文件中导入, 然后被切分产生无数的综合数据报告. 可能得用法包括网站日志分析, 运动统计分析, 编辑规划标准, 分析试验结果.

    当然你也可以用企业级的客户端/服务器数据库来做同样的事情. 在这种情况下使用SQLite的好处是: SQLite的部署更为简单并且结果数据库是一个单独的文件, 你可以把它存储在软盘或者优盘或者直接通过email发给同事.

  • 在Demo或测试版的时候作为企业级数据库的替代品

    如果你正在编写一个使用企业级数据库引擎的客户端程序, 使用一个允许你连接不同SQL数据库引擎的通用型数据库后台将是很有意义的. 其更大的意义在于将SQLite数据库引擎静态的连接到客户端程序当中,从而内嵌SQLite作为混合的数据库支持. 这样客户端程序就可以使用SQLite数据库文件做独立的测试或者验证.

  • 数据库教学

    因为SQLite的安装和使用非常的简单(安装过程几乎忽略不计, 只需要拷贝SQLite源代码或sqlite.exe可执行文件到目标主机, 然后直接运行就可以) 所以它非常适合用来讲解SQL语句. 同学们可以非常简单的创建他们喜欢的数据库, 然后通过电子邮件发给老师批注或打分. 对于那些感兴趣怎样实现一个关系型数据库管理系统(RDBMS)的高层次的学生, 按照模块化设计且拥有很好的注释和文档的SQLite源代码, 将为他们打下良好的基础. 这并不是说SQLite就是如何实现其他数据库引擎的精确模型, 但是很适合学生们了解SQLite是如何快速工作的, 从而掌握其他数据库系统的设计实现原则.

  • 试验SQL语言的扩展

    SQLite简单且模块化的设计使得它可以成为一个用来测试数据库语言特性或新想法的优秀的原型平台.

不适用场景

  • 客户端/服务器程序

     

    如果你有许多的客户端程序要通过网络访问一个共享的数据库, 你应当考虑用一个客户端/服务器数据库来替代SQLite. SQLite可以通过网络文件系统工作, 但是因为和大多数网络文件系统都存在延时, 因此执行效率不会很高. 此外大多数网络文件系统在实现文件逻辑锁的方面都存在着bug(包括Unix 和windows). 如果文件锁没有正常的工作, 就可能出现在同一时间两个或更多的客户端程序更改同一个数据库的同一部分, 从而导致数据库出错. 因为这些问题是文件系统执行的时候本质上存在的bug, 因此SQLite没有办法避免它们.

    好的经验告诉我们, 应该避免在许多计算机需要通过一个网络文件系统同时访问同一个数据库的情况下使用SQLite.

  • 高流量网站

    SQLite通常情况下用作一个网站的后台数据库可以很好的工作. 但是如果你的网站的访问量大到你开始考虑采取分布式的数据库部署, 那么你应当毫不犹豫的考虑用一个企业级的客户端/服务器数据库来替代SQLite.

  • 超大的数据集

    当你在SQLite中开始一个事务处理的时候(事务处理会在任何写操作发生之前产生, 而不是必须要显示的调用BEGIN...COMMIT), 数据库引擎将不得不分配一小块脏页(文件缓冲页面)来帮助它自己管理回滚操作. 每1MB的数据库文件SQLite需要256字节. 对于小型的数据库这些空间不算什么, 但是当数据库增长到数十亿字节的时候, 缓冲页面的尺寸就会相当的大了. 如果你需要存储或修改几十GB的数据, 你应该考虑用其他的数据库引擎.

  • 高并发访问

    SQLite对于整个数据库文件进行读取/写入锁定. 这意味着如果任何进程读取了数据库中的某一部分, 其他所有进程都不能再对该数据库的任何部分进行写入操作. 同样的, 如果任何一个进程在对数据库进行写入操作, 其他所有进程都不能再读取该数据库的任何部分. 对于大多数情况这不算是什么问题. 在这些情况下每个程序使用数据库的时间都很短暂, 并且不会独占, 这样锁定至多会存在十几毫秒. 但是如果有些程序需要高并发, 那么这些程序就需要寻找其他的解决方案了.

 

0
8
分享到:
评论

相关推荐

    SqlLite使用说明文档

    SqlLite作为一款轻量级的数据库管理系统,具有独特的优点,适用于各种不同的应用场景。通过对SqlLite的基本操作和高级特性的详细介绍,我们可以更全面地了解这款数据库系统的功能和优势。无论是在桌面应用还是移动...

    SQLLITE的查询优化

    ### SQLLITE的查询优化 在使用SQLite的过程中,我们往往会遇到查询性能问题,尤其是在处理大量数据时。本文将深入探讨一些提高SQLite查询效率的方法和技术,包括但不限于查询转换、索引利用以及减少不必要的计算等...

    sqllite3解压即可使用

    这个“sqllite3解压即可使用”的压缩包包含了一个SQLite3的可执行文件sqlite3.exe,这意味着用户可以直接运行这个文件来与SQLite3数据库进行交互,无需复杂的安装过程。 SQLite3的主要特点包括: 1. **轻量级**:...

    sqllite管理工具

    在描述中提到的“sqllite管理工具,很好用,本人正在使用”,这表明这个管理工具具有良好的易用性和实用性,能够满足用户日常对SQLite数据库的各种操作需求,如查询、插入、更新和删除数据,创建表结构,执行事务...

    SQLLite全国各个省市数据

    在本场景中,"SQLLite全国各个省市数据"是一个包含中国所有省份和城市信息的SQLite数据库文件,名为`city.db`。这个数据库通常用于存储地理、行政区域等与行政区划相关的信息,方便进行地理位置查询、统计分析或者与...

    Sqllite查询分析器.zip

    SQLite是一款轻量级的数据库系统,它不需要独立的服务器进程,可以直接嵌入到应用程序中,适用于移动设备、嵌入式系统以及桌面应用等多种场景。 在SQLite查询分析器中,你可以选择SQLite的.db数据库文件,进行连接...

    Android sqllite3 基础入门

    - **编码方式**:适用于实际的应用开发场景。Android提供了`Context`类的`openOrCreateDatabase()`方法来创建数据库。示例如下: ```java SQLiteDatabase db = context.openOrCreateDatabase("friends", Context....

    sqlLite.rar

    本压缩包“sqlLite.rar”提供的是SQLite的安装程序,包括32位和64位版本,适用于不同操作系统环境。 SQLite工具主要包括以下几个方面: 1. 数据库引擎:SQLite的核心是其数据库引擎,这是一个C语言编写的库,可以...

    VC2008编译sqllite为lib

    在本文中,我们将深入探讨如何使用Microsoft Visual C++ 2008(VC2008)编译SQLite源码,将其转化为适用于Windows平台的静态库(lib文件)。SQLite是一款轻量级的嵌入式数据库引擎,广泛应用于各种桌面和移动应用...

    sqlLite数据库

    9. **扩展性强**:SQLite允许用户通过VFS(Virtual File System)接口扩展其文件系统功能,满足特定场景的需求。 10. **嵌入式**:SQLite是为嵌入式环境设计的,适用于需要本地存储的应用,如移动应用、物联网设备...

    SqlLite3.exe下载

    SQLite3.exe在此场景中的作用是,SVN可能在本地存储了一些状态信息在SQLite数据库中,这些信息可能由于异常情况而损坏或不完整。通过使用SQLite3.exe,你可以直接与这些数据库交互,进行检查、修复或删除可能导致...

    sqllite 简单使用

    总结来说,SQLite是一个强大的、轻量级的数据库系统,适用于各种规模的应用场景。它提供的SQL接口和丰富的功能使得数据管理变得简单而高效。无论是用于学习SQL基础知识,还是开发实际项目,SQLite都是一个不可多得的...

    sqllite3_Sqllite3C++_hidexcj_

    - 单机应用:SQLite3 适用于不需要多用户同时访问的桌面应用,例如个人财务管理软件、小型数据库管理工具等。 - 移动应用:在 Android 和 iOS 开发中,SQLite3 经常作为本地数据存储解决方案。 - 测试和原型开发...

    sqllite-winfrom.zip

    标题 "sqllite-winfrom.zip" 提供了一个关于SQLite数据库集成到Windows Forms应用程序的场景。这个压缩包包含了一些关键文件,表明它是一个.NET Framework(可能是ASP.NET)项目,用于演示或教学如何在C#环境下使用...

    sqlite-tools-win32-x86-3360000.zip(sqllite安装包)

    - `sqlite3cli.exe`:与`sqlite3.exe`类似,但没有图形用户界面,适用于纯文本环境。 - `shell.c` 和其他源代码文件:这些是SQLite命令行工具的源代码,供开发者查看和编译自定义版本。 3. 安装与使用: - 解...

    sqllite数据库

    SQLite是一款轻量级的、开源的、自包含的数据库...总的来说,SQLite是一个强大且灵活的数据库解决方案,适用于多种环境和需求。无论是在开发阶段还是生产环境中,了解和掌握SQLite的基本用法和特性都是非常有价值的。

    C# SQlLite 源码

    C#结合SQLite是一个常见的选择,因为SQLite是一个轻量级、自包含的SQL数据库引擎,适用于各种应用场景,尤其是那些需要便携式或嵌入式数据库的项目。在这个“C# SQLite 源码”中,我们很可能是得到了一个Windows ...

    008_SQLLite.rar

    在QT5.9中,SQLite的使用不仅简化了数据库操作,还提供了丰富的API和强大的功能,适用于桌面应用、移动应用等多种场景。结合QT的图形用户界面,开发者可以轻松构建带有数据库功能的应用程序,而无需深入理解底层...

    条码重复检查工具,基于C#和SqlLite3

    条码重复检查工具是一种实用程序,用于确保条形码的唯一性,防止在库存管理、商品追踪或数据输入等场景中出现错误。本工具是用C#编程语言开发的,并利用了Sqlite3轻量级数据库引擎来存储和查询条码信息。C#是微软...

    高级软件人才培训专家-day06-数据库-MySQL(1)

    - **适用场景**:适用于资金充足的企业。 #### 4.2 MySQL - **特点**: - 开源且免费。 - 支持多个版本:社区版(免费)、商业版(收费)。 - **适用场景**:广泛应用于互联网企业。 #### 4.3 SQL Server - **...

Global site tag (gtag.js) - Google Analytics