MySQL Forums
Forum List  »  German

Re: Wird Abfrage durch view-Tabellen gebremst?
Posted by: Thomas Wiedmann
Date: May 28, 2011 11:13AM

Hallo Alwin,

die VIEW kannst Du wie folgt ersetzen (ich hoffe ich hab mich nicht vertippt) :

SELECT personen.*
, standort.standort_name
, group_concat(DISTINCT personen_projekte.projekt_id SEPARATOR ', ') AS projekt_id_gesucht
, group_concat(DISTINCT projekte.projekt_name ORDER BY projekte.projekt_id SEPARATOR '. ') AS projekt_name_gesucht
, projekte_view.projekt_name AS alle_zugeordneten_projekte
FROM
personen
JOIN standort
ON personen.standort_id = standort.standort_id
JOIN personen_projekte
ON personen.personen_id = personen_projekte.personen_id
JOIN projekte
ON personen_projekte.projekt_id = projekte.projekt_id
JOIN (SELECT personen.personen_id
, group_concat(DISTINCT projekte.projekt_name ORDER BY projekte.projekt_id SEPARATOR ', ') AS projekt_name
FROM
personen
JOIN personen_projekte
ON personen.personen_id = personen_projekte.personen_id
JOIN projekte
ON personen_projekte.projekt_id = projekte.projekt_id
GROUP BY
personen.personen_id
ORDER BY NULL ) AS projekte_view
ON personen.personen_id = projekte_view.personen_id
WHERE personen.name LIKE '%an%'
AND personen_projekte.projekt_id IN (3)
GROUP BY personen.personen_id;


Wie viele Datensätze hast Du den in den einzelnen Tabellen?


Gut, die Ausgabe des EXPLAIN ist jetzt komplex. Kritisch an dem EXPLAIN sind z.B. folgende (siehe Spalte EXTRA)

| 4 | DERIVED | c*** | index | PRIMARY | PRIMARY | 4 | NULL | 22 | Using index; Using temporary; Using filesort |



Kannst Du mal von der VIEW-Teil folgenden einen EXPLAIN machen..

SELECT personen.personen_id
, group_concat(DISTINCT projekte.projekt_name ORDER BY projekte.projekt_id SEPARATOR ', ') AS projekt_name
FROM personen
JOIN personen_projekte
ON personen.personen_id = personen_projekte.personen_id
JOIN projekte
ON personen_projekte.projekt_id = projekte.projekt_id
GROUP BY personen.personen_id
ORDER BY NULL


Grüße
Thomas

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.