我是否过度工程(跳鲨鱼,可以这么说)这个应用程序?

时间:2010-10-14 13:30:37

标签: content-management-system

我的任务是从头开始使用CMS /引擎和admin / backend为我工作的公司提供网站。

我们所做的将被归类为“非常独特”(但并非每个人的情况都是如此?)而且我正在研究如何从一些非常痛苦的东西转向更好的系统。

我们当前的系统提供文章,图库,自定义数据(每日更新)和来自结构化格式的供稿数据(如天气信息),以及为我们的会员提供论坛等。

我希望从我们的核心应用程序中移出一些东西,一个论坛,但大多数其他东西将从头开始重建。目前一切都存储在一个MySQL数据库中,其历史很差(当我承担项目加载时间约为60秒每页,并且在取出愚蠢的数据库调用和模型设计之后,已经每页减少到可接受的0.2 / 0.3秒。)

它自己的网站是用Rails构建的,并不打算改变它,但我现在正在看的是它是否理想的是查看其他数据库解决方案而不是像MySQL这样的传统RDBMS。

考虑到我们的大多数内容都是结构化新闻项目(例如,具有多个属性的新闻项目,然后我称之为'块'的不同内容 - 文本,视频嵌入,图像,引号等),画廊(文本和图像)我想知道使用像MongoDB这样的面向文档的数据库是否理想。

在性能方面,我觉得它可以与设计良好的MySQL系统相媲美,并且考虑到网站将被大量缓存(在页面中使用ESI进行动态块的Varnish),DB时间不是一个很大的因素。

这个项目的另一个方面是我们希望它是多租户的,因为我们可以托管不同的网站(例如相同的类型(基本数据格式等)但是不同的主题) - 并且它需要灵活的网站管理员/所有者自己设置新事物(即创建新站点时,我不必设置一个全新的站点/服务器并进行代码更改等)。

我想知道我是否过度思考这个问题,或者我可能会因为对所有这些事情的“预期”而变得吝啬。

我的问题,归结为:我是否应该考虑MongoDB或类似的东西,它们似乎不适合标准的DB表格格式,或者我是在追逐新的和有光泽的东西?

对不起,如果这是非常漫不经心......

2 个答案:

答案 0 :(得分:1)

是的,你是。

我现在正在做类似的CMS类型网站,我对使用哪个数据库做出了同样的决定。

我的结论基本上是坚持我所知道的:PHP和mySQL / Postgres。是的,Mongo或其他noSQL可能更适合数据,但是我需要时间来学习如何安装和使用它们,坦率地说,除非你有大量的流量,否则mySQL / Postgres不会导致性能问题。如果你保留你的数据库代码,那么你可以在以后根据需要放入Mongo /

正如BarsMonster所说,前端良好的HTML缓存方案将大大减少您的数据库使用量。如果需要,请使用memcached。

保持简单,使用您知道的工具并发货。

答案 1 :(得分:0)

您的表现目标是什么?通过适当的缓存,快速前端+ MySQL可以毫无问题地每秒提供200-400个请求(每个请求<0.01秒)。

如果您使用繁重的框架和垃圾代码,无论底层存储有多快,您每秒都会收到5个请求。

所以我的建议 - 使用EASIER并编写正确的代码,避免使用繁重的框架。