So, Enterprise Server heruntergeladen und installiert.
Seltsamerweise ist der sogar noch langsamer als der Community-Server.
Ich habe den
SQL-Dump also ganz frisch auf dem Enterprise-Server eingelesen. Keine Daten(banken) übernommen!
Vorsichtshalber habe ich die Abfrage gleich 3x hintereinander durchgeführt:
Zitat:
SELECT SUM(POSITIONEN.MENGE) FROM POSITIONEN INNER JOIN BELEGE ON (POSITIONEN.BELEGNR = BELEGE.BELEGNR) WHERE POSITIONEN.ARTIKELNR = '1090213000' AND BELEGE.BELEGART = 'A' ;
/* 0 rows affected, 1 rows found. Duration for 1
query: 9,048 sec. */
SELECT SUM(POSITIONEN.MENGE) FROM POSITIONEN INNER JOIN BELEGE ON (POSITIONEN.BELEGNR = BELEGE.BELEGNR) WHERE POSITIONEN.ARTIKELNR = '1090213000' AND BELEGE.BELEGART = 'A' ;
/* 0 rows affected, 1 rows found. Duration for 1
query: 15,538 sec. */
SELECT SUM(POSITIONEN.MENGE) FROM POSITIONEN INNER JOIN BELEGE ON (POSITIONEN.BELEGNR = BELEGE.BELEGNR) WHERE POSITIONEN.ARTIKELNR = '1090213000' AND BELEGE.BELEGART = 'A' ;
/* 0 rows affected, 1 rows found. Duration for 1
query: 11,841 sec. */
Ich habe mir mal den Ausführungsplan anzeigen lassen
MySQL Enterprise:
Code:
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE POSITIONEN ref PRIMARY,artikelnr,belegnr artikelnr 53 const 16160 100.00 Using where
1 SIMPLE BELEGE eq_ref PRIMARY,belegart PRIMARY 52 POSITIONEN.belegnr 1 100.00 Using where
MariaDB:
Code:
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE POSITIONEN ref PRIMARY,artikelnr,belegnr artikelnr 53 const 16160 100.00 Using index condition
1 SIMPLE BELEGE eq_ref PRIMARY,belegart PRIMARY 52 POSITIONEN.belegnr 1 100.00 Using where
MariaDB macht also irgendwas anders als
MySQL.
Kann man dieses Verhalten
MySQL beibringen? ("USE INDEX" oder ähnliches?)