Thomas Wiedmann Wrote:
-------------------------------------------------------
> Hallo Alwin,
>
> die VIEW kannst Du wie folgt ersetzen (ich hoffe
> ich hab mich nicht vertippt) :
Nein, nicht vertippt, funktioniert wie es soll ;) Allerdings spart man durch diese Abfrage anscheinend gegenüber VIEW keinen JOIN ein. Sind hier tatsächlich Geschwindigkeitsvorteile zu erwarten? Optisch finde ich die VIEW Methode übersichtlicher.
> Wie viele Datensätze hast Du den in den einzelnen
> Tabellen?
In der Haupttabelle befinden sich 22 Datensätze zu Testzwecken. Meine m:n Zuordnungstabellen, die auch für die VIEWS verantwortlich sind, haben 3 (fo***), 4 (ex***) und 30 (fi***) Einträge. Dann gibt es noch ein paar 1:n Zuordnungstabellen, aber ich denke daran liegt es nicht.
> Gut, die Ausgabe des EXPLAIN ist jetzt komplex.
> Kritisch an dem EXPLAIN sind z.B. folgende (siehe
> Spalte EXTRA)
Danke, ich werde gleich etwas recherchieren.
> Kannst Du mal von der VIEW-Teil folgenden einen
> EXPLAIN machen..
Die Datenbank "projekte_db" habe ich nur zur Demonstration hier im Forum entworfen. Umgelegt auf die Datenbank mit der ich arbeite erhalte ich für meine drei VIEW-Teile folgende EXPLAINS:
+----+-------------+-------------+--------+---------------+---------+---------+---------------------------------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------------+--------+---------------+---------+---------+---------------------------------+------+-------------+
| 1 | SIMPLE | ca*** | index | PRIMARY | PRIMARY | 4 | NULL | 22 | Using index |
| 1 | SIMPLE | ca***_fi*** | ref | PRIMARY | PRIMARY | 4 | db_name.ca***.ca***_id | 1 | Using index |
| 1 | SIMPLE | fi*** | eq_ref | PRIMARY | PRIMARY | 1 | db_name.ca***_fi***.fi***_id | 1 | |
+----+-------------+-------------+--------+---------------+---------+---------+---------------------------------+------+-------------+
3 rows in set (0.00 sec)
+----+-------------+--------------+--------+---------------+---------+---------+------------------------------------+------+---------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------+--------+---------------+---------+---------+------------------------------------+------+---------------------------------------------+
| 1 | SIMPLE | fo*** | ALL | PRIMARY | NULL | NULL | NULL | 3 | Using temporary |
| 1 | SIMPLE | ca***_fo*** | index | PRIMARY | PRIMARY | 5 | NULL | 22 | Using where; Using index; Using join buffer |
| 1 | SIMPLE | ca*** | eq_ref | PRIMARY | PRIMARY | 4 | db_name.ca***_fo***.ca***_id | 1 | Using index |
+----+-------------+--------------+--------+---------------+---------+---------+------------------------------------+------+---------------------------------------------+
3 rows in set (0.00 sec)
+----+-------------+-----------------+-------+---------------+---------+---------+------------------------------+------+--------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------------+-------+---------------+---------+---------+------------------------------+------+--------------------------------+
| 1 | SIMPLE | ca*** | index | PRIMARY | PRIMARY | 4 | NULL | 22 | Using index; Using temporary |
| 1 | SIMPLE | ca*** _ex*** | ref | PRIMARY | PRIMARY | 4 | db_name.ca***.ca***_id | 1 | Using index |
| 1 | SIMPLE | ex*** | ALL | PRIMARY | NULL | NULL | NULL | 4 | Using where; Using join buffer |
+----+-------------+-----------------+-------+---------------+---------+---------+------------------------------+------+--------------------------------+
3 rows in set (0.00 sec)
Edited 1 time(s). Last edit at 05/28/2011 12:02PM by Alwin Bekker.