微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLite的可扩展性如何?

我最近阅读这个问题关于 SQLite vs MySQL和答案指出,sqlite不能很好地缩放和官方网站 sort-of confirms this,但是。

sqlite的可扩展性以及它的最高限制是什么?

昨天我发布了一个小网站*来跟踪您的代表,为所有访问者使用共享的sqlite数据库。不幸的是,即使有适度的负载,它放在我的主机,它运行相当缓慢。这是因为每次有人查看页面时,整个数据库都被锁定,因为它包含更新/插入。我很快就切换到MysqL,虽然我没有太多时间来测试它,它似乎比sqlite可扩展性。我只记得慢页面加载,偶尔得到一个数据库锁定的错误时,试图执行从sqlite的shell查询。也就是说,我从sqlite运行另一个网站很好。区别是网站是静态的(即我是唯一可以更改数据库的网站),因此它适用于并发读取。道德的故事:只使用sqlite的网站,其中数据库的更新很少(少于每个页面加载)。

编辑:我只是意识到,我可能不公平的sqlite – 我没有索引sqlite数据库中的任何列,当我从网页上提供它。这部分导致了我经历的减速。然而,数据库锁定的观察 – 如果你有特别繁重的更新,sqlite性能将不匹配MysqL或Postgres。

一个编辑:自从我发布了这差不多3个月前,我有机会密切检查sqlite的可扩展性,有一些技巧,它可以是相当可扩展。正如我在我的第一次编辑中提到的,数据库索引大大减少了查询时间,但这是更多的关于数据库的一般观察,而不是关于sqlite。但是,还有另一个技巧可以用来加速sqlite:transactions.每当你必须做多个数据库写入,将它们放在一个事务中。而不是每次发出写入查询时写入(和锁定)文件,写入只会在事务完成时发生一次。

我提到我在第一段中发布的网站已经切换回sqlite,它运行相当顺利,一旦我在几个地方调整我的代码

*该网站已不再可用

原文地址:https://www.jb51.cc/sqlite/198507.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐