Pergunta

Eu estou construindo um webapp que tem as seguintes características:

  1. Ele só tem um pequeno número de páginas, casa, contacte-nos, sobre, singup, etc.
  2. Cada usuário tem uma página baseada em jQuery que lhes permite arrastar / soltar / manipular elementos DOM.
  3. Quando um usuário tem elementos de manipulação acabados eles podem bater em Salvar e elementos são enviados via JSON para um script PHP no servidor. Eles também pode carregar previamente salvo JSON.

Então, basicamente: muito poucas páginas com informações estáticas 90%. Uma página com o trabalho do lado do cliente e, potencialmente, um monte de obter / Destacamento de JSON.

Eu construí um POC deste usando PHP / Smarty, jQuery e mySQL. detalhes do usuário são armazenados no MySQL e assim são os dados JSON. Páginas Web são armazenados em cache por Smarty no disco.

Agora eu estou pensando sobre escalabilidade e a pergunta óbvia é que eu deveria estar armazenando os dados JSON muitas vezes mudou em mySQL ou devo estar usando memcacheDB ou alguma outra loja do valor-chave? Quer ir para a opção mySQL fácil ou introduzir um armazenamento de chave-valor agora ou você esperar para ver se surgem questão escala? Am I realisticamente nunca vai chegar a um ponto onde o MySQL é o gargalo?

Eu estou planejando para hospedar isso em Slicehost para começar e, em seguida, movê-lo se for necessário.

Foi útil?

Solução

A pergunta é, haveria quaisquer pesquisas baseadas nesses valores ou não? É que vai haver versões de valores específicos a nível de banco de dados ou não ... dados Serilaized ou JSON vai ser mais rápido e eficiente (armazenamento sábio) se tudo que você faz é puxar a corda toda e não têm requisitos para consulta ou modificar -lo.

Com base em como você escala, porém, você pode querer manter uma estrutura de chave / valor juntamente com uma representação de dados plana para fins de pesquisa.

Considere também usando apache AB para alguns de benchmarking e obter ideias sobre como o seu efeito muda a sua saída simultânea.

Boa sorte:)

Outras dicas

Quanto ao JSON está em causa, não vai fazer a diferença: eu não vejo como você pode otimizar o armazenamento de dados. Acho que a questão resume-se a "Quão complexa é os dados do usuário?". Se há um gráfico social maciça conectado com chaves estrangeiras RDBMS, e é muito difícil para mapear os dados para um armazenamento de chave-valor, eu prefiro não gastar o esforço agora. No entanto, se os dados do usuário é apenas informações de perfil plano, eu prefiro passar para um armazenamento de chave-valor agora, mais tarde, antes de eu usar muitos recursos RDBMS.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top