Ich versuche, einige SQL-Abfragen zu beschleunigen. My SQL-Abfrage auf Paginierung ist wie diese (3. Seite):Limit für FOUND_ROWS()?
SELECT
SQL_CALC_FOUND_ROWS book_id, book_title
FROM
books
LIMIT 40, 60
und dann alle Ergebniszähler bekommen:
SELECT FOUND_ROWS();
Aber wenn das Ergebnis Zahl ist riesig (milions der Bücher), dann FOUND_ROWS()
kann nahmen sehr lange Zeit.
Tatsache ist, dass es keine Notwendigkeit gibt, Millionen von Zeilen (Bücher) zu zählen, und die Antwort "10000+" ist genug für den normalen Benutzer.
Ist so etwas möglich? Pseudocode:
SELECT FOUND_ROWS(LIMIT 10000)
Wenn Sie Zugriff auf die Zeilenanzahl über die db wrapper-Bibliothek für Ihre andere Programmiersprache haben, die diese verwendet (falls vorhanden), dann wird die Zeilenanzahl in dieser Bibliothek in einer Eigenschaft zurückgegeben. Ein Tabellenschema wäre auch schön (Indizierung). – Drew
Der berüchtigte [Percona Artikel] (https://www.percona.com/blog/2007/08/28/to-sql_calc_found_rows-or-not-to-sql_calc_found_rows/) – Drew
@Drew dieser Artikel ist fast 10 Jahre alt, Ist es immer noch aktuell? – krokodilko