如何处理200万种产品

时间:2011-01-26 20:29:45

标签: mysql magento e-commerce oscommerce

我在一家网络公司工作,目前我们使用经过高度修改的OSCommerce版本作为我们的主要电子商务应用程序,但最近我们已经接触过许多公司,他们希望在线销售超过200万种个人产品型号。

基本上我的问题是 - 是否有任何预先构建的PHP / MySQL购物应用程序可以优雅地处理这么多产品,或者我在这方面运气不好?我是否需要创建自定义应用?我有什么选择?

nosql数据库会比MySQL好吗?

7 个答案:

答案 0 :(得分:3)

  

基本上我的问题是 - 是否有任何预先构建的PHP / MySQL购物应用程序可以优雅地处理这么多产品

没有。如果这些拥有2,000,000种产品的公司将使用它。

  

我是否需要创建自定义应用?

你已经拥有了。您开始使用OS Commerce作为基础并在其上构建自定义应用程序。你可能不认为它是一个应用程序,但确实如此。

  

我有什么选择?

接受你需要一个体面的IT /开发团队来追逐这项工作,并评估这项新业务后的成本和研发是否值得。

  

nosql数据库会比MySQL好吗?

没有。但MySQL数据库也不会比“nosql”数据库更好。

答案 1 :(得分:2)

你肯定想要建立一个自定义解决方案,你肯定希望收取比平常更多的费用,因为需要承担很多风险和尽职调查。

至于你的架构,使用NoSQL是可能的,并且使用NoSQL进行电子商务有一些令人信服的理由 - 主要原因是它是无模式的,如果你有大量的类别和大量的产品都需要以不同的方式出售(即您出售的电脑与出售手表的方式不同),因为产品属性不同,管理数据库的复杂性变得非常重要。

此视频将向您展示纽约市一家真正具有前瞻思维的初创企业正在做什么。他们将MongoDB用于他们的整个产品数据库。这个视频应该是一个真正的大开眼界,因为它概述了MySQL在大型电子商务网站上的许多陷阱,以及NoSQL的游戏变化潜力:

http://engineering.shopopensky.com/topics/mongodb

至于处理付款,你肯定不想在NoSQL中存储它们。将您的用户,会话和支付数据保存在MySQL中,并确保它具有高度安全性。这是关于在PHP应用程序中保护会话的一个很好的(尽管很旧):

http://www.troubleshooters.com/codecorn/php/persist.htm

请注意,最后一个链接应该可以帮助您更好地理解该理论。大多数PHP框架都支持开箱即用的这种类型的会话处理。 CodeIgniter,Yii和ZendFramework是最好的。

答案 2 :(得分:1)

您不清楚这是否是他们想销售的200万件产品或200万件个别商品的库存。无论哪种方式,传统的SQL数据库都应该能够很好地处理它,尽管这完全取决于架构的设计方式等等。尽管我听说过Magento的好消息,但我不确定预先存在的解决方案。 / p>

答案 3 :(得分:1)

为了回应Magento Enterprise的建议,我们最近为我们的网站实施了这个应用程序,该网站带有大约150,000个SKU。我们也从广泛定制的osCommerce版本迁移。由于企业系统运行速度慢以及缺乏实施文档,我们的经验一直是令人沮丧和项目延迟。由于这个原因,我们实际上无法使用大部分企业版功能。

该应用程序因缺乏文档和Varien支持团队的缓慢响应而臭名昭着,这是我们亲身经历的。模板系统似乎只是部分完整,并没有特别深思熟虑。对你的问题的响应者之一,Alan Storm,实际上是我们团队的救星,他的写得很好的教程和慷慨的stackoverflow.com答案。

我的建议是事先对Magento Enterprise平台进行广泛的研究 - 它与社区版本不同。正如Bob Brodie上面发布的那样,服务器的要求和设置并不适合胆小的人,也不便宜。调查可用的速度增强选项 - 您将需要它们,服务器开销成本,考虑学习曲线以及它将添加到项目时间线的额外时间--Magento与osCommerce有很大不同 - 最重要的是找到一个可靠,经验丰富的Web主机在您支付12,000美元的一年许可费之前。

答案 4 :(得分:0)

根据预算,Magento Enterprise可能是一个很好的解决方案。 (我不是说卖掉它,我不是合伙人)。您既可以构建解决方案,也可以让托管公司帮助您。 Rackspace是首屈一指的合作伙伴托管公司,非常善于将这些解决方案整合在一起。有很多数字可以发挥作用,例如峰值同时连接,每小时的浏览量,每小时的交易等等。你想要查看至少有2个MySQL服务器(主/从复制)和多个负载均衡器后面的前端服务器。而不是Apache,请看一下nginx。你也想看看apc& memcached用于缓存。像这样的设置将有很长的路要走。如果设置正确,Magento Enterprise可以轻松处理这么多产品。需要记住的重要一点是,不需要开发自定义解决方案 - 它需要设计

答案 5 :(得分:0)

如果有人认为这个设置可以做到,我只是好奇。 具有反向代理(可能是清漆)的magento社区和memcached作为应用程序的缓存。产品页面上没有动态内容(因为它可以在与缓存响应进行自定义交互时呈现),以将对应用程序的请求保持在绝对最小值。 使用负载均衡的nginx服务器。

您还可以将更多结构化数据库维护和优化过程作为单独的应用程序实现。

也许你可以做一些相当激进的事情,但是相当便宜(我猜那些有两百万种产品的人对你和我有不同的想法),将销售,税收和销售规则模块改为不那么灵活但更多高效。

我不知道对我来说这是最好的方式。每年支付magento EE与初始支出 夸耀表演。

答案 6 :(得分:0)

此类产品负载的最佳答案之一(顺便提一下,我们正在使用的产品负载)是https://magento.stackexchange.com/questions/459/running-magento-in-an-aws-environment

我们在Amazon Web Services beanstalk环境中运行自定义magento社区(1.9)服务器,其中包含RDS for products,redis for cache& S3 - >与Magento相关的媒体的CDN。这是早期的事情,但到目前为止我们还没有找到真正的问题。预计开发时间......也许一周左右从VPS转移到本地mysql / cache / apache / php?