[PHP] - Jaką funkcją policzyć pobrane wyniki z bazy?

a jak taki trigger dodać ?

Piszę o MS SQL, ale poejzewam ze w MySQL jest podobnie.

Zaklada się go na danej tabeli i wykonuje jakies zapytanie zgodnie z twoimi wytycznymi.

 

Tutaj jakies przykłady

 

http://dev.mysql.com/doc/refman/5.6/en/trigger-syntax.html

Jednak sobie podaruję te tiggery (na razie). Myślę że poradzę sobie z jQury(.size())

To błąd, za każdym razem zamiast 2 bajtów danych  (w teorii) będziesz pobierał ich znacznie więcej bo pobierasz cala tabele zamiast jednej liczby. Nie rób tak bo jak ktoś to zobaczy to cię wyśmieje. To jest bardzo proste zadanie a chcesz je zrealizować w najgorszy z możliwych sposobów. Gorszego chyba nie ma.

Odrazu wiedziałem na jakim poziomie jest autor dlatego mu podałem najprostsze i najsensowniejsze rozwiązanie dla niego. Wyskakujecie z niewiadomo jakimi rozwiązaniami dla programistów będących w branży conajmniej 3 lata i kończy się na zrezygnowaniu z “tiggerów” i użyciu jQury hehe

Nie będę negował wypowiedzi o moim aktualnym stanie wiedzie(niewątpliwie masz rację). Ale poradziłem sobie także z tym countem i teraz nie wiem co jest lepsze(tzn. szybsze) jQuery czy COUNT ? Mnie wydaję się, że jQuery bo ten kod wykonuje sama przeglądarka, a w przypadku takiego counta to idzie tak: komputer(przeglądarka) -> serwer -> baza -> serwer -> komputer, więc w przypadku counta jest po prostu więcej kroków do wykonania i biorąc to na chłopski rozum, wychodzi, że jQuery jest szybsze

Jestes w bledzie.

 

W przypadu counta jest to tak.

 

Uzytkownik otwiera strone.

PHP odwoluje sie do bazy, pobiera liczbe (jedna liczbę per temat) i przekazuje to do uzytkownika. Gotowe.

 

Dla Jquery

 

Uzytkownik otwiera strone.

PHP odwoluje sie do bazy, pobiera cala tabele i przekazuje ja do uzytkownika (cala wielka tabele trzeba przeslac). U uzytkownika Jquery zlicza te dane i wyswietla wynik. Gdyby lacza byly swiatlowodowe to moze to gdzies by mialo sens, ale nie sa i dlatego przy wiekszej ilosci postow na forum bedzie sie to strasznie slimaczyc.

Jeżeli będzie 100000 postów i ruch na stronie conajmniej 50osób online to może zauważysz jakieś spadki wydajności…

Biorąc pod uwagę fakt że prawie non stop będzie wykonywane to zliczanie, to taka operacja potrwa około 0,00001 sekundy ponieważ mysql będzie ją automatycznie sam cacheował

 

Różnicy praktycznie nie ma wielkiej, prawie żadnej. Mysql szybko poda całą tabelkę, a php zliczy, moce obliczeniowe jQuery to już są zależne od indywidualnego komputera użytkownika.

 

Oczywiście nie jestem zwolennikiem takiego rozwiązania lecz tylko uważam, że i tak nie odbije się to znacząco na wydajności dla użytkownika końcowego.

 

Jedyne zagrożenie w przesyłaniu całej tabeli to RAM, ale przesyłać całą tabelę tylko po to, aby zliczyć ilość rekordów to kompletny bezsens, już lepiej wybrać same ID i je zliczyć, ale po co je liczyć jak może to silnik bazy danych zliczyć przez COUNT(id_posta)

Dobra, to zastosuję sobie tego counta. Dzięki wielkie za pomoc !