Sqlite3 vs Postgres vs Mysql - Rails

Whe*_*ord 10 mysql database sqlite postgresql ruby-on-rails

我想这已经多次提出了,但我再次提起它!无论如何......在Ruby on Rails中,Sqlite3已经设置好了,不需要额外的拾取和切片,但是......在这里和其他地方经过多次阅读之后,有人说它不具备可扩展性,而其他人则认为它实际上可以很好用.有人说MySQL对于更大的项目要好得多,而另一些人认为,只需要使用PostgreSQL.我很想听听你对此的看法.在两个场景中.您正在为新闻发布网站(例如CNN新闻)开设一个小网站,以及您正在创建类似于Twitter的网站的另一个场景?

His*_*ako 9

很大程度上取决于您的应用.

一般来说,对sqlite数据库的任何操作都很慢.即使是普通的:update_attribute或:create也可能需要0.5秒.但是,如果您的应用程序写得不多(针对 sqlite的杀手:在每次请求时写入数据库!),SQlite是大多数网络应用程序的坚实选择.它被证明可以处理中小量的流量.此外,它在开发过程中是一个非常好的选择,因为它需要零配置.它在您的测试套件中也可以通过内存模式执行得非常好(除了您有数千次迁移,因为它每次都从头开始重建).此外,如果它的性能不再足够,那么从sqlite切换到例如MySQL几乎是无缝的.

MySQL目前是一个坚如磐石的选择.未来将告诉Oracle在MySQL下会发生什么.

PostgreSQL是最快的国家之一,据我所知,但我没有在生产中使用它尚未.也许其他人可以说更多.

  • 人们普遍误解了sqlite的特性和功能.sqlite比大多数企业数据库引擎快,平均比postgresql快4倍.sqlite牺牲了复杂的功能,有利于速度和简单性.其中一个主要缺点是高流量客户端/服务器实现中的读/写并发性.当然,在开发过程中,它是一种快速,有效且低维护的选择.如果与引擎无关的sql连接模块结合使用 - 您可以使用sqlite进行开发并在测试时切换到企业数据库.见http://www.sqlite.org/whentouse.html (5认同)

vec*_*tor 5

我投票给Postgres,它一直在变得更好,尤其是表现明智,如果这是一个问题.通过CNN和Twitter的例子,您可以尽可能地站稳脚跟.以后你会很高兴.

  • @NB意见是OP所要求的. (3认同)