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

Beitrag lesen

Hallo!

Ich möchte folgende Abfrage mit MySQL machen:

$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");

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.

Nicht nur über das php-Skript, sondern auch im SQL-Abfragefenster bei phpMyAdmin führt folgende Abfrage zu derselben andauernden 100% CPU-Auslastung:

SELECT  
	registration.registration, company.companyname, magazine.type  
FROM  
	registration, company, magazine  
WHERE  
		registration.registration = 'A12345'  
	AND  
		magazine.registrationid = registration.registrationid  
	AND  
		company.companynr = registration.companynr

Wenn ich zum Test diese einfache Abfrage aus einer der Tabellen mache (hat ja schließlich immerhin schon 500.000 Zeilen, dann funktioniert dies problemlos:

$result = $mysqli->query("SELECT registration.registration FROM registration WHERE registration.registration = '{$_POST['book']}'");

Der Rechner ist ein 2 GhZ mit 1 GB RAM. Das kann doch nicht die Kiste so überfordern?! Oder liegt es am PC, dass die tabellenübergreifende Suche nicht funktioniert?

Noch ein Hinweis: Ich führe die Abfrage nicht nach Primärschlüsseln aus, falls das hilft.
RegistrationID und Companynr sind ganz normale Tabellenspalten, die nicht als Primärschlüssel definiert sind.