BigTable é lento ou sou burro?

Basicamente, tenho o modelo clássico de muitos para muitos. Um usuário, um prêmio e um mapeamento de tabela "muitos para muitos" entre usuários e prêmios.

ada usuário possui da ordem de 400 prêmios e cada prêmio é concedido a cerca de metade dos usuário

Eu quero repetir todos os prêmios do usuário e resumir seus pontos. No SQL, seria uma junção de tabela entre muitos-para-muitos e, em seguida, percorrer cada uma das linhas. Em uma máquina decente com uma instância do MySQL, 400 linhas não devem ser um grande problem

No app engine, estou vendo cerca de 10 segundos para fazer a soma. Passado a maior parte do tempo no armazenamento de dados do Google. Aqui estão as primeiras linhas do cProfile

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      462    6.291    0.014    6.868    0.015 {google3.apphosting.runtime._apphosting_runtime___python__apiproxy.Wait}
      913    0.148    0.000    1.437    0.002 datastore.py:524(_FromPb)
     8212    0.130    0.000    0.502    0.000 datastore_types.py:1345(FromPropertyPb)
      462    0.120    0.000    0.458    0.001 {google3.net.proto._net_proto___parse__python.MergeFromString}

Meu modelo de dados está errado? Estou fazendo as pesquisas erradas? Essa é uma desvantagem com a qual eu tenho que lidar com o cache e a atualização em massa (o que seria um problema real

questionAnswers(10)

yourAnswerToTheQuestion