Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

194
Visualizações
Permisos de Django usando demasiado la base de datos

Comenzamos a investigar nuestra base de datos, ya que es el componente menos escalable de nuestra infraestructura. Revisé la tabla pg_stat_statements de nuestra base de datos Postgresql con la siguiente consulta:

 SELECT userid, calls, total_time, rows, 100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent, query FROM pg_stat_statements ORDER BY total_time DESC LIMIT 5;

Cada vez, la misma consulta es la primera en la lista:

 16386 | 21564 | 4077324.749363 | 1423094 | 99.9960264252721535 | SELECT DISTINCT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" LEFT OUTER JOIN "auth_user_groups" ON ("auth_user"."id" = "auth_user_groups"."user_id") LEFT OUTER JOIN "auth_group" ON ("auth_user_groups"."group_id" = "auth_group"."id") LEFT OUTER JOIN "auth_group_permissions" ON ("auth_group"."id" = "auth_group_permissions"."group_id") LEFT OUTER JOIN "auth_user_user_permissions" ON ("auth_user"."id" = "auth_user_user_permissions"."user_id") WHERE ("auth_group_permissions"."permission_id" = $1 OR "auth_user_user_permissions"."permission_id" = $2)

Esto suena como una verificación de permisos y, según tengo entendido, se almacena en caché en el nivel de solicitud. Me pregunto si alguien hizo un paquete para almacenarlos en caché en Memcached, por ejemplo, o si encontró una solución para reducir la cantidad de solicitudes realizadas para verificar esos permisos.

Revisé todos los índices y parecen correctos. La solicitud es un poco lenta, principalmente porque tenemos muchos permisos, pero aún así, la cantidad de llamadas es una locura.

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda