- 浏览: 178348 次
- 来自: ...
文章分类
最新评论
-
fsword:
同事拿着试了一下,说是把第五步放到第二步之前就可以了
在windows下安装ruby1.9.2,rails3.0.3和DevKit--转 -
dothwinds:
[flash=200,200][/flash][url][/u ...
打包ruby or rails成exe(英文)
<script></script>标签:
知识/探索 |
SQLite不同于其他大部分的SQL数据库引擎,因为它的首要设计目标就是简单化:
- 易于管理
- 易于使用
- 易于嵌入其他大型程序
- 易于维护和配置
许多人喜欢SQLite因为它的小巧和快速. 但是这些特性只是它的部分优点, 使用者还会发现SQLite是非常稳定的. 出色的稳定性源于它的简单, 越简单就越不容易出错. 除了上述的简单、小巧和稳定性外, 最重要的在于SQLite力争做到简单化.
简单化在一个数据库引擎中可以说是一个优点, 但也可能是个缺点, 主要决定于你想要做什么. 为了达到简单化, SQLite省略了一些人们认为比较有用的特性, 例如高并发性、严格的存取控制、 丰富的内置功能、 存储过程、复杂的SQL语言特性、 XML以及Java的扩展, 超大的万亿级别的数据测量等等. 如果你需要使用上述的这些特性并且不介意它们的复杂性, 那么SQLite也许就不适合你了. SQLite没有打算作为一个企业级的数据库引擎, 也并不打算和Oracle或者PostgreSQL竞争.
仅凭经验来说SQLite适用于以下场合: 当你更看中简单的管理、使用和维护数据库, 而不是那些企业级数据库提供的不计其数的复杂功能的时候,使用SQLite是一个比较明智的选择. 事实也证明, 人们在许多情况下已经清楚的认识到简单就是最好的选择.
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简单且模块化的设计使得它可以成为一个用来测试数据库语言特性或新想法的优秀的原型平台.
哪些场合适合使用其他的关系型数据库管理系统(RDBMS)
-
客户端/服务器程序
如果你有许多的客户端程序要通过网络访问一个共享的数据库, 你应当考虑用一个客户端/服务器数据库来替代SQLite. SQLite可以通过网络文件系统工作, 但是因为和大多数网络文件系统都存在延时, 因此执行效率不会很高. 此外大多数网络文件系统在实现文件逻辑锁的方面都存在着bug(包括Unix 和windows). 如果文件锁没有正常的工作, 就可能出现在同一时间两个或更多的客户端程序更改同一个数据库的同一部分, 从而导致数据库出错. 因为这些问题是文件系统执行的时候本质上存在的bug, 因此SQLite没有办法避免它们.
好的经验告诉我们, 应该避免在许多计算机需要通过一个网络文件系统同时访问同一个数据库的情况下使用SQLite.
-
高流量网站
SQLite通常情况下用作一个网站的后台数据库可以很好的工作. 但是如果你的网站的访问量大到你开始考虑采取分布式的数据库部署, 那么你应当毫不犹豫的考虑用一个企业级的客户端/服务器数据库来替代SQLite.
-
超大的数据集
当你在SQLite中开始一个事务处理的时候(事务处理会在任何写操作发生之前产生, 而不是必须要显示的调用BEGIN...COMMIT), 数据库引擎将不得不分配一小块脏页(文件缓冲页面)来帮助它自己管理回滚操作. 每1MB的数据库文件SQLite需要256字节. 对于小型的数据库这些空间不算什么, 但是当数据库增长到数十亿字节的时候, 缓冲页面的尺寸就会相当的大了. 如果你需要存储或修改几十GB的数据, 你应该考虑用其他的数据库引擎.
-
高并发访问
SQLite对于整个数据库文件进行读取/写入锁定. 这意味着如果任何进程读取了数据库中的某一部分, 其他所有进程都不能再对该数据库的任何部分进行写入操作. 同样的, 如果任何一个进程在对数据库进行写入操作, 其他所有进程都不能再读取该数据库的任何部分. 对于大多数情况这不算是什么问题. 在这些情况下每个程序使用数据库的时间都很短暂, 并且不会独占, 这样锁定至多会存在十几毫秒. 但是如果有些程序需要高并发, 那么这些程序就需要寻找其他的解决方案了.
发表评论
-
DBDesigner使用笔记 --转,改
2011-08-18 10:26 1417DBDesigner使用笔记 表格之间的关系 ... -
DBDesigner4连接mysql出错的处理
2011-08-18 10:12 1345DBDesigner自mysql4.0之后没有更新对新版mys ... -
数据库设计经验谈-- 转
2011-08-01 17:42 773一个成功的管理系统,是由:[50% 的业务 + 50% ... -
两个数据库设计实例--转
2011-08-01 16:58 4324(注:摘自 http://blog. ... -
数据库设计三大范式应用实例剖析--转
2011-08-01 13:04 862引言 数据库的设计范式是数据库设计所需要满足的规范,满 ... -
SQLite Foreign Key Support --sqlite3.6.19--from sqlite.org
2011-07-30 12:30 1419Table Of Contents 1. Intro ... -
sqlite3 --sql命令简单介绍(zt)--转
2011-04-23 22:46 1712sqlite3 --sql命 ... -
SQLite3 C/C++ 开发接口简介(API函数)1(zt)--转
2011-04-23 22:44 1138SQLite3 C/C++ 开发接 ... -
SQLite3 C/C++ 开发接口简介(API函数) 二(zt)--转
2011-04-23 22:43 1431SQLite3 C/C++ 开发接口简介(API函数 ... -
SQLite的体系结构简介(zt)--转
2011-04-23 22:39 1081SQLite的体系结构简 ... -
SQLite 第三版总览(简介)--转
2011-04-23 22:38 1307SQLite 第三版总览 SQLite 第三版主要 ... -
董淳光SQLITE3 使用总结(1)--转
2011-04-23 22:36 1009董淳光SQLITE3 使用总结(1) 转载 ... -
董淳光SQLITE3 使用总结(2)--转
2011-04-23 22:34 1329董淳光SQLITE3 使用 ... -
董淳光SQLITE3 使用总结(3)-转
2011-04-23 22:30 1008董淳光SQLITE3 使用总结(3) 转载 ... -
董淳光SQLITE3 使用总结(4)--转
2011-04-23 22:26 1204董淳光SQLITE3 使用总结(4) 转载 ... -
董淳光SQLITE3 使用总结(5)--转
2011-04-23 22:17 1437董淳光SQLITE3 使用总结(5) 转载 ... -
SQLite中如何用触发器执行取消和重做逻辑--转
2011-04-23 22:14 2033SQLite中如何用触发器执行取消和重做逻辑 转载 ... -
Oracle 常用函数
2008-12-04 12:08 755SQL中的单记录函数 1.ASCII 返回与指定的字符对应 ...
相关推荐
而MySQL则是一款广泛应用的关系型数据库管理系统,适用于大型项目,具备高性能、高可用性和可扩展性。当从SQLite过渡到MySQL时,`sqlite3-to-mysql`库提供了一种便捷的解决方案。 首先,`sqlite3-to-mysql`库的核心...
这个压缩包内包含了一个可执行文件"SQLiteStudio-3.4.4-windows-x64-installer.exe",它是SQLiteStudio的安装程序,适用于64位的Windows操作系统。 首先,解压"SQLiteStudio-3.4.4-windows-x64-installer.zip"。你...
2. sqlite-netFx46-setup-bundle-x86-2015-1.0.98.0.exe:这是一个32位版本的SQLite安装包,适用于32位操作系统的.NET Framework 4.6环境,同样版本号为1.0.98.0,发布于2015年。 使用这两个安装程序,开发者可以...
sqlite-netFx40-setup-bundle-x86-2010-1.0.113.0.exe
sqlite-netFx40-setup-bundle-x64-2010-1.0.113.0
这个标题"sqlite-netFx451-setup-bundle-x86-2013"表明这是一款专为.NET Framework 4.5.1和Visual Studio 2013设计的SQLite集成包,适用于32位(x86)平台。"1.0.105.2"是该驱动程序的版本号,表示这是该驱动的某个...
sqlite-netFx46-setup-bundle-x64-2015-1.0.104.0
"sqlite-netFx451-setup-bundle-x86-2013-1.0.105.2.exe" 是一个针对VS2013的SQLite安装包,适用于x86架构的Windows系统,版本号为1.0.105.2。 1. **SQLite 介绍**: - SQLite是一个自包含、无服务器、零配置、...
标题中的"sqlite-netFx451-static-binary-bundle-x64-2013-1.0.112.0.zip"表明这是一个针对.NET Framework 4.5.1、64位(x64)平台的SQLite静态二进制捆绑包,版本号为1.0.112.0。SQLite是一款开源的关系型数据库管理...
"sqlite-netFx40-setup-bundle-x86-2010-1.0.109.0" 是 SQLite 的一个特定版本,专为 .NET Framework 4.0 平台设计,并且是针对 32 位(x86)系统的安装包。 该安装包的版本号 "1.0.109.0" 表示这是 SQLite 客户端...
支持sqlite 数据块加密解密插件。解压文件,将里面的SQLite.Interop.dll拷贝到SQLiteExpert的安装目录然后启动SQLiteExpert,Tools->Options->SQLite library,选择带SQLite.Interop.dll的项即可。
标题中的"sqlite-netFx40-binary-Win32_2010-1.0.94.0.zip"指的是SQLite数据库的一个特定版本,适用于.NET Framework 4.0环境,面向Windows 32位操作系统,版本号为1.0.94.0。这个压缩包是为了解决在开发或运行过程...
sqlite-netFx46-setup-bundle-x86-2015-1.0.109.0.exe 包含vs插件好使
"sqlite-netFx40-setup-bundle-x86-2010-1.0.82.0" 这个标题揭示了这个安装包是针对.NET Framework 4.0 平台,32位(x86)系统的SQLite 安装包,版本号为1.0.82.0。 这个安装包的主要功能包括: 1. **SQLite数据库...
赠送jar包:sqlite-jdbc-3.15.1.jar; 赠送原API文档:sqlite-jdbc-3.15.1-javadoc.jar; 赠送源代码:sqlite-jdbc-3.15.1-sources.jar; 赠送Maven依赖信息文件:sqlite-jdbc-3.15.1.pom; 包含翻译后的API文档:...
sqlite-netFx46-setup-bundle-x64-2015-1.0.108.0, 安装版
`sqlite-netFx40-2010.rar`这个压缩包提供了针对.NET Framework 4.0的SQLite连接支持,特别考虑了32位(x86)和64位(x64)系统的兼容性。 SQLite的引入使得开发者能够在.NET环境中轻松地进行数据库操作。在.NET中...
标题中的"sqlite-netFx40-static-binary-x64-2010-1.0.112.0.zip"揭示了这个压缩包是SQLite针对.NET Framework 4.0平台的静态编译版本,适用于64位操作系统。这里的“static”意味着它包含了所有必要的依赖,使得...
标题中的"sqlite-netFx46-binary-x64-2015-1.0.113.0.zip"表明这是一个针对.NET Framework 4.6平台的SQLite数据库引擎的64位版本,版本号为1.0.113.0。SQLite是一个开源的、自包含的、无服务器的、零配置的、事务性...
用于.net 4 ,使用SQLite做嵌入式数据库