SELFPHP: Version 5.8.1 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche


International PHP Conference


WebTech Conference



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



PHP Summit


Software Architecture Summit


:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 
HTML5 Days


JavaScript Days


:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Deine Leidenschaft ist die Unterwasserfoto-grafie?


Dann ist Qozido genau das Richtige für Dich!

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!

www.qozido.de

 


Zurück   PHP Forum > SELFPHP > MySQL

MySQL Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 25.05.2008, 23:20:57
Tim22 Tim22 ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 1
Tim22 befindet sich auf einem aufstrebenden Ast
MySQL Performance?

Ich möchte folgende Abfrage optimieren. Dazu habe die Abfrage per EXPLAIN mal erklären lassen:

Code:
SELECT d.NAME AS COL, SUM( 
CASE WHEN d.BLOCK =1
THEN Anzahl
ELSE 0 
END ) AS Anzahl1, SUM( 
CASE WHEN d.BLOCK =2
THEN Anzahl
ELSE 0 
END ) AS Anzahl2 FROM (
daten AS d
)
WHERE (
d.ART NOT LIKE 'ZV%'
)
GROUP BY d.NAME
ORDER BY d.NAME ASC
Diese Abfrage durchläuft alle Datensätze 7055 und nutzt den Schlüssel der auf d.Name indiziert. Die folgende Abfrage

Code:
SELECT d.NAME AS COL, d.BLOCK, SUM(Anzahl) 
FROM (
daten AS d
)
WHERE (
d.ART NOT LIKE 'ZV%'
)
GROUP BY d.NAME
ORDER BY d.NAME ASC
Diese Abfrage durchläuft nur 6604 Datensätze. Das sind diese die im Feld Art nicht 'ZV%' sind.

In der ersten Abfrage werden alle Daten auch die mit 'ZV%' im Feld Art sind durchlaufen. Leider liefert die 2 Abfrage nicht das gewünschte Ergebnis, da die Felder Block nicht nebeneinander stehen. Das macht insbesodere dann ein Problem wenn ich z.B. nur 20 Einträge selektieren will. Dann bekomme ich nur die aus Block 1 und ggf. nur ein paar aus Block 2. Da ich aber Block 1 und Block 2 wie folgt nebeneinander stehen will ist das nicht gut.

Name, Anzahl Block 1, Anzahl Block 2
Alfred, 10, 20
Max, 30, 40

Die erste Abfrage dauert vergleichsweise lange. Mir geht es jetzt darum die Abfrage zu optimieren. Wie schaffe ich es das in der ersten Abfrage auch nur die notwendigen Zeilen 6604 durchlaufen werden?

Gibt es noch andere Optimierungstips?
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL Performance (eine oder mehrere DBs) bjoernfal MySQL 2 02.01.2008 18:39:16
MySQL Performance bei Zugriff über verschiedene Webserver? janpeters MySQL 0 08.06.2007 11:06:44
mysql Performance Problem SELECT mit FORCE INDEX coller MySQL 0 19.04.2007 17:39:24
MySQL Page Script. Problem. dtone MySQL 8 15.10.2006 14:58:06
Performance bei mysql und blobs farion MySQL 4 22.09.2005 15:36:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:46:57 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.


© 2001-2014 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt