我不知道这是多么权威,但我发现了这个:
http://www.sqlite.org/cvstrac/wiki?p=PerformanceConsiderations
与sqlite有很多连接似乎不太好。这似乎对Web和大多数具有多个用户的应用程序都不利。我很难想到当你不需要那么多连接时会使用什么sqlite。我能想到的每个程序都需要用户,有时需要很多,所以我使用数据库会不会允许那么多连接?我考虑过原型,但为什么我可以在连接到更大的数据库时使用它?嵌入式应用程序可能吗?
谢谢。
编辑:谢谢大家。我看下面推荐的页面,但对某些事情感到困惑:Under appropriate uses for sqlite it has:
SQLite正常运行的情况
•网站
SQLite通常可以作为中低流量网站(也就是所有网站的99.9%)的数据库引擎。当然,SQLite可以处理的Web流量大小取决于网站使用其数据库的程度。一般来说,每天点击次数少于100K的网站应该可以正常使用SQLite。 100K点击/天的数字是一个保守估计,而不是一个硬上限。 SQLite已被证明可以使用10倍的流量。
另一个RDBMS可以更好地工作的情况
•客户端/服务器应用程序
如果有许多客户端程序通过网络访问公共数据库,则应考虑使用客户端/服务器数据库引擎而不是SQLite。 SQLite将在网络文件系统上运行,但由于与大多数网络文件系统相关的延迟,性能不会很好。此外,许多网络文件系统实现的文件锁定逻辑包含错误(在Unix和Windows上)。如果文件锁定不能正常工作,则两个或多个客户端程序可能同时修改同一数据库的同一部分,从而导致数据库损坏。因为这个问题是由底层文件系统实现中的错误引起的,所以SQLite无法阻止它。
一个好的经验法则是,在通过网络文件系统从多台计算机同时访问同一数据库的情况下,应避免使用SQLite。
问题:
我将在这里展示我的无知,但这两者之间的区别是什么?
答案 0 :(得分:29)
这对于您无法访问“真实”数据库并且仍然需要关系数据库功能的情况很有用。例如,Firefox在SQLite数据库中存储了大量有关您的设置/历史/等的信息。你不能指望运行firefox的每个人都在他们的机器上安装MySQL或postgre。
它还能够运行相对较低的流量,阅读量很大的网站。它的表现总体上非常好,它超过了绝大多数网站所需的流量水平。
答案 1 :(得分:26)
sqlite本身很好地回答了这个问题:Appropriate use of sqlite
Another way to look at SQLite is this:
SQLite is not designed to replace Oracle. It is designed to replace fopen().
答案 2 :(得分:8)
我还发现使用SQLite非常适合快速地将原型应用程序放在一起,而不会产生单独的数据库服务器或者使用MySQL / Oracle / Whatever实例阻碍开发环境的开销。
如果需要,还可以轻松地将数据库提取并移动到其他计算机上。
答案 3 :(得分:7)
它通常用于嵌入式应用程序。
当您无法访问数据库服务时,使用像存储这样的数据库会非常方便。所以使用了SQLite,因为它只是一个存储在某个地方的文件。
答案 4 :(得分:3)
iPhone将其用于通话记录,短信,联系人和其他类型的数据。就像ÓlafurWaage所说的那样,对移动设备上的嵌入式应用很有用,因为它很轻巧。我也在独立应用程序中使用它。易于使用,可在大多数平台上使用。
答案 5 :(得分:3)
考虑可以使用数据库的简单客户端或桌面应用程序,例如糟糕的示例,地址簿。 sqlite不是将像mysql或postgre这样的巨大数据库引擎与您的可交付成果捆绑在一起,而是非常轻量级,并且很容易包含在您已完成的应用程序中。
答案 6 :(得分:2)
此FLOSS Weekly podcast episode与SQLite的创建者进行对话,并介绍了您将使用它的类型。从手机文件系统到小型网站的一切。
答案 7 :(得分:2)
最简单的说,SQLite是一个公共域软件包,它提供了一个 关系数据库管理系统或RDBMS。关系数据库系统是 用于在大型表中存储用户定义的记录。除了数据存储和管理, 数据库引擎可以处理组合数据的复杂查询命令 从多个表中生成报告和数据摘要。其他流行的RDBMS 产品包括Oracle数据库,IBM的DB2和Microsoft的SQL Server 商业方面,MySQL和PostgreSQL是流行的开源产品。 SQLite中的“Lite”并未引用其功能。相反,SQLite是轻量级的 当谈到设置复杂性,管理开销和资源使用时。
有关SQLite的详细信息和解决方案,请访问以下链接:
http://blog.developeronhire.com/what-is-sqlite-sqlite/
谢谢。
答案 8 :(得分:0)
以上两个答案说的是什么。稍微扩展了Chad Birch的答案,它调用SQLite数据库,以及一个相当差的sync()实现,导致FF3在linux中如此慢。