Aprenda MySQL: O que é paginação

Aprenda MySQL: O que é paginação


Neste artigo, vou explicar que no MySQL, o que é paginação e como podemos implementá-la. Quando estamos preenchendo um grande conjunto de dados do banco de dados MySQL, não é fácil ler todos os registros na mesma página. Usando a paginação, podemos dividir o conjunto de resultados em várias páginas, o que aumenta a legibilidade do conjunto de resultados. Neste artigo, vou explicar:

  1. Como implementar paginação com exemplo
  2. Como calcular o DESLOCAMENTO usando o número da página
  3. As despesas gerais de desempenho e como lidar com isso

Para a demonstração, eu instalei o MySQL na minha estação de trabalho. Você pode percorrer um dos meus artigos anteriores, Como instalar o servidor de banco de dados MySQL 8.0.19 no Windows 10, que explica como podemos instalar o MySQL na janela 10. Importei um banco de dados de amostra chamado sakila no servidor de banco de dados MySQL. Você pode adicionar o banco de dados de amostra enquanto instala o servidor de banco de dados MySQL.

Como implementar a paginação

Podemos implementar a paginação usando a cláusula LIMIT no SELECT inquerir. A seguir está a sintaxe:

Cláusula LIMIT

Na sintaxe, o primeiro argumento é o LIMITE cláusula. este LIMITE A cláusula é usada para restringir o número de linhas a serem retornadas pela Consulta SQL. É como a cláusula TOP no SQL Server.

Por exemplo, eu quero retornar os 20 principais atores. A saída deve ser classificada com base na coluna actor_id e a ordem deve ser crescente. A seguir está a consulta:

Leia Também  Semana de treinamento gratuito: como eu uso o kit primeiro respondedor - sp_Blitz

Abaixo está a saída da consulta:

O que é a paginação: cláusula LIMIT

Cláusula OFFSET

Se você notar a sintaxe novamente, o segundo argumento é DESLOCAMENTO. É usado para visualizar um número específico de linhas; por exemplo, em uma saída de consulta, você deseja ver os registros entre 10 e 20, então você pode usar DESLOCAMENTO. Ele preenche todos os registros da tabela e descarta os registros anteriores definidos no DESLOCAMENTO cláusula.

Por exemplo, queremos exibir o topo 20 nomes do ator e o valor do actor_id coluna deve começar a partir de 11, então você pode escrever a consulta como abaixo:

A seguir está a saída:

O que é a paginação: cláusula OFFSET

Como você pode ver na imagem acima, o valor do actor_id coluna começa em 10, e retornou um total de 20 registros.

Como calcular a compensação usando o número da página

Para calcular o número de páginas, você pode codificar o valor de LIMITE e DESLOCAMENTO, ou você pode passar o valor do número da página nas variáveis. Podemos calcular o valor de OFFSET usando o valor do número da página. É um pouco mais seguro porque estamos passando o valor do número da página e alguém não pode criar uma página que possua todos os registros manipulando o valor da variável de entrada.

A seguir está a fórmula:

Records_Per_page = 10;
offset_value = (page_Number-1) * Records_Per_page;

Por exemplo, você deseja exibir o nome de 30 atores em 3 páginas. Portanto, a fórmula deve ser como mostrado abaixo:

Records_Per_page = 10;
offset_value_1 = (1-1) * 10;
offset_value_2 = (2-1) * 10;
offset_value_3 = (3-1) * 10;

O valor de Records_per_pages é usado na cláusula LIMIT e os valores de offset_value_1, offset_value_2, offset_value_3 é usado na cláusula OFFSET.

Leia Também  Uma rápida visão geral do OLTP na memória no SQL Server

A consulta deve ser escrita da seguinte maneira:

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

A seguir está a saída da primeira consulta:

O que é paginação: limite 10, deslocamento 0

A seguir está a saída da segunda consulta:

O que é paginação: limite 10, deslocamento 10

A seguir está a saída da terceira consulta:

O que é paginação: limite 10, deslocamento 20

As despesas gerais de desempenho

A paginação é muito útil quando você deseja criar um aplicativo que exiba um grande conjunto de dados em várias páginas. Ao projetar o aplicativo, preenchemos todo o conjunto de dados do servidor de banco de dados e executamos a paginação no aplicativo / servidor da web. Agora, quando você faz isso no servidor de banco de dados, pode obter uma melhoria de desempenho. Mas às vezes isso se torna uma sobrecarga adicional no servidor de banco de dados. Especialmente quando você está compartilhando o mesmo servidor de banco de dados entre vários bancos de dados clientes, para evitar o problema de desempenho, podemos usar a seguinte alternativa.

Implemente a paginação usando ORDER BY (evite descartar os registros)

Como mencionado, a paginação preenche todos os registros da tabela, exibe o número de registros especificado no LIMITE e descarta todos os registros anteriores especificados no DESLOCAMENTO cláusula. Se a tabela contiver milhões de registros, o desempenho da consulta poderá ser reduzido significativamente. Para evitar isso, podemos especificar o intervalo no ONDE cláusula e limite os registros usando o LIMITE cláusula. Por exemplo, queremos preencher o nome dos dez principais atores cujos actor_id é melhor que 10. A consulta deve ser escrita da seguinte maneira:

Abaixo está a saída:

O que é paginação: sem OFFSET

Resumo

A paginação é um conceito muito interessante no MySQL e pode ser alcançado facilmente por LIMITE e DESLOCAMENTO cláusulas. É muito útil quando você deseja exibir o grande conjunto de registros em várias páginas. Neste artigo, expliquei sobre a paginação e como podemos implementá-la, como podemos calcular o DESLOCAMENTO usando o número da página e o número de registros por página. Eu também expliquei como isso pode afetar o desempenho e a possível alternativa a ele.

Leia Também  Bem-vindo ao Redgate Deploy e DevOps de banco de dados multiplataforma

Nisarg upadhyay
Últimas mensagens de Nisarg Upadhyay (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br