· 命令行数据集分析工具
当然你也可以用企业级的客户端/服务器来做同样的事情. 在这种情况下使用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对于整个文件进行读取/写入锁定. 这意味着如果任何进程读取了中的某一部分, 其他所有进程都不能再对该的任何部分进行写入操作. 同样的, 如果任何一个进程在对进行写入操作, 其他所有进程都不能再读取该的任何部分. 对于大多数情况这不算是什么问题. 在这些情况下每个程序使用的时间都很短暂, 并且不会独占, 这样锁定至多会存在十几毫秒. 但是如果有些程序需要高并发, 那么这些程序就需要寻找其他的解决方案了.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-34364-5.html
就是容许这些女青年带着自己父母
美国害的伊拉克还不够惨吗