Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP,SQL] Zliczanie ilości rekordów, Count(*) i Show table status like
Luneth
post 15.08.2010, 19:17:52
Post #1





Grupa: Zarejestrowani
Postów: 95
Pomógł: 7
Dołączył: 16.07.2007
Skąd: Gorzów Wielkopolski

Ostrzeżenie: (0%)
-----


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?

Ten post edytował Luneth 15.08.2010, 19:18:27


--------------------
"It's always darkest before the dawn."
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
wookieb
post 15.08.2010, 19:25:27
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




"Cache-owana" w sensie MYISAM przechowuje dane statystyczne dla każdej swojej tabeli.


--------------------
Go to the top of the page
+Quote Post
Luneth
post 15.08.2010, 20:09:36
Post #3





Grupa: Zarejestrowani
Postów: 95
Pomógł: 7
Dołączył: 16.07.2007
Skąd: Gorzów Wielkopolski

Ostrzeżenie: (0%)
-----


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?


--------------------
"It's always darkest before the dawn."
Go to the top of the page
+Quote Post
wookieb
post 15.08.2010, 20:34:41
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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ć.


--------------------
Go to the top of the page
+Quote Post
Luneth
post 15.08.2010, 21:16:57
Post #5





Grupa: Zarejestrowani
Postów: 95
Pomógł: 7
Dołączył: 16.07.2007
Skąd: Gorzów Wielkopolski

Ostrzeżenie: (0%)
-----


Dodatkowych warunków, jakie masz tutaj na myśli?


--------------------
"It's always darkest before the dawn."
Go to the top of the page
+Quote Post
wookieb
post 15.08.2010, 21:17:56
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Mówię o warunkach "WHERE", które ograniczą wyniki to mniejszej liczby rekordów niż w całej tabeli.

Ten post edytował wookieb 15.08.2010, 21:18:26


--------------------
Go to the top of the page
+Quote Post
mrok
post 15.08.2010, 21:31:34
Post #7





Grupa: Zarejestrowani
Postów: 258
Pomógł: 17
Dołączył: 22.05.2007

Ostrzeżenie: (0%)
-----


W przypadku Myisam bedzie ok tylko dlatego, ze ten typ nie wspiera transakcji.
Dla innodb nie będzie już tak prosto.


--------------------
Go to the top of the page
+Quote Post
wookieb
post 15.08.2010, 21:33:11
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.

Ten post edytował wookieb 15.08.2010, 21:33:45


--------------------
Go to the top of the page
+Quote Post
Luneth
post 15.08.2010, 21:45:45
Post #9





Grupa: Zarejestrowani
Postów: 95
Pomógł: 7
Dołączył: 16.07.2007
Skąd: Gorzów Wielkopolski

Ostrzeżenie: (0%)
-----


wookieweb - dzięki winksmiley.jpg
mrok - mój 1 post.


--------------------
"It's always darkest before the dawn."
Go to the top of the page
+Quote Post
mrok
post 15.08.2010, 22:00:21
Post #10





Grupa: Zarejestrowani
Postów: 258
Pomógł: 17
Dołączył: 22.05.2007

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:48