MySQL Forums
Forum List  »  German

Re: Simpler Join: Komplette Tabelle wird gescannt
Posted by: Gregor Kempny
Date: December 22, 2012 10:28AM

Bingo, das ist es! Danke!
GROUP BY wetten.id entfernt und statt 15 Sekunden braucht er jetzt 0,0...!
Zusätzlich habe ich die selektierten Spalten optimiert.

Der Explain gibt nun folgendes aus (hoffe es ist einigermaßen erkennbar):
id 	select_type 	table 	type 	possible_keys 	key 	key_len 	ref 	rows 	Extra
1 	PRIMARY 	wetten 	range 	PRIMARY,zeit_wettende,kategorie,kategorie_2 	zeit_wettende 	4 	NULL	10900 	Using where; Using filesort
1 	PRIMARY 	kategorien 	eq_ref 	PRIMARY,land,sportart,aktiv,sportart_2 	PRIMARY 	4 	gbet_gbet.wetten.kategorie 	1 	Using where
1 	PRIMARY 	land 	eq_ref 	PRIMARY 	PRIMARY 	4 	gbet_gbet.kategorien.land 	1 	Using where; Using index
1 	PRIMARY 	ligauebersetzung 	ref 	liga,sprache,liga_sprache 	liga_sprache 	6 	gbet_gbet.kategorien.id,const 	1 	Using where
1 	PRIMARY 	sportarten 	eq_ref 	PRIMARY 	PRIMARY 	4 	gbet_gbet.kategorien.sportart 	1 	
1 	PRIMARY 	wt1 	ref 	PRIMARY,kombi_wette_position,wette,team,wette_2 	kombi_wette_position 	5 	gbet_gbet.wetten.id,const 	1 	Using where
1 	PRIMARY 	wt2 	ref 	PRIMARY,kombi_wette_position,wette,team,wette_2 	kombi_wette_position 	5 	gbet_gbet.wt1.wette,const 	1 	Using where
1 	PRIMARY 	t1 	eq_ref 	PRIMARY 	PRIMARY 	4 	gbet_gbet.wt1.team 	1 	Using where
1 	PRIMARY 	t2 	eq_ref 	PRIMARY 	PRIMARY 	4 	gbet_gbet.wt2.team 	1 	Using where
1 	PRIMARY 	quoten1 	ref 	wette 	wette 	4 	gbet_gbet.wt2.wette 	3 	Using where
1 	PRIMARY 	quoten2 	ref 	wette 	wette 	4 	gbet_gbet.wt2.wette 	3 	Using where
1 	PRIMARY 	quotenX 	ref 	wette 	wette 	4 	gbet_gbet.wetten.id 	3 	
1 	PRIMARY 	landuebersetzung 	ref 	sprache 	sprache 	2 	const 	215 	Using where
4 	DEPENDENT SUBQUERY 	wetten_wetten 	ref 	PRIMARY,spezial_oberwette 	spezial_oberwette 	4 	func 	26 	
4 	DEPENDENT SUBQUERY 	wetten_eigenewetten 	ref 	wette,schein 	wette 	4 	gbet_gbet.wetten_wetten.id 	2 	Using where
3 	DEPENDENT SUBQUERY 	wetten_eigenewetten 	ref 	wette,schein 	wette 	4 	func 	2 	Using where
2 	DEPENDENT SUBQUERY 	wetten_wetten 	ref 	spezialart,spezial_oberwette,spezialart_2 	spezial_oberwette 	4 	func 	26 	Using where
D.h. er macht nur noch einen großen Scan auf wetten, fragt dabei ca. 10000 Zeilen ab (ca. 3% der Gesamtzeilen), was aber wegen der Sortierung völlig in Ordnung zu sein scheint. Ein Index auf zeit_wettende ist vorhanden.
Also ich bin schon sehr zufrieden. War schon eifrig dabei die SHOW CREATE TABLE von den zehn beteiligten Tabellen herauszusuchen, aber ich denke das ist nicht mehr notwendig. :)

Options: ReplyQuote




Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.