我不知道这是多么权威,但我发现了这个:
http://www.sqlite.org/cvstrac/wiki?p=PerformanceConsiderations
与sqlite有很多连接似乎并不好.这似乎对Web和大多数具有多个用户的应用程序都不利.我很难想到当你不需要那么多连接时会使用什么sqlite.我能想到的每个程序都需要用户,有时需要很多,所以我使用数据库会不会允许那么多连接?我考虑过原型,但为什么我可以在连接到更大的数据库时使用它?嵌入式应用可能?
谢谢.
编辑:谢谢大家.我看下面推荐的页面,但对某些事情感到困惑:
在sqlite的适当用途下,它具有:
SQLite运行良好的情况
•网站
SQLite通常可以作为中低流量网站的数据库引擎(也就是所有网站的99.9%).当然,SQLite可以处理的Web流量大小取决于网站使用其数据库的程度.一般来说,每天点击次数少于100K的网站应该可以正常使用SQLite.100K点击/天的数字是一个保守估计,而不是一个硬上限.SQLite已被证明可以使用10倍的流量.
另一个RDBMS可以更好地工作的情况
•客户/服务器应用程序
如果您有许多客户端程序通过网络访问公共数据库,则应考虑使用客户端/服务器数据库引擎而不是SQLite.SQLite将在网络文件系统上运行,但由于与大多数网络文件系统相关的延迟,性能不会很好.此外,许多网络文件系统实现的文件锁定逻辑包含错误(在Unix和Windows上).如果文件锁定不能正常工作,则两个或多个客户端程序可能同时修改同一数据库的同一部分,从而导致数据库损坏.由于此问题是由底层文件系统实现中的错误引起的,因此SQLite无法阻止它.
一个好的经验法则是,在通过网络文件系统从多台计算机同时访问同一数据库的情况下,应避免使用SQLite.
问题:
我将在这里展示我的无知,但这两者之间的区别是什么?
这对于您无法访问"真实"数据库并且仍然需要关系数据库的强大功能的情况很有用.例如,Firefox在SQLite数据库中存储了大量有关您的设置/历史/等的信息.你不能指望运行firefox的每个人都在他们的机器上安装MySQL或postgre.
它也完全能够运行相对较低的流量,阅读量很大的网站.它的表现总体上非常好,它超过了大多数网站所需的流量水平.
这是由sqlite本身很好地解决的:适当使用sqlite
Another way to look at SQLite is this: SQLite is not designed to replace Oracle. It is designed to replace fopen().
我还发现使用SQLite可以很快地将原型应用程序放在一起,而不会产生单独的数据库服务器或者使用MySQL/Oracle/Whatever实例阻碍开发环境的开销.
如果需要,还可以轻松地将数据库拾取并移动到其他计算机.
它通常用于嵌入式应用程序.
当您无法访问数据库服务时,使用像存储这样的数据库非常方便.因此使用SQLite,因为它只是存储在某处的文件.