Otimização da velocidade de carregamento do painel de administração do Bootstrap
Guia de aprimoramento de desempenho

Saiba como configurar corretamente suas listas com o CRUD Generator para evitar longos tempos de carregamento.


Otimizar a velocidade de carregamento de seu painel de administração

Com o PHP CRUD Generator, o tempo de carregamento das listas READ do painel de administração geralmente deve ser rápido e não exceder alguns segundos, no máximo. Tempos de carregamento anormalmente longos devem-se à configuração de seus filtros ou ao número de consultas necessárias para exibir os dados.

Em ambos os casos, a solução é simples de implementar usando o CRUD Generator. Veja a seguir como proceder para reduzir o tempo de carregamento.


1. Filtros de registro

Operação

Select with all records loaded
Selecionar com todos os registros carregados

Quando o senhor adiciona um filtro de registro à sua lista READ, o programa envia a consulta SQL e recupera todos os registros do banco de dados. Em seguida, ele gera um campo de seleção que incluirá tantas opções quantos forem os registros do senhor.

Isso é perfeito para uma tabela que contém algumas dezenas ou até centenas de registros, mas se a sua tabela tiver milhares, isso aumentará significativamente o tempo de carregamento da página.

Solução

Nesse caso, o senhor precisa ativar o carregamento do Ajax ao criar o filtro a partir do gerador CRUD.
Com o carregamento do Ajax ativado, a página carregará um campo de entrada simples anexado a um plug-in de preenchimento automático. O plug-in buscará os registros sob demanda para preenchimento automático. Dessa forma, o senhor evita carregar dados pesados e desnecessários ao carregar a página principal.

Enable Ajax loading for your filter from the generator
Habilite o carregamento Ajax para seu filtro a partir do gerador
Admin filter with Ajax loading enabled
Filtro de administrador com carregamento Ajax ativado

Observação: Os filtros são interdependentes. Por exemplo, se uma lista de filmes puder ser filtrada por título e idioma, se o senhor exibir apenas os filmes em inglês, o filtro de título oferecerá apenas os títulos dos filmes em inglês.


2. Consultas enviadas ao banco de dados

Operação

Quando o senhor carrega uma lista de registros do seu banco de dados, o programa executa as seguintes consultas:

  • Uma consulta para recuperar o número total de registros, o que permite criar a paginação.
  • Uma consulta para recuperar os registros exibidos na página.
  • Uma consulta por filtro se o senhor tiver ativado os filtros e eles não forem carregados com o Ajax.

Se o senhor tiver ativado as relações externas, o programa também executará as seguintes consultas:

  • Uma consulta por registro e por relação para recuperar os registros relacionados (se o usuário tiver ativado as relações externas).

Exemplo

Admin panel count queries
Consultas de contagem no painel do administrador

Por exemplo, se o senhor tiver uma tabela de filmes vinculada a uma tabela de atores e uma tabela de categorias e tiver ativado a exibição de nomes e categorias de atores na lista de filmes, o programa executará duas consultas para cada filme a fim de recuperar os nomes e as categorias dos atores.
Se o senhor exibir 20 filmes por página, obterá o seguinte:

  1. Paginação: 1 consulta
  2. Registros: 1 consulta
  3. Filtros não Ajax: 1 consulta por filtro
  4. Atores (relação externa): 20 consultas
  5. Categorias (relação externa): 20 consultas

Total: 42 consultas (+ filtros)

Solução

Normalmente, mesmo que haja um número relativamente grande de consultas, isso não será um problema porque essas consultas retornam apenas um número limitado de registros. Portanto, elas são eficientes e rápidas. Se, no entanto, o tempo de carregamento for excessivamente longo, o senhor pode desativar a exibição de determinadas relações externas na lista principal e exibi-las em outra página. Também é possível limitar o número de registros exibidos por página.


3. Use os índices do MySQL

Operação

Isso não diz respeito ao PHPCG, mas diretamente à estrutura do seu banco de dados. Adicione um índice a cada campo que será usado regularmente em suas consultas. O mecanismo do MySQL é mais rápido e mais eficiente com campos indexados.

Solução

Para indexar seus campos:

  1. Abra seu gerenciador de banco de dados (phpMyAdmin ou outro).
  2. Mostre a estrutura de sua tabela.
  3. Marque os campos que o senhor deseja indexar.
  4. Clique no botão de índice.

Página principal do tutorial PHP CRUD