问题描述
|
目前,我们在rails上的生产数据库中使用了postgresql,这是一个很棒的数据库,但是我正在围绕sqlite构建应用程序的新版本。实际上,我们不使用Postgres的高级功能,例如全文搜索或PL / sql。考虑到sqlite,我喜欢这样的想法:仅使用一个文件移动数据库,将其简单地集成到服务器和Rails中,并且性能似乎非常好-> Benchmark
我们应用程序的流量相对较高,每天大约有1200万次浏览。因此,我们从数据库中进行了大量读取,但我们进行了一些写入操作。
你对那个怎么想的 ?任何使用或尝试(像我们一样)将sqlite用作生产数据库的人的反馈?
解决方法
如果您进行大量读取而很少写入,则将SQLite与某种内存中缓存机制结合使用(memcache或redis确实很适合此功能)。这将有助于最大程度地减少对数据库的访问(读取)次数。这种方法在任何情况下都很少写的环境上有所帮助,并且有助于避免SQLite的不足-在您的特定情况下。
,SQLite是为嵌入式系统设计的。单个用户可以很好地工作,但是不能很好地处理并发请求。每天120万的观看次数可能意味着您将获得大量的观看次数。
,我认为从理论上讲,仅执行读取操作可以比进程外数据库服务器更快,因为您不必将数据序列化到内存或网络流(所有这些数据都在进程内访问)。实际上,RDBMS可能更快。例如,MySQL具有相当好的查询缓存功能,对于某些查询,这可能会有所改进,因为您的所有Rails进程都将使用相同的缓存。使用sqllite,它们将不共享缓存。