新手问题 SQLite 是否适合 Production 环境

luffycn · 2014年12月22日 · 最后由 saiga 回复于 2014年12月23日 · 3891 次阅读

sqlite 实在是太方便了, 只是不知道是否适合 production,如果直接用在 production 会有什么弊端?

没什么大影响,就是并发性能不高而已。用户多了,就顶不住了。

曾经听说过在团购千团大战的时候,很多团购网站就是跑在 sqlite 上的,然后就没有然后了。 等等不要误解我的意思,如果你用 sqlite 并且持续优化,依然跑到顶不住的时候,说不定你离成功不远了。

找个测试,用瞬间并发的方式测试,并发数量=2 的时候,就挂了。

#3 楼 @as181920 会挂么?DHH 的个人 Blog 多年跑在一个基于 sqlite 的 rails 上,且 sqlite3 至今都是 rails 的 default database.

并发访问和并发数据库读写不是一回事,并发写的时候,sqlite 基于文件锁也不会让应用挂掉,所以你说的并发数量 =2 就挂了,是什么情况?

关于的并发和负载方面,这里有一篇文章回答所有质疑 http://charlesleifer.com/blog/sqlite-small-fast-reliable-choose-any-three-/

#5 楼 @lgn21st 奶爸分享很赞 :plus1:

sqlite 经常用在 production 上吧 (我指的是客户端)

@luikore 你是指 android? @as181920 我也想了解下具体情况

可以,看你应用类型,mobile 客户端基本都用 sqlite,有些论坛还用文本文件。

@debugger mobile 经常用 SQLITE。这个是常用的配套,就像是 服务端经常用 mysql/pg/mongo 一样。我的问题是服务端用 sqlite 可能出现的情况,是否有弊端之类的,如果到时想切换到 mysql/pg/mmongo 等,是否能无縫切换

#10 楼 @luffycn 非常不建议用在生产环境,之前的经验告诉我,并发一大就会导致挂起。虽然有 ActiveRecord, 它们之们还是会有细微的区别,所以迁移也可能会有额外的工作量。

总之,不如直接使用 pg 或 mysql 来开发布署。

并发写不多的话,每月几十万 pv 还是撑得住的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号