![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Dziś chciałbym podyskutować troszkę na temat optylamizacji zapytań do baz danych. Ostatnio mam problem z pobraniem ilości komentarzy przypisanych do listy notek na blogu, a że będzie to dość wielki system blogowy oferujący dobudowanie swojej cegiełki w Internecie, zależy mi na maksymalnej optymalizacji, dlatego poświece temu ten oto topick. Wracając do zliczania komentarzy. Mamy 3 sposoby: 1. Zapisywać ilość komentarzy (notes_comments = notes_comments + 1) przy każdym dodawaniu komentarza do notki, a przy usuwaniu odejmować tą wartość. 2. Zliczać ilość komentarzy zapytaniem, które przelatuje przez tabelą komentarzy licząc je i grupując wg ich ID, ale tylko te, które przynależą do notek wyświetlonych na liście, przykładowo:
Otrzymujemy tablicę: NOTKA => ILOŚĆ_KOMENTARZY, później możemy połączyć ją w PHP. 3. Dołączmy JOINA i countujemy komentarze przpisane do danej notki:
----------------------------------------------------------------------------------------- Wykonując sposób pierwszy, nie mamy doczynienia z żadnym liczeniem. Chciałbym trochę podyskutować na temat sposobu 2 i 3. Doszły mnie słuchy od @cichy'ego i od @hwao, że przy wielkiej ilości rekordów baza może trochę zamulać. Zadaje więc 2 pytania: Całe sedno sprawy
Zapraszam do dyskusji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Athlan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Dokladnie od tego sa transakcje, nie ma takiej mozliwosci ze sie cos wywali tutaj doda a tutaj nie. Baza danych baz transakcji to zwykly zbior danych a tak nie jest. Odnosnie Twojego problemu padla post ze najlepiej triggera zrobic. Przy swoich projektach staram sie wszystkie takie operacje wlasnie na triggerach robic 1 zapytanie do bazy i masz juz mase operacji zalatwionych.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 03:23 |