2011-01-26 9 views
5

Trabajo para una empresa web y actualmente utilizamos una versión altamente modificada de OSCommerce como nuestra aplicación principal de comercio electrónico, pero recientemente varias compañías nos han acercado con más de 2 millones de modelos de productos individuales que quiere vender en lineaCómo manejar 2 millones de productos

Básicamente, mi pregunta es: ¿hay alguna aplicación de compras PHP/MySQL prefabricada que pueda manejar estos productos con elegancia o no tengo suerte en ese frente? ¿Voy a necesitar crear una aplicación personalizada? ¿Cuáles son mis opciones aquí?

¿Sería una base de datos nosql mejor que MySQL?

+0

No sobre arquitecto. 2 millones parece mucho, pero cualquier combinación de base de datos/hardware decente puede manejar 2 millones de registros en una mesa sin sudar nada (suponiendo que tiene algunos índices decentes). Vea aquí re: insertando un millón de registros por día: http://forums.mysql.com/read.php?61,44239,44251#msg-44251 – jvenema

Respuesta

1

No aclara si se trata de un inventario de 2 millones de productos o 2 millones de artículos individuales que les gustaría vender. De cualquier forma, una base de datos SQL tradicional debería ser capaz de manejarlo bien, aunque esto depende completamente de cómo esté diseñado el esquema, etc. No estoy seguro de las soluciones preexistentes, aunque he escuchado cosas buenas sobre Magento.

2

Definitivamente quiere construir una solución personalizada, y definitivamente quiere cobrar mucho más de lo que normalmente lo haría porque hay mucho riesgo y se necesita diligencia debida.

En cuanto a su arquitectura, es posible utilizar NoSQL y existen razones de peso para utilizar NoSQL para el comercio electrónico: la razón principal es que no tiene esquemas y tiene muchas categorías y una tonelada de productos que todos necesitan ser vendido de manera diferente (es decir, usted vende computadoras de manera diferente a como vende relojes) porque los atributos del producto son diferentes, la administración de la complejidad de la base de datos se vuelve realmente importante.

Este video le mostrará lo que está haciendo una nueva empresa de vanguardia en Nueva York. Están usando MongoDB para toda su base de datos de productos. Este video debe ser un abridor de ojos real como se describe muchas de las trampas en MySQL para sitios grandes de comercio electrónico, y una gran parte del potencial de cambio de juego de NoSQL:

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

cuanto a manejo de pagos, que sin duda NO quiero almacenar esos en NoSQL. Mantenga sus usuarios, sesiones y datos de pago en MySQL y asegúrese de que sean altamente seguros. Aquí hay una gran (aunque de edad) en la pieza de fijación sesiones en las aplicaciones PHP:

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

Como nota, este último enlace le ayudará a entender mejor la teoría. La mayoría de los frameworks de PHP soportan este tipo de manejo de sesiones de manera inmediata. CodeIgniter, Yii y ZendFramework se encuentran entre los mejores.

+1

FWIW, 2 millones de entradas no son un gran problema para MySQL, y Creo que, en general, mantener 1 base de datos hará que su aplicación sea más sencilla de mantener a largo plazo. Personalmente, no creo que NoSQL sea un buen plan aquí. Una lectura interesante (si es un poco antigua) se puede encontrar aquí, en referencia al uso de Facebook de MySQL: http://blog.facebook.com/blog.php?post=7899307130 – jvenema

+0

¡Gracias por el enlace! –

+0

Si todo un carro de compras fuera una sola mesa llena de productos, el mundo sería un lugar mucho más simple. –

3

Básicamente mi pregunta es - ¿hay aplicaciones comerciales de PHP/MySQL precompilados que se van a manejar esta cantidad de productos con gracia

No. Si no había estas empresas con los 2.000.000 de productos que estarían utilizando .

¿Necesitaré crear una aplicación personalizada?

Ya lo has hecho. Comenzó con OS Commerce como base y creó una aplicación personalizada en la parte superior. Puede que no pienses en ello como una aplicación, pero lo es.

¿Cuáles son mis opciones aquí?

Aceptar que se necesita un decente TI/equipo de desarrollo para perseguir este trabajo, y evaluar si ese costo y R & D es la pena ir después de este nuevo negocio.

¿Sería una base de datos nosql mejor que MySQL?

No. Pero una base de datos MySQL tampoco sería mejor que una base de datos "nosql".

+0

tal vez un Oracle db sería mejor para administrar esta gran cantidad de registros – WonderLand

0

Dependiendo del presupuesto, Magento Enterprise puede ser una buena solución para usted. (No digo eso para venderlo, no soy socio). Puede diseñar la solución o hacer que una empresa de alojamiento lo ayude. Rackspace es la principal empresa de alojamiento de socios y es excelente para unir estas soluciones. Hay muchos números que entran en juego, como conexiones simultáneas máximas, páginas vistas por hora, transacciones por hora, etc. Desea buscar algo que tenga al menos 2 servidores MySQL (replicación maestro/esclavo) y múltiples servidores frontend detrás de un loadbalancer. En lugar de Apache, échale un vistazo a nginx. También querrá echar un vistazo a la apc & memcached para el almacenamiento en caché. Una configuración como esa recorrerá un largo camino. Cuando se configura correctamente, Magento Enterprise podría manejar estos muchos productos con facilidad. Lo importante que debe recordar es que no es necesario desarrollar una solución personalizada; necesitaría ser diseñada.

1

En respuesta a la sugerencia de Magento Enterprise, hemos implementado recientemente esta aplicación para nuestro sitio que cuenta con aproximadamente más de 150,000 SKU. Nosotros también estábamos migrando de una versión de osCommerce ampliamente personalizada. Nuestra experiencia ha sido de frustración y demoras en los proyectos debido a la lentitud con que funciona el sistema empresarial y la falta de documentación para su implementación. En realidad, no hemos podido utilizar gran parte de la funcionalidad de edición empresarial debido a esto.

La aplicación es notoria por su falta de documentación y la lenta respuesta del equipo de soporte de Varien, que hemos experimentado de primera mano. El sistema de plantillas parece estar parcialmente completo, y no especialmente bien pensado. Uno de los que respondieron a su pregunta, Alan Storm, en realidad ha sido un salvador para nuestro equipo con sus tutoriales bien escritos y sus generosas respuestas de stackoverflow.com.

Mi recomendación es hacer una extensa investigación previa de la plataforma Magento Enterprise; no es lo mismo que la versión de la comunidad. Como Bob Brodie publicó anteriormente, los requisitos y la configuración del servidor no son para los débiles, ni son económicos. Investigue las opciones de mejora de velocidad disponibles, las necesitará, los costos generales del servidor, considere la curva de aprendizaje y el tiempo adicional que agregará a la línea de tiempo del proyecto. Magento es significativamente diferente de osCommerce y, sobre todo, encuentre un servidor web confiable y experimentado. antes de pagar la tarifa de licencia de $ 12,000 de un año.

0

estoy curioso si alguien piensa que esta configuración podría hacerlo. comunidad magento con un proxy inverso (probablemente barniz) y memcached como la memoria caché de la aplicación. sin contenido dinámico en las páginas del producto (ya que podría ser renderizado en la interacción personalizada con la respuesta en caché) para mantener las solicitudes a la aplicación al mínimo absoluto. utilizando servidores nginx con carga equilibrada.

también podría implementar procedimientos más estructurados de mantenimiento y optimización de la base de datos como una aplicación independiente.

tal vez podría hacer algo bastante radical, pero bastante barato (supongo que los chicos con 2 millones de productos tienen una idea diferente de barato para usted y para mí), cambiar los módulos de ventas, impuestos y reglas de ventas a algo menos flexible pero más eficiente.

i dunno me parece la mejor manera. pagando por magento EE cada año frente a un gasto inicial de se jactan de rendimiento.

0

Una de las mejores respuestas a este tipo de carga de producto (y, de paso, la que estamos utilizando) es https://magento.stackexchange.com/questions/459/running-magento-in-an-aws-environment

Estamos corriendo una comunidad Magento personalizado (1.9) en un servidor de Amazon Web Services entorno beanstalk con RDS para productos, redis para caché & S3 -> CDN para los medios asociados con Magento. Es temprano, pero hasta ahora no hemos encontrado problemas reales. Tiempo de desarrollo estimado ... tal vez una semana más o menos para transferir desde un VPS con mysql/cache/apache/php local?

Cuestiones relacionadas