Autor Zpráva
davef6
Profil
Dobrý den, mám dotaz který vypíše všechny nejlépe hodnocené muže v pořadí

SELECT f.img_thumb,p.prezdivka,p.id_uziv,sum(h.jak) as soucet, count(h.koho) as hodnoceni, (sum(h.jak)-count(h.koho)) as ano FROM profil_data p join uziv_hodnoceni h on p.id_uziv = h.koho join foto f on p.id_uziv = f.id_uziv WHERE f.hl = 1 and p.pohlavi = 'm' group by p.id_uziv order by ano, soucet desc limit 20


ve sloupci jak jsou uloženy hodnoty hodnocení (líbí 1, nelíbí 2), z db zjišťuji kolikrát je hodnoce a řadím to podle procent 100% je max a podle počtu hodnocení.......jde toto nějak zjednodušit? příjde mi to pomalé
Kajman_
Profil *
explain
davef6
Profil
id  |	 select_type  |	 table    |	 type   |	 possible_keys    |	 key    |	 key_len  	 ref  | 	 rows   | 	 Extra
------------------------------------------------------------------------------------------------------------------------------------------------------
1   |	SIMPLE  |	f   |	ref |	id_uziv,hl 	hl   |	1   |	const   |	16842   |	Using temporary; Using filesort
1   |	SIMPLE  |	p   |	eq_ref   |	PRIMARY,pohlavi  | 	PRIMARY 	3   |	mp3stahujcz.f.id_uziv  | 	1   |	Using where
1   |  SIMPLE  |	h   |  ref  | 	koho   |	koho   |	3   |	mp3stahujcz.p.id_uziv  | 	2  |	Using where; Using index



z tohoto moc moudrý nejsem
Kajman_
Profil *
Na h by mohl pomoci index na koho.
davef6
Profil
díky už jsem ho tam doplnil, ale stejně mi to ještě nepříjde nejrychlejší:( prakticky bez větší zátěže 0,3-0,4s
Kajman_
Profil *
Můžete si udržovat předpočítané hodnoty v pomocné tabulce, aby to nemuselo dělat sum a count vždy.
davef6
Profil
máte namysli nějakou tabulku, která se například každých 10 minut aktualizuje a budou v ní uložené jen hodnoty sum a count případných 20ci řádků? a co když budu chtít stránkovat?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: