Pretendo iniciar hoje uma série de 4 artigos demonstrando como montar uma funcionalidade muito importante para aplicações WEB nos dias atuais, Paginação de Dados. Durante essa série vou demonstrar como é possível paginar dados utilizando PHP, PDO e vamos trabalhar com com alguns bancos de dados MySQL, PostgreSQL e SQL Server 2008 R2.
Paginação de dados consiste em exibir um grande volume de dados (Registros) mas em pequenas partes, ou seja, podemos fazer uma analogia com um caderno(Tabela), temos várias páginas onde cada página possuí uma quantidade de linhas (Registros). Já imaginou exibir mais de 1000 registros em uma página, seria inviável em termos de performance, dessa forma deixamos nossa aplicação WEB mais rápida para exibir uma certa quantidade registros, também fica disponível opções para navegações entre as páginas.
Decidi montar exemplos utilizando diversos SGBDs (Sistema de Gerenciamento de Banco de Dados) para demonstrar as diferenças existentes entre eles, muitos programadores estão acostumados a construir paginação de dados com MySQL e PostgreSQL extremamente simples pois esses dois SGBDs possuem comandos nativos que facilitam essa tarefa. Mas quando falamos de SQL Server 2008 R2 surgem problemas, pois nessa versão não existe comandos para paginação nativos então temos que utilizar alguns artifícios.
Observação: O SQL Server 2012 trouxe entre várias features os comandos OFFSET e FETCH para paginação de dados nativamente.