


Wie kann ich sowohl die Gesamtzahl als auch die paginierten Ergebnisse effizient von MySQL abrufen?
MySQL-Paginierung: Effizientes Abrufen von Ergebnissen und Gesamtzahl
Bei der Implementierung der Paginierung in MySQL ist es üblich, zwei separate Abfragen durchzuführen: eine bis Ermitteln Sie die Gesamtzahl der Ergebnisse und einen weiteren, um die abgerufenen Datensätze zu begrenzen. Dieser als Doppelabfrage bezeichnete Ansatz kann bei großen Datensätzen ineffizient sein.
Es stellt sich jedoch die Frage, ob es möglich ist, sowohl die Gesamtergebniszahl abzurufen als auch die Ergebnisse in einer einzigen Abfrage einzuschränken. Obwohl es keine direkte Möglichkeit gibt, dies zu erreichen, stehen zwei alternative Methoden zur Verfügung:
SQL_CALC_FOUND_ROWS und FOUND_ROWS()
Anstelle einer doppelten Abfrage können Sie SQL_CALC_FOUND_ROWS verwenden und FOUND_ROWS()-Funktionen, um ein ähnliches Ergebnis zu erzielen. Die Abfrage mit SQL_CALC_FOUND_ROWS geht der begrenzenden Abfrage voraus und der Aufruf FOUND_ROWS() ruft die Gesamtzahl ab.
Beispiel:
SELECT SQL_CALC_FOUND_ROWS * FROM `table` WHERE `some_condition`; SELECT FOUND_ROWS();
Hinweis: Diese Methode hat einen potenziellen Nachteil. MySQL hat einen Fehler, der sich auf ORDER BY-Abfragen bei Verwendung dieser Technik auswirkt und sie bei großen Tabellen langsamer macht.
Zählung zwischenspeichern
Eine alternative Lösung besteht darin, die Gesamtzahl zwischenzuspeichern für eine bestimmte Dauer. Dieser Ansatz macht eine separate Abfrage zum Abrufen der Anzahl überflüssig und sorgt gleichzeitig für Effizienz.
Beispiel:
Zählung abrufen und 10 Minuten lang zwischenspeichern:
SET @count = (SELECT COUNT(*) FROM `table` WHERE `some_condition`);
Verwenden Sie in nachfolgenden Abfragen die zwischengespeicherte Anzahl:
SELECT * FROM `table` WHERE `some_condition` LIMIT 0, 10;
Zählung zwischenspeichern Verbessert die Leistung erheblich, insbesondere bei häufig besuchten Seiten. Obwohl es sich nicht um eine Einzelabfragelösung handelt, erzielt sie das gleiche Ergebnis und ist gleichzeitig effizienter als eine Doppelabfrage.
Das obige ist der detaillierte Inhalt vonWie kann ich sowohl die Gesamtzahl als auch die paginierten Ergebnisse effizient von MySQL abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)?

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen?
