Hallo zusammen,
also ich teste jetzt schon seit Monaten mit meinen Abfragen rum. War eigentlich bisher zufrieden damit, aber nun, dank phpMyAdmin 2.7 bin ich das nicht mehr. An vielen Stellen bekomme ich bei " MySQL-Laufzeit-Informationen anzeigen" den Hinweiß das Indieze nicht richtig gesetzt sind oder die Abfragen nicht stimmen.
Also weiß nicht weiter. Das mySQL Handbuch hoch und runter lesen und zig hundert Seiten bei Google brachten mich auch nicht wirklich weiter.
Hier mal die Abfrage. Hoffe man kann sie lesen, denn der mir bekannt CodeConverter funzt leider nicht mehr.
Code:
SELECT uk1.id AS uk_id,
uk1.bezeichnung,
LEFT( uk1.beschreibung, 270 ) AS beschreibung,
uk1.bild,
uk1.bild_breite,
uk1.bild_hoehe,
td.bezeichnung AS name_subregion,
td.url_bezeichnung AS url_name_subregion,
td_4.bezeichnung AS name_land,
td_3.bezeichnung AS name_ort,
td_5.bezeichnung AS name_region,
td_4.url_bezeichnung AS url_name_land,
td_3.url_bezeichnung AS url_name_ort,
td_2.bezeichnung AS ortsteil,
td_2.url_bezeichnung AS ortsteil_url,
td_5.url_bezeichnung AS url_name_region,
DATE_FORMAT( from_unixtime( uk1.eingetragen_am ) , '%d.%m.%y' ) AS datum
FROM fndb_utf8_unterkuenfte uk1
LEFT JOIN fndb_utf8_textdaten td_4 ON ro_1.ort_id = td_4.ort_id AND td_4.typ = 100200000 /* Land */
LEFT JOIN fndb_utf8_textdaten td_3 ON ro_1.ort_id = td_3.ort_id AND td_3.typ = 100600000 /* Hauptort */
LEFT JOIN fndb_utf8_textdaten td_2 ON td_2.ort_id = ro_1.ort_id AND td_2.typ = 100700000 /* Ortsteil */
JOIN fndb_utf8_textdaten td_5 ON td_5.ort_id = ro_regio.id_regio1 /* Region */
LEFT JOIN fndb_utf8_textdaten td ON td.ort_id = ro_regio.id_regio2 /* Subregion */
JOIN fndb_utf8_rangordnung ro_1 ON uk1.ort_id = ro_1.ort_id
LEFT JOIN fndb_utf8_rangordnung_regio ro_regio ON ro_regio.regio_id = regio_ort.regio_id
JOIN fndb_utf8_regio_ort regio_ort ON regio_ort.ort_id = td_3.ort_id
WHERE uk1.freigegeben IS NOT NULL
GROUP BY uk1.id
ORDER BY uk1.eingetragen_am DESC
LIMIT 5
Die Ausgabe von Explain gibt es in der Anlage.
Was mich da stört ist das typ=index bei uk1. Rows sind dort ja 109. Die DB hat in dem Fall 117 Einträge.
Fragt bitte nicht warum ich an manchen Stellen ein Left-Join habe und an anderen nicht. Das habe ich einfach durch testen und versuchen. Ob es stimmt oder komplett falsch ist weiß ich nicht. Ich verzweifel noch damit.
Wenn Ihr den Aufbau und Indexe der einzelnen Tabellen braucht, dann sagt es einfach, ich kann euch alles geben.
Kann mir jemand helfen von euch?
Danke auf jeden Fall schon mal
Guß, Ingo