cauachagas / selecao-desenvolvedor-2021b

Processo seletivo para Desenvolvedor FullStack Activesoft. Esta prova consiste em 3 partes: SQL, Frontend (React/Javascript) e Backend (Django/Python).
0 stars 0 forks source link

Melhorar performance da rota /tracks/ #11

Closed cauachagas closed 3 years ago

cauachagas commented 3 years ago

A rota /tracks/ está com problemas de performance. Nossos clientes não estão conseguindo utilizar ela para consultar a lista de faixas disponíveis. Mesmo em nosso banco de testes está demorando muito para carregar. Analisar, identificar o problema, corrigir e explicar a causa do problema e o que foi feito para solucionar.

cauachagas commented 3 years ago

Não entendi se na questão queria uma representação minimalista, contendo somente ["id", "name", "composer"], da Tabela Tracks. Decidi por uma representação mais próxima da Tabela SQL, conforme abaixo

TrackId Name AlbumId MediaTypeId GenreId Composer Milliseconds Bytes UnitPrice
1 For Those About To Rock (We Salute You) 1 1 1 Angus Young, Malcolm Young, Brian Johnson 343719 11170334 0.99
2 Balls to the Wall 2 2 1 342562 5510424 0.99
3 Fast As a Shark 3 2 1 F. Baltes, S. Kaufman, U. Dirkscneider & W. Hoffman 230619 3990994 0.99
4 Restless and Wild 3 2 1 F. Baltes, R.A. Smith-Diesel, S. Kaufman, U. Dirkscneider & W. Hoffman 252051 4331779 0.99
5 Princess of the Dawn 3 2 1 Deaffy & R.A. Smith-Diesel 375418 6290521 0.99
6 Put The Finger On You 1 1 1 Angus Young, Malcolm Young, Brian Johnson 205662 6713451 0.99

onde a coluna Millisecond foi substituída para Duration (duração em minutos e segundos)

Django Debug Toolbar

image

image