Nasel jsem informaci, ze COUNT(DISTINCT user) je dost pomale (http://dev.mysql.com/doc/refman/5.0/...mization.html), tak muzes otestovat toto:
SELECT page, COUNT(user) FROM (SELECT DISTINCT user, page FROM temp) as temp2 GROUP BY page;
Nasel jsem informaci, ze COUNT(DISTINCT user) je dost pomale (http://dev.mysql.com/doc/refman/5.0/...mization.html), tak muzes otestovat toto:
SELECT page, COUNT(user) FROM (SELECT DISTINCT user, page FROM temp) as temp2 GROUP BY page;
Lenovo Thinkpad X220 (i5 2410M, 16GB RAM, HD3000, 12,5" IPS, 1TB HDD Seagate 7mm, 120GB mSATA Crucial M4), Mini Dock Plus Ser. 3, 29" LG 29UM65 + 22" Eizo S2202W
Zalezi v akom dotaze to pouzijes. Z tojho dotazu vyplyvaju dve veci:
1. (SELECT DISTINCT user, page FROM temp) robi full scan tabulky temp a uklada si vysledok niekam do pamete
2. SELECT page, COUNT(user) FROM (SELECT DISTINCT user, page FROM temp) as temp2 GROUP BY page robi dalsi full san tabulky nad tabulkou ulozenou v pameti. Cize v konecnom dosledku robis 2 fullscany miesto jednoho. Nehovoriac o tom ze subselecty nie su podporovane vo vsetkych verziach mysql. Ano distinct je pomaly resp count(distinct user) je pomalsi ako count(*), ale osobne si myslim, ze moznost ktoru sme ponukli bude rychlejsia ako tvoj selekt.
Ja taky nepsal, ze to moje je 100% rychlejsi a to predchozi je "pomalej sajrajt"
Psal jsem, ze to muze otestovat. Samozrejme na poradne velke tabulce.
Lenovo Thinkpad X220 (i5 2410M, 16GB RAM, HD3000, 12,5" IPS, 1TB HDD Seagate 7mm, 120GB mSATA Crucial M4), Mini Dock Plus Ser. 3, 29" LG 29UM65 + 22" Eizo S2202W
Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)