我已经知道SQLite很长一段时间了,我知道它很快,但是我从来没有在生产服务器上试过它。 我从来没有能够find一个可靠的估计,可以处理多less交通失败之前。
有没有人有任何数字或文章呢?
不幸的是,我还没有任何关于加载能力的数据,但是对于一些性能限制因素有一些评论:
SQLite的速度受到磁盘运行速度以及是否有大量插入/更新(即写访问)的影响。 写入locking受到磁盘旋转速度的限制
事务是默认启动的,但是如果您启动并提交事务,则会获得更好的性能。 以编程方式处理事务时,我的插入速度非常快
如果你通常只是阅读数据,那么你的经验就会得到很好的performance。 因此,SQLite可以用作caching系统来存储数据库服务器的读取,特别是远程的或者复杂的查询。
它使用比数据库服务器更less的资源,因此这会影响网站的性能,为Web服务器和应用程序代码释放更多的资源
如果你需要一些并发的写操作,那么数据库服务器(例如MySQL,Postgres)可能会更好地为你服务
Devrim表示,SQLite网站每天约有10万用户应该没事。 Trac系统需要写入,所以在这种情况下,性能可能会变慢
我有一些要添加到这些好的答案。
当前版本的SQLite具有WAL (预写式日志logging),以便读取和写入可以同时进行。 所以在前面的答案中提到的传统的单一作者限制已经不存在了。 我还没有看到WAL在生产,所以我不能评论它的规模。
如果您的SQLite数据库只读(或批量更新)并且适合RAM(您的操作系统有足够的备用RAM来保存在缓冲区中),那么它可以在生产Web应用程序中很好地扩展。 我个人非常怀疑它的性能,可扩展性和坚固性,但是现在在生产九个月之后,它已经certificate能够很好地运行系统中最复杂的部分 。
Sqlite非常适合embedded到应用程序中,这就是它的devise目的,但它绝对不是“非常快”。 我把它用于我自己的几个应用程序,纯粹是为了方便只有两个文件可以复制到另一台机器上,以提供一个完整的工作应用程序。 针对MySQL的testing,使用相同的结构,索引等,显示Sqlite相当慢,即使对于小型数据库。 我希望随着数据库大小的增长性能差异会增大,但我不能肯定地说,因为我只用它与小于100MB的数据库。
我认为sqlite只比text / xml文件快(如果你尝试过,你可能会感到惊讶)。 而且它不支持并发性,如果你想创build一个内部网站,在那里人们注册他们的工作时间或使用trac票务它可能会很好。 除此之外,应该避免和取代mysql或couchdb。
sqlite的网站说,每天10万用户应该没问题,但我非常怀疑,因为一个简单的trac项目被10卡的办公室使用卡住了很多。
Sqlite不是传统的客户端/服务器数据库应用程序。 它本质上是embedded在另一个应用程序中的库。 它专为单用户桌面应用程序而devise。 你绝对不想在多用户环境中尝试使用它作为某种独立的MySQL / PostgreSQL / MS-SQLreplace,因为整个DB在写入时被locking。 即使轻负载也会导致争用问题,从而破坏性能。