2010-10-18 9 views
5

Tenemos un sitio web desarrollado en PHP con MySQL y algunas veces enfrentamos problemas cuando aumenta el tráfico. Casi hemos optimizado el sitio en todas las formas para manejar más solicitudes, pero aún enfrentamos problemas en las horas punta.¿Debo reconstruir mi sitio web PHP con una base de datos de documentos para mejorar el rendimiento?

Uno de mis amigos sugiere reconstruir el sitio utilizando HBase/MongoDB como back-end para mejorar el rendimiento. También sugiere que si lo reconstruimos, podemos pasar fácilmente a servicios en la nube. Pero tenemos que aprender todo y volver a desarrollarlo.

¿Es mejor idea hacerlo?

+2

Cualquiera que sugiera algo más que perfiles, no tiene ni idea. Evite tales "asesores" a cualquier costo. ¿Hiciste un perfil de tu sitio? ¿En qué tipo de servidor funciona? –

+0

No perfilamos mi sitio web hasta ahora. Seguimos algunos consejos de optimización. Por favor sugiérame las herramientas para perfil. – Chris

+0

cuando dices que el tráfico aumenta, ¿puedes ser más específico? –

Respuesta

5

Lo primero que debe hacer es perfilar su aplicación web para determinar cuál es el cuello de botella.

Si es sin duda consulta a la base de datos, entonces la sustitución de MySQL con mongodb podría ser una buena idea, pero las bases de datos de documentos trabajar de una manera diferente a las relacionales, y usted podría tener problemas para portar algunos tipos de funcionalidad. Si decide probar mongo, prototipo temprano y con frecuencia, porque no hay garuantee, será más rápido para usted.

Si la escalabilidad realmente es un problema para usted, entonces ¿por qué no saltar directamente a una arquitectura web basada en la nube como el motor de la aplicación de Google. Esta es la base de datos de java o python y documentos (bigtable), pero te obliga a una arquitectura escalable de "nube" desde el principio.

Otra opción es simplemente introducir (u optimizar) el almacenamiento en caché (con memcache): esto tendrá menos efecto arquitectónico en la aplicación, por lo tanto, requiere menos esfuerzo.

+0

Usamos LAMP. No perfilamos mi sitio web hasta ahora. Seguimos algunos consejos de optimización. Por favor sugiérame las herramientas para perfil. – Chris

+0

En realidad, no he intentado perfilar ningún sistema LAMP antes, ¿tal vez hacer otra pregunta sobre el desbordamiento de pila? Probablemente necesites diferentes herramientas para apache, mysql, la CPU del servidor, el acceso a la red del servidor, etc. –

+0

Y dependiendo de lo que quieras decir con "problemas", tal vez necesites también un perfil desde un navegador, como con Firebug. +1 a col shrapnel –

0

También hay opciones simples de escalabilidad de MySql. De vuelta en los "días oscuros", simplemente lanzaríamos hardware dedicado en el DB como paso uno, más recientemente, la agrupación fue posible. También hay soluciones tipo nube basadas en MySQL que podrías usar. Por ejemplo, el RDS de Amazon afirma que funciona con todos los mismos comandos que MySQL y también pretende ser una conversión fácil.

Antes de comenzar con todo eso, recomiendo optimizar, indexar y crear perfiles. He ejecutado sitios PHP/MySQL basados ​​en CMS con 1 millón de exclusivas por día sin necesidad de ir a la nube. El código es la clave.

+0

Lanzar más hardware todavía puede ser una buena solución. – TTT

+0

es una gran solución para la incompetencia, de acuerdo. –

Cuestiones relacionadas