Executando verificação de segurança...
1

Desafios de um "datatable" em Nextjs

Gente, atualmente estou gerenciando um projeto governamental estadual. O meu superior pediu um datatable. Quais as formas de lidar com os dados que vem do banco de dados (MariaDB) sem prejudicar o banco, servidor e o usuário final? Imagine 1.000.000 de dados a ser carregados em uma página.

Dúvidas; por favor, me perguntem para que eu possa lhe responder e ter uma resposta concisa.

Carregando publicação patrocinada...
2

Geralmente, paginação. Ajudará tanto na transferência dos dados quanto na exibição da página (não terá 1 milhão de linhas no DOM).

Filtro é outra opção, que pode ser usado em conjunto da paginação.

Mas talvez isso não resolva o problema, depende de para quê precisam desses 1 milhão de dados. Se for para realizar uma análise, aí provavelmente nem a página web é interessante, pois é limitante, ou então o sistema deva fazer a análise sem retornar 1 milhão de dados.

1

Obrigado por responder no curso.dev e aqui. Usei paginação e esses dados estão em constante atualização. Cada dado é uma view para busca do user. Então apliquei limite no banco usando query para delimitar os dados e a consulta para lado do client.

1
1
1

Certamente você não vai exibir 1kk de linhas na sua tabela. Vai usar paginação, então não tem um uso tão pesado no banco.

O que vai precisar ser feito provavelmente é o uso de filtros, e estes filtros precisam ser eficientes do ponto de vista de banco de dados se você tiver um grande volume de acessos.

1
1

Filtros server side, paginação, requisições em lote com loading em realtime se as queries forem muitos complexas a ponto de demandar muito tempo ou explodir a partir do tamanho N. Além do mais, caching, já que estes dados provavelmente não mudará o tempo todo.

1
1

Se precisar de paginar, a partir de um determinado ponto as queries começam a ficar lentas.
O ideal neste caso seria usar o conceito de 'after'. Você coloca uma especificação no where que indica a partir de qual id a query deve pegar os dados.

1
1

Concordo com o Rafael, falar o objetivo pode ajudar mais com a resposta. Mas a principio, Paginacao, Cache e filtros condicionais resolvem.
1 milhão é pouquissimo dado.
Quantas colunas? Um pivotable resolve? ou seria só "mostrar" tabelinha mesmo?

1
1

Acho que o ag-grid pode lhe ajudar, ele lida com milhões de linhas, tem gráficos integrados, paginação, filtro por coluna, reordenação de colunas e várias outras funcionalidades.

A documentação é bem completa, com vários exemplos, tem alguns módulos que são enterprise, mas os módulos feitos pela comunidade já lhe ajudarão.

Tem suporte para: React, Vue, Angular e Vanilla.

1