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

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: 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:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.05.2008, 00:20:57
Tim22 Tim22 ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 1
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 MySQLi/PDO/(MySQL) 2 02.01.2008 19:39:16
MySQL Performance bei Zugriff über verschiedene Webserver? janpeters MySQLi/PDO/(MySQL) 0 08.06.2007 12:06:44
mysql Performance Problem SELECT mit FORCE INDEX coller MySQLi/PDO/(MySQL) 0 19.04.2007 18:39:24
MySQL Page Script. Problem. dtone MySQLi/PDO/(MySQL) 8 15.10.2006 15:58:06
Performance bei mysql und blobs farion MySQLi/PDO/(MySQL) 4 22.09.2005 16:36:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:15:27 Uhr.


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


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