Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP,SQL] Zliczanie ilości rekordów
Forum PHP.pl > Forum > PHP
Luneth
Ciekawi mnie ostatnio jedna rzecz: jeśli wyślę zapytanie:
  1. SHOW TABLE STATUS LIKE `nazwa_tabeli`


To otrzymam tablicę zawierającą element 'rows' przechowujący liczbę rekordów, wartość ta jest jednak 100% prawdziwa jedynie dla tabel na silniku MyISAM. Czy ta dana jest jakoś cachowana, czy po prostu gdy wykonuję to zapytanie są wykonywane zapytania składowe, w tym COUNT(*) i tym samym wychodzi na to samo jak nie gorzej?
wookieb
"Cache-owana" w sensie MYISAM przechowuje dane statystyczne dla każdej swojej tabeli.
Luneth
I ta wartość nie jest zliczana przy każdym zapytaniu Show Table Status... ? Czyli zamiast przechowywać totalną liczbę rekordów np newsów dla potrzeb paginacji nie lepiej byłoby pobierać tę wartość i dzięki temu mieć za każdym żądaniem 100% pewną liczbę rekordów bez obciążania bazy danych?
wookieb
Nie jest ona przeliczana (tak ja wspominałem). Możesz pobierać całkowitą ilość rekordów w ten sposób dla paginacji aczkolwiek tylko takiej, która działa na całej tabeli (bez żadnych dodatkowych warunków), dlatego takie rozwiązanie uniwersalnym nie będzie, lecz nic nie stoi na przeszkodzie by je zrealizować.
Luneth
Dodatkowych warunków, jakie masz tutaj na myśli?
wookieb
Mówię o warunkach "WHERE", które ograniczą wyniki to mniejszej liczby rekordów niż w całej tabeli.
mrok
W przypadku Myisam bedzie ok tylko dlatego, ze ten typ nie wspiera transakcji.
Dla innodb nie będzie już tak prosto.
wookieb
Cytat(mrok @ 15.08.2010, 22:31:34 ) *
W przypadku Myisam bedzie ok tylko dlatego, ze ten typ nie wspiera transakcji.
Dla innodb nie będzie już tak prosto.

Niesamowite (czytaj pierwszy post), rozwiń nam jeszcze skrót MySql to błyśniesz jak Supernova.
Luneth
wookieweb - dzięki winksmiley.jpg
mrok - mój 1 post.
mrok
Cytat
rozwiń nam jeszcze skrót MySql to błyśniesz jak Supernova

Ja juz błyszcze winksmiley.jpg

W pierwszym poscie nie było jasno napisane dlaczego tak się dzieje. Ale skoro wszyscy wiedza to trochę się zbłaźniłem.
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.