Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Efektywne liczenie i stronicownie rekordow
Forum PHP.pl > Forum > Bazy danych > MySQL
wermon
Sytuacja wygląda następująco:

Jest tabela zawierajaca kilkadziesiat tysiecy rekordow
Przeszukiwanie odbywa się po zaindeksowanych "krótkich" TINYINT(2) kolumnach.
Sortowanie odbywa sie po kolumnie 10-cioznakowej

Zapytanie bedzie wybierało (SELECT) "długie" dane opisowe.

Czy z punktu widzenia wydajnosci bardziej oplaca sie:

1. wykonać zapytanie bez LIMIT'u, z sortowaniem, policzyć ilość wyników, a następnie LIMIT osiągnąć poprzez php

2. wykonać zapytanie dodając LIMIT i sortowanie, a następnie wykonac drugie zapytanie tylko w celu policzenia wszystkich znalezionych rekordow (bez sortowania i SELECT'owania "długich" kolumn)
nospor
najpierw pobierasz ile masz rekordow:
  1. SELECT count(*) FROM tabela
To ci zwroci liczbe rekordow.

A potem sobie robisz zapytanie z limitem.

ps:Mozna tez przy limit okreslic ile jest wszystkich rekordow, ale i tak trzeba przy tym wykonac drugie zapytanie
wermon
ok, dzieki
osiris
Poczytaj o SQL_CALC_FOUND_ROWS
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.