AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken [MySQL] Vereinfachung einer Abfrage mit Subquery
Thema durchsuchen
Ansicht
Themen-Optionen

[MySQL] Vereinfachung einer Abfrage mit Subquery

Ein Thema von 3_of_8 · begonnen am 4. Jun 2007 · letzter Beitrag vom 4. Jun 2007
Antwort Antwort
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#1

Re: [MySQL] Vereinfachung einer Abfrage mit Subquery

  Alt 4. Jun 2007, 10:25
Zitat von 3_of_8:
Ich hätte gemeint, man könnte den Subquery irgendwie durch eine GROUP BY-Klausel ersetzen, aber wenn es ohne den Subquery nicht geht, ist das auch kein Problem.
Hi,
ich würde Dir hier zustimmen, dass eine Unterabfrage das ganze vielleicht schneller machen könnte. Sicher bin ich mir nicht, kommt wohl unter anderem auf die Anfrageoptimierung an, aber so an sich könnte man die Selektion in eine verschachtelte Anfrage überführen, wobei die innere Anfrage nicht mit der äußeren korreliert. Damit sollte die innere Anfrage einmalig ausgeführt werden und das könnte (wie gesagt, bin nicht sicher) viel effizienter ablaufen als die unverschachtelte Anfrage. Da sollte man einfach mal testen, was schneller läuft.
Was ich meine ist etwas in der Richtung:

SQL-Code:
UPDATE ni_categories c
SET c.articles = SELECT ac.articleCount
FROM (SELECT a.catid, COUNT(a.articleid) as articleCount
      FROM ni_articles a
      GROUP BY a.catid) ac
WHERE ac.catid = c.catid
Hier sollte (wenn ich mich nicht irre) die innere Abfrage nur einmalig ausgeführt werden und die Selektionen auf deren Auswertung geht dann recht flink. Im Einzeiler würde im Worst-Case ein kompletter Durchlauf für jede catid nötig sein, so was dann zu einer deutlich höheren Laufzeit führt (wenn die Datenmenge groß genug ist).
Ich denke mal, Du meintest auch etwas in der Richtung?

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz