MySQL Forums
Forum List  »  German

Re: Wird Abfrage durch view-Tabellen gebremst?
Posted by: Alwin Bekker
Date: May 28, 2011 12:01PM

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.

Options: ReplyQuote




Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.