@MAriaDB
Mmh, ich arbeite nicht produktiv mit
mySQL. Aber die Erfahrung zeigt: Jedes RDBMS hat seine Schwächen, das sind ganz selten harte Fehler bei der
SQL Auswertung, aber häufig "obskures" Verhalten der Optimizer.
Glaub mir, wir saßen Tagelang dabei, die
SQL-Abfrage zu optimieren.
Wir haben am Ende sogar ganz perverse Dinge versucht (IIFs anstatt Wheres,...) doch letztendlich war es definitiv ein Problem von
MySQL.
Wir waren auch ziemlich erstaunt, dass ein Fork so viel schneller ist.
Btw. nachdem wir die Kunden auf MariaDB umgestellt haben, lief das gesamte Programm auch merklich schneller. Der Geschwindigkeitszuwachs beschränkt sich also nicht nur auf diese eine Abfrage!
Wir sind seitdem begeistert... Vor allem weil es auch wirklich schnell umgestellt ist.
Edit:
Hier mal das
SQL-Statement:
Code:
SELECT SUM(POSITIONEN.MENGE)
FROM POSITIONEN INNER JOIN BELEGE ON (POSITIONEN.BELEGNR = BELEGE.BELEGNR)
WHERE POSITIONEN.ARTIKELNR = '1090213000' AND BELEGE.BELEGART = 'A'
Unter
MySQL: /* 0 rows affected, 1 rows found. Duration for 1
query: 7,753 sec. */
Unter MariaDB: /* 0 rows affected, 1 rows found. Duration for 1
query: 0,078 sec. */
Belegart, Artikelnr und Belegnr sind natürlich indiziert.