SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
|
15. 06. 2007. | #1 | |
Ivan Dilber
Sir Write-a-Lot
|
dve ideje koje mozda pomognu (iz mysql manuala):
Citat:
__________________
Leadership is the art of getting people to want to do what you know must be done. |
|
15. 06. 2007. | #2 |
Knowledge base
Wrote a book
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
|
Iz mog iskustva, na tako velikim tabelama, indexi ne pomazu previse.
Zato ih obicno splitujem po nekom kriterijumu, koji omogucava da ukupno vreme pretrage za sve te tabele uvek bude manje od vremena pretrage za jednu u kojoj su svi recordi. Naravno, to zahteva vise posla oko inserta i update-a istih (i vise select query-ja), ali mislim da vredi.
__________________
Năo quero mais seguir um só caminho |
15. 06. 2007. | #3 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
Pokusaj da izvrsis isti query, s tim sto ces proveravati "whois_status is not null", pa vidi da li se nesto menja (kako si rekao, za 99% zapisa vrednost je null), bar da znas da li index radi kako treba. Ili eksperimentisi sa preostala dva parametra.. Sto je veci dataset iz kog biras podatke, vece je usporenje, ma koliko da ti je dobar index.
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams |
16. 06. 2007. | #4 |
old school
Professional
|
Ako ti je za uslove u WHERE klauzuli cardinality visok (npr. veci od 40% od ukupnog broja redova), onda zaboravi na indexe, jer ce u tom slucaju full table scan uvijek biti optimalniji.
Koju verziju mysql-a imas?
__________________
Blog: Baze podataka ------------------------ Oracle OCP DBA Oracle OCE SQL Expert Oracle OCP Developer Certified MySQL DBA |
16. 06. 2007. | #5 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Kako na kom serveru, na serveru gde sam ovo testirao je 5.1.18-beta.
|
18. 06. 2007. | #6 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
E da, samo da javim da sam ovde napravio "workaround", tako sto sam ovaj query razbio na 2 malo jednostavnija kverija.
Dakle, umesto jednog: Kôd:
select domain from odm_result_keywords_de where whois_status is null and (ovt_ext > 0 or ovt_ext_local > 0) Kôd:
select domain from odm_result_keywords_de where ovt_ext > 0 and whois_status is null Kôd:
select domain from odm_result_keywords_de where ovt_ext_local > 0 and whois_status is null |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
[MySQL] Optimizacija upita, indexi | mb_sa | SQL baze podataka - Sponzor: Baze-Podataka.net | 15 | 30. 08. 2009. 16:47 |
MySQL optimizacija | bluesman | SQL baze podataka - Sponzor: Baze-Podataka.net | 2 | 27. 02. 2009. 15:47 |
CSS optimizacija | Vladimir Nikolic | (X)HTML, JavaScript, DHTML, XML, CSS | 25 | 23. 08. 2006. 21:54 |
PHP optimizacija | bluesman | PHP | 10 | 16. 05. 2006. 01:04 |
optimizacija koda? | Blood | SQL baze podataka - Sponzor: Baze-Podataka.net | 12 | 26. 03. 2006. 17:53 |