Datenbankfeld mit serialize(array) schneller als JOIN?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Datenbankfeld mit serialize(array) schneller als JOIN?

Beitrag von mgutt »

Ich hatte eine Idee, mit der ich eine n:m Beziehung umgehen wollte, um vielleicht schneller zu sein.

Ähnlich wie bei phpbb_search_results speichere ich die gesuchten ids in einem Array und speichere sie in der Datenbank tabelle1 per serialize(array).

Nun brauche ich bei der Ausgabe keinen INNER JOIN mehr, sondern lese erstmal die Grunddaten aus, damit ich die normalen Daten beziehe und den Inhalt des Arrays.

Danach mit einer zweiten Abfrage erhalte ich die Informationen zu den ids der tabelle2:

Code: Alles auswählen

SELECT * FROM tabelle2 WHERE id IN(implode(', ', unserialize($array)))
D.h. anstatt einem INNER JOIN Konstrukt nutze ich zwei normale SELECTs.

Fragen:
- Sehe ich das richtig, dass ich dann schneller bin? (beide Tabellen werden mehrere tausend Einträge besitzen)
- Was mache ich, wenn in tabelle2 ids ändern oder löschen will. Wie ermittel ich dann, welche Einträge in tabelle1 die ids im serialized(array) haben, damit ich die Bedarf dort ebenfalls rauslöschen kann?

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „Coding & Technik“