Un algoritmo de paginación superior seleccionado eficiente. El código es el siguiente:
<%
'Número de registros por página
Dim PageSize
PageSize = 30
'Lea el número total de registros, número total de páginas, notas Piaoyi
Dim TotalRecords, TotalPages
SQLSTR = SELECT Count (ID) como Registros de la Tabla1
Establecer rs = conn.execute (SQLSTR, 0,1)
TotalRecords = RS (Registros)
Si int (TotalRecords/PageSize) = TotalRecords/Pagesize entonces
TotalPages = TotalRecords/PageSize
demás
TotalPages = int (TotalRecords/PageSize) +1
final si
Rs.
Establecer RS = nada
'Número de página actual, nota de Piaoyi
Página de duendidad
página = solicitud (página)
if isNumérico (página) = falso entonces
Response.write <script language = javaScript> Alert ('¡Error de parámetro!');
Response.write Window.Close (); </script>
respuesta.
final si
If página = o página <1 entonces página = 1
If PAGE-TOTALPAGES> 0 entonces Page = TotalPages
Page = int (página)
si página = 1 entonces
SQL = Seleccione Top & PageSize & ID, Título, Tiempo de la Tabla1 Orden por Tiempo Desc
demás
SQL = Seleccione Top & PageSize & ID, Título, Título de la Tabla1 donde el tiempo <(Seleccione Min (Tiempo) de (Seleccione Top & PageSize*(Página-1) y Tiempo de la Tabla1 Orden por tiempo Desc) como T) Orden por tiempo Desc
final si
Establecer rs = server.createObject (ADODB.RecordSet)
Rs.open SQL, Conn, 1,1
Haz mientras no rs.eof
Respuesta. Escribe cada información de registro: & RS (ID) y <br>
Rs.Movenext
bucle
rs.
establecer RS = nada
'' El código de giro de la página omitido ...
%>
Este es un algoritmo de paginación muy eficiente. Cuando la cantidad de datos en la tabla de datos llega a millones, el tiempo de respuesta del algoritmo de paginación anterior es muy corta, generalmente en unas pocas decenas de milisegundos. El principio es muy simple.
En los ejemplos de los dos algoritmos de paginación anteriores, Flymorn usa el tiempo de tiempo para ordenar por orden, porque en la mayoría de los sistemas he entrado en contacto, necesitamos actualizar al usuario recientemente (incluidos los registros recién agregados y las nuevas modificaciones). El contenido del registro anterior (registro anterior) se muestra en el frente. Es por eso que Flymorn usa el campo de tiempo.
Esto implica el tema de la indexación agregada. Por defecto, usamos la ID numerada automática como la clave principal y la usamos como la columna de índice agregado. Mencioné la pregunta de que el contenido recientemente actualizado debe mostrarse en el anterior, por lo que tenemos que usar el campo de tiempo para ordenarlo. Por lo tanto, para lograr una mayor eficiencia de paginación, podemos diseñar este campo de tiempo como una columna de índice agregado al diseñar la base de datos.
Después de tal diseño, la eficiencia general de la paginación mejorará enormemente.
Sin embargo, hay otro problema menor con el uso de este campo de tiempo como la columna de índice agregado. Porque cuando se organiza la tabla de datos, se clasifica físicamente de acuerdo con la columna de índice agregado. La base de datos debe basarse en esta columna de índice agregado también menciona la información recientemente editada hasta el final de la tabla, que toma una cierta cantidad de tiempo. Es decir, cuando usamos el campo de tiempo como la columna de índice agregado, necesitamos pasar un poco más de tiempo al actualizar los datos.
Sin embargo, en una comparación integral, Piaoyi cree que la clave para el algoritmo de paginación eficiente de la parte superior selecta es evitar el escaneo completo de la tabla e intentar obtener solo los campos requeridos. son el tiempo de respuesta de la instrucción SQL ordenada es el más rápido. Después de este procesamiento, para la base de datos de SQL Server, incluso si hay decenas de millones de datos, no es necesario preocuparse de que el algoritmo de paginación pierda su respuesta.
Lo anterior es un algoritmo escrito con el lenguaje ASP como ejemplo, y por supuesto, también puede modificarse en otros idiomas como ASP.NET y PHP. Para usar mejor dicho código de paginación, también puede reescribir el algoritmo anterior en un procedimiento almacenado.
Finalmente, deje una pequeña pregunta: cuando seleccione la paginación superior, cuando la página se gira al final, ¿qué sucederá si la columna del campo de clasificación no es la columna de índice agregado?