EKKi: Ist mein Rechner für tabellenübergreifende SQL-Abfrage zu lahm?

Beitrag lesen

Mahlzeit mysqlfan,

Ich möchte folgende Abfrage mit MySQL machen:

Du hast also ein Datenbank-(genauer: MySQL-)Problem.

$result = $mysqli->query("SELECT registration.registration, company.companyname, magazine.type FROM registration, company, magazine WHERE registration.registration = '{$_POST['book']}' AND magazine.registrationid = registration.registrationid AND company.companynumber = registration.companynumber");

Was genau soll dann dieser PHP-Code (siehe Zitat 1353?

Damit läufst Du höchstens Gefahr, dass man Dich auf die Gefahr von SQL-Injections aufgrund Deines offensichtlichen viel zu sorglosen Umgangs mit Benutzereingaben hinweist ...

Das Problem ist: Mein PC verarbeitet diese Anfrage nicht, obwohl sie korrekt formuliert zu sein scheint.
Es handelt sich um 3 Tabellen, von denen jede 500.000 Datensätze á ca. 7-10 Spalten hat.

Das an sich ist eigentlich kein Problem. Hast Du auf den Spalten, die Du als Filterkriterium bzw. "Foreign-Key" nutzt, vernünftige Indizes liegen (um die Suche zu beschleunigen)?

Prinzipiell würde ich Dir allerdings raten, die explizite JOIN-Syntax zu nutzen - das macht den SQL-Code IMHO erheblich lesbarer und einfacher verständlich.

RegistrationID und Companynr sind ganz normale Tabellenspalten, die nicht als Primärschlüssel definiert sind.

Außerdem würde ich Dir empfehlen, auf genau diese verwendeten Spalten jeweils einen Index zu legen.

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|