Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Liczenie rekordów
acztery
post
Post #1





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


witam,

mam tabele z 220 tys rekordów

i chce policzyc wszystkie ktore spelniaja jakis warunek ale to tra bardzo dlugo. ok 30 sek.

  1. SELECT Count(id)
  2. FROM prg
  3. WHERE UserID='Ux1'


czy mysql ma jakies wbudowane funkcje np count_big tak jak w sql server 2000

Ten post edytował acztery 15.03.2006, 00:18:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Tak.
Czyli po prostu dodatkowa tablea / kolumna, przechowująca informację o ilości rekordów przypożądkowanych do danego usera.


W PgSQL można by sobie życie ułatwić jeszcze bardziej, i dodać trigery uruchamiane podczas dodawania i usuwania rekordów z prg które wprowadzałyby tą wartość automatycznie.

Niestety - nie ma innego wydajnego rozwiązania. W każdej bazie, szczególnie przy kluczach tekstowych, count() będzie wolne.


Ewentualnie możesz sprawdzić, jak wyglądałaby wydajność wyrażenia:
  1. SELECT SQL_CALC_FOUND_ROWS *
  2. FROM tbl_name
  3. WHERE id = " "


Ten post edytował DeyV 15.03.2006, 01:58:30
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 18:26