[Backend] Otimizar banco de dados

オープン
#86 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@CLQueirozz がすでに取り組んでいます。

2026年11月9日 から。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
リファクタリング
明瞭さ
おおむね明確
活発さ
活発
技術スタック
postgresql, python
領域
backend, databases

調査の方向性

Start by inspecting the database table definitions and pagination routes, then check how asyncpg handles UUID columns and how the RAWG API supplies tag IDs. The issue names UUID columns for users, reviews, and lists, missing pagination indexes, and auto-incrementing tag IDs as examples to investigate. Done means identifying and correcting these inconsistencies and other database choices that impair backend performance; the issue does not specify exact files or tests.

索引モデルが issue の本文から書いたものです。

説明

Tem algumas partes das nossas tabelas de dados que estão "desatualizadas" em relação às regras de negócio do backend, ou então poderiam usar melhor as ferramentas disponíveis para postgres.

Alguns exemplos:

  • Os ids de user, review e list, que estão todos no formato uuid, são declarados como varchar(36) nas tabelas, mas existem jeitos mais otimizados do postgres e do asyncpg (biblioteca do python que usamos para codar em postgres) lidarem com uuid (vale uma pesquisa sobre como ajeitar isso)

  • Para as rotas de paginação ficarem mais rápidas, é necessário criar mais indices auxiliares que permitem buscas mais diretas sobre os dados. Criar mais índices significa que inserção, atualização e deleção ficam mais devagar (dá pra ver isso na prática porque os testes de follow/block, que já tem índices, rodam bem mais lentamente do que os de lista, que ainda não tem indices), mas como o gamerboxd é para ser uma "rede social", nós devemos trabalhar com o princípio que os usuários consomem (rotas get) muito mais conteúdo do que eles criam/alteram (rotas post, put, delete).

  • Na tabela de tags, os ids são números inteiros auto incrementados, mas na verdade esses ids devem vir da rawg api (a api já tem definido qual valor corresponde a qual tag), então auto incrementar eles não faz muito sentido porque vamos essencialmente copiar os pares id - valor da API

Busque corrigir essas inconsistências e achar outras que também podem estar comprometendo o desempenho do backend.

主要言語
JavaScript
スター
1
フォーク
0
平均マージ
17時間 39分
マージ済み PR(30日)
4

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

USPCodeLabSanca/Gamerboxd のほかの issue

USPCodeLabSanca/Gamerboxd の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。