![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 7.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
witam. mam 2 tabele w bazie
tabela posty post_id, post_title, ..., comment_status comment_status moze przyjmowac 2 wartosci: 0 lub 1. jesli 0 to nie mozna dodawac komentarzy, jesli 1 to mozna tabela komentarze comment_id, post_id, itd... Teraz tak, pobieram z bazy posty i licze ile jest komentarzy do nich
To zapytanie ladnie dziala, zlicza mi wszystkie komentarze. Ale robi tez JOINa dla postów, ktore na 100% nie będą miały komentarzy (pole comment_status ma wartość 0). Czy da sie zrobić tak, żeby przed wykonaniem JOINa sprawdzał wartość w polu comment_status i jesli bedzie tam 0 to nie robil joina tylko do pola komentarze odrazu wpisal 0, a jesli bedzie wartosc 1 to zeby normalnie wykonal joina. I czy wogole oplaca sie to robic z punktu wydajności? Niby zaoszczędzi troche "mocy przerobowych" na joinie, ale musi tez troche wiecejtych mocy poswiecic na badanie wartosci pola |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 26 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jak będzie wpływało to na wydajność. Najlepiej będzie jak wykonasz sobie benchmarki. EDIT: Jak założysz indeks na comment_status to moce przerobowe nie zostaną "stracone" na badanie wartości pola. Czas wykonania zapytania powinien się zmiejszyć, ale to zależy od ilości danych i ilości comment_status!=0. Ten post edytował kitol 14.02.2008, 16:40:42 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.09.2025 - 00:36 |