|
|
#1 (permalink) | |||||||||||||
|
$_POST => dev/null
|
Code:
Code:
Zitat:
ist hier ev. mal ein mysql Programmierer der mich da unterstützen könnte? bitte nicht INNER JOIN vorschlagen da ich nich alle ip's in laendercode gespeichert habe. Die IP wird als long wert gespeichert. Besten dank LKTechniks Klamm Lose-Statistik Seite
Loseumlauf oder Losevernichtung oder Losemenge oder EF-Accounts ------------------------------------------------------------------------------------- Actionlink Lösungen prüfen Neuer Actionlink melden oder Actionlink Prüfen |
|||||||||||||
|
|
|
| Gesponsorte Links |
|
|
#2 (permalink) |
|
bekämpft die Mächte des Bösen
|
Du vergleichst ja mit > und <. Da kann ich mir schon vorstellen, dass da kein Index greift.
Schreib doch mal EXPLAIN vor die Abfrage, dann siehst du genau, was MySQL macht. Aber über 20 Millionen Datensätze kann schon ne Weile dauern, wenn du keinen Index parat hast. |
|
|
|
|
|
#3 (permalink) |
|
alias Echnaton
|
Einen Index auf die USER Tabelle kann er schon deshalb nicht verwenden, weil diese Tabelle der "composite table" ist, also die Tabelle, die er beim Join zuerst anlangt.
Das Vorgehen ist ja sinngemäß: Hol Dir den ersten Satz der USER-Tabelle und suche alle dazu passenden Sätze aus der LAENDERCODE, dann hol Dir den zweiten Satz aus der USER und suche alle dazu passenden Sätze aus der LAENDERCODE, dann den dritten ... Ein Index auf die USER-Tabelle wäre ja nur dann sinnvoll, wenn die Abfrage umgekehrt wäre ( hole die erste Zeile aus der LAENDERCODE und suche alle passenden Sätze aus der USER ...). Theoretisch könnte ein Index auf die USER die Abfrage auch dann beschleunigen, wenn ein "Index-only" Zugriff möglich wäre. ( Also wenn der Index über IP und KundenID gehen würde, oder wenn in der Abfrage nicht die USER.KundenID abgefragt würde ). Kannst ja zu Testzwecken mal die USER.KundenID aus der Abfrage weglassen und schauen, obs dann schneller ist. ( was ich allerdings bezweifle, wenn un der USER Tabelle wirklich nur 184 Sätze drin sind ) Als erstes würde ich allerdings mal einen Index über IP_F und IP_T legen ( ein Index über beide Spalten, nicht zwei getrennte Indices ) und schauen, ob mir das was bringt. Dann kannst Du auch einen Index über IP_F,IP_T,kurz,land legen. Das sollte am meisten bringen.
"transversalis teleport" sprach der Magier und war fort
Geändert von transversalis (20.06.2011 um 07:16:43 Uhr) |
|
|
|
|
|
#4 (permalink) | ||
|
return void
|
Zitat:
Zitat:
Man kann es aber natürlich mal ausprobieren. |
||
|
|
|
|
|
#5 (permalink) | |
|
$_POST => dev/null
|
Zitat:
mit den Indexen habe ich schon viel rumgespielt das schnellste bisher ist n sub-select mit 21 sec aber alles nicht das wahre. Klamm Lose-Statistik Seite
Loseumlauf oder Losevernichtung oder Losemenge oder EF-Accounts ------------------------------------------------------------------------------------- Actionlink Lösungen prüfen Neuer Actionlink melden oder Actionlink Prüfen |
|
|
|
|
|
#7 (permalink) | |||||||||||||||||||||||||||||||||
|
$_POST => dev/null
|
HTML-Code:
Klamm Lose-Statistik Seite
Loseumlauf oder Losevernichtung oder Losemenge oder EF-Accounts ------------------------------------------------------------------------------------- Actionlink Lösungen prüfen Neuer Actionlink melden oder Actionlink Prüfen |
|||||||||||||||||||||||||||||||||
|
|
|
|
#8 (permalink) |
|
return void
|
MySQL-Version?
Schonmal mit nem Index-Hinweis (use) oder Zwang (force) probiert? [1] Bei alten MySQL-Versionen ist es manchmal ganz sinnvoll, wenn diese auf Grund "veralteter Algorithmen" Indexe nicht nutzen. [1] http://dev.mysql.com/doc/refman/5.1/en/index-hints.html |
|
|
|
|
|
#11 (permalink) |
|
alias Echnaton
|
Also, ich sehe gerade, dass -zumindest für DB2 z/OS- die Abfrage
WHERE spalte1 BETWEEN spalte2 AND spalte3 gar nicht stage1/indexfähig ist. --> http://www.mayeruli.de/db2/stage1.html Möglicherweise kann das dann mySQL auch nicht
"transversalis teleport" sprach der Magier und war fort
|
|
|
|
|
|
#12 (permalink) |
|
return void
|
gute Idee Transversalis an einen Bug denke ich meist zuletzt. |
|
|
|
|
|
#13 (permalink) |
|
$_POST => dev/null
|
hi
aktuell wenig Zeit. links schaue ich mir später an. Mysql Version ist 5.5.11 Klamm Lose-Statistik Seite
Loseumlauf oder Losevernichtung oder Losemenge oder EF-Accounts ------------------------------------------------------------------------------------- Actionlink Lösungen prüfen Neuer Actionlink melden oder Actionlink Prüfen |
|
|
![]() |
| Gesponsorte Links |
| Anzeige |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [PHP/MySQL] Left join | Gsus | Programmierung | 5 | 15.04.2010 09:30:03 |
| [MySQL] Mal wieder GROUP BY, COUNT und LEFT JOIN | Gremlin | Programmierung | 10 | 25.08.2009 06:11:15 |
| [SQL] LEFT JOIN - Problem | resoucer | Programmierung | 10 | 01.08.2007 13:53:23 |
| [MySQL/PHP] LEFT JOIN mit gleichen Spaltennamen? | formelx | Programmierung | 2 | 16.08.2006 11:30:42 |
| [PHP/MySQL] JOIN LEFT ... ON Problem | Goltergaul | Programmierung | 6 | 07.07.2006 16:10:56 |