Hallo Christoph,
um bei Performancefragen richtig helfen zu können, bedarf es folgender Informationen (für alle beteiligten Tabellen):
* SHOW CREATE TABLE tbl; -- liefert engine, indexes
* SHOW TABLE STATUS LIKE 'tbl'; -- liefert die Tabellengrößen
* EXPLAIN SELECT ...; -- EXPLAIN Ausgabe für den Zugriffpfad
* SHOW VARIABLES LIKE '%buffer%'; -- wichtige MySQL Server Einstellungen
Bitte SQL-Befehle und die diservev Ausgaben mit [ code ] [ / code ] (ohne die Leerzeichen) einklammer, sonst kann man das Ergebnis schlecht lesen.
Explain Beispiel
mysql> EXPLAIN select * from t;
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| 1 | SIMPLE | t | ALL | NULL | NULL | NULL | NULL | 1 | |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)
mysql>
anstatt OR kannst Du auch IN ( "-1", "85001074") verwenden, aber ich glaube nicht, dass dies die Lösung ist.
SELECT e1.*, e2.*
FROM element AS e1
LEFT JOIN element AS e2
ON e2.parentid = "40F7A27A968F448EAFD69885BB5F9698"
AND e2.operator = "85001074"
AND e2.language = "de_DE"
AND e2.elementid = e1.elementid
WHERE e1.parentid = "40F7A27A968F448EAFD69885BB5F9698"
AND e1.language = "de_DE"
AND e1.operator IN ( "-1", "85001074");
Zu "SELECT * FROM " : Müssen wirklich alle Felder gelesen werden?
Wir gesagt, ohne einen EXPLAIN und die original Tabellenstrukturen plus ein paar Testdaten (INSERT) läßt sich aus der Entfernung nicht viel sagen.
Grüße
Thomas