Pregunta

Estoy construyendo una aplicación web que tiene las siguientes características:

  1. Sólo tiene un pequeño número de páginas, en casa, en contacto con nosotros, sobre, singup, etc.
  2. Cada usuario tiene una página basada en jQuery que les permite arrastrar / soltar / manipular elementos DOM.
  3. Cuando un usuario ha terminado de manipular los elementos que pueden golpear Guardar y los elementos se envían a través de JSON a un script PHP en el servidor. También se puede cargar previamente guardado JSON.

Así que, esencialmente: muy pocas páginas con información estática del 90%. Una página con el trabajo del lado del cliente y, potencialmente, una gran cantidad de conseguir / desplazamiento de JSON.

He construido un POC de esta usando PHP / Smarty, jQuery y MySQL. datos de usuario se almacenan en MySQL y también lo es que los datos JSON. Las páginas web se almacenan en caché en Smarty en el disco.

Ahora estoy pensando en la escalabilidad y la pregunta obvia es debo almacenar los datos JSON cambiado a menudo en MySQL o debo utilizar memcacheDB o algún otro almacén de claves-valor? ¿Te ir a la opción fácil MySQL o introducir un almacén de claves-valor ahora o te esperar para ver si el problema se plantea a escala? ¿Estoy siendo realistas cada vez va a llegar a un punto en que MySQL es el cuello de botella?

Estoy pensando en acoger esta en Slicehost para empezar, y luego moverlo si es necesario.

¿Fue útil?

Solución

La pregunta es, ¿habría ninguna consulta sobre la base de estos valores o no? ¿Hay va a ser versiones de los valores específicos a nivel de base de datos o no ... Serilaized datos JSON o va a ser más rápido y más eficiente (almacenamiento en cuanto a) si todo lo que hacemos es tirar de la cadena entera y no tienen requisitos para consultar o modificar a él.

Sobre la base de cómo se cambia la escala, sin embargo, es posible que desee mantener una estructura clave / valor, junto con una representación plana de datos con fines de consulta.

También considere el uso de Apache AB para algunos puntos de referencia y obtener ideas sobre cómo los cambios afectan a su salida simultánea.

Buena suerte:)

Otros consejos

En lo que se refiere al JSON, no va a hacer una diferencia: no veo cómo puede optimizar el almacenamiento de esos datos. Creo que la cuestión se reduce a "¿Qué tan complejo es los datos del usuario?". Si hay un gráfico social masiva conectada con claves externas RDBMS, y es muy difícil para mapear los datos a un almacén de claves-valor, prefiero no hacer el esfuerzo ahora. Sin embargo, si los datos de usuario es sólo información de perfil plano, prefiero traslado a un almacén de claves-valor ahora, que más adelante, antes de usar demasiadas características RDBMS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top