php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 24-04-2012, 12:02
theone
 Registrierter Benutzer
Links : Onlinestatus : theone ist offline
Registriert seit: Apr 2003
Beiträge: 91
theone ist zur Zeit noch ein unbeschriebenes Blatt
theone eine Nachricht über ICQ schicken
Standard MySQL Geschwindigkeit

Ich habe gerade ein Performance Problem bei einer Anfrage.

Diese dauert (je nach Systemlast) zwischen 10 und 80 sec.

PHP-Code:
SELECT 
o
.CustomerID as o_CustomerID,
o.OrderID as o_OrderID,
o.ExternalOrderID as o_ExternalOrderID,
o.OrderType as o_OrderType,
o.OrderStatus as o_OrderStatus,
o.OrderTimestamp as o_OrderTimestamp,
o.DeliveryAddressID as o_DeliveryAddressID,
o.TotalBrutto as o_TotalBrutto,
ca.CustomerID as ca_CustomerID,
ca.Company as ca_Company,
ca.AdditionalName as ca_AdditionalName,
ca.FirstName as ca_FirstName,
ca.Surname as ca_Surname,
ca.Street as ca_Street,
ca.HouseNumber as ca_HouseNumber,
ca.ZIP as ca_ZIP,
ca.City as ca_City,
ca.CountryID as ca_CountryID,
cd.CustomerID as cd_CustomerID,
cd.Company as cd_Company,
cd.AdditionalName as cd_AdditionalName,
cd.FirstName as cd_FirstName,
cd.Surname as cd_Surname,
cd.Street as cd_Street,
cd.HouseNumber as cd_HouseNumber,
cd.ZIP as cd_ZIP,
cd.City as cd_City,
cd.CountryID as cd_CountryID,
cu.CustomerNumber as cu_CustomerNumber,
cu.Company as cu_Company,
cu.AdditionalName as cu_AdditionalName,
cu.FormOfAddress as cu_FormOfAddress,
cu.Title as cu_Title,
cu.FirstName as cu_FirstName,
cu.Surname as cu_Surname,
cu.Street as cu_Street,
cu.HouseNo as cu_HouseNo,
cu.ZIP as cu_ZIP,
cu.City as cu_City,
cu.CountryID as cu_CountryID,
cu.CountryISO2 as cu_CountryISO2,
cu.ContactPerson as cu_ContactPerson,
cu.Telephone as cu_Telephone,
cu.Mobile as cu_Mobile,
cu.Email as cu_Email,
cu.EbayName as cu_EbayName,
cu.Newsletter as cu_Newsletter,
cu.Language as cu_Language,
cu.VAT_ID as cu_VAT_ID,
cu.DateOfBirth as cu_DateOfBirth,
cu.LastSalesOrder as cu_LastSalesOrder,
cu.LastSalesOrderCount as cu_LastSalesOrderCount
FROM orders o
,
customer_address ca,
delivery_address cd,
customer cu
WHERE o
.CustomerID ca.CustomerID
AND o.CustomerID cd.CustomerID
AND o.CustomerID cu.CustomerID
AND o.OrderID ='$OrderID' 
Jede der 4 Tabellen ist ~100.000 Einträge und 10mb schwer.

Ich habe schon versucht mit Joins das zu bewältigen, aber diese sind genauso schnell.

In dem Beispiel suche ich nach einer Bestellnummer, ich suche aber auch teilweise nach Kombis z.B. Name & PLZ.
Mit Zitat antworten
  #2 (permalink)  
Alt 24-04-2012, 12:04
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Indexe richtig gesetzt?

Was sagt EXPLAIN?

Verwende bitte nicht die Theta-Style Schreibweise (FROM a, b, c). Die ist schwer lesbar und verleitet zu Fehlern.
Mit Zitat antworten
  #3 (permalink)  
Alt 24-04-2012, 12:41
theone
 Registrierter Benutzer
Links : Onlinestatus : theone ist offline
Registriert seit: Apr 2003
Beiträge: 91
theone ist zur Zeit noch ein unbeschriebenes Blatt
theone eine Nachricht über ICQ schicken
Standard

Code:
+----+-------------+-------+------+---------------+------------+---------+--------------------------+-------+--------------------------------+
| id | select_type | table | type | possible_keys | key        | key_len | ref                      | rows  | Extra                          |
+----+-------------+-------+------+---------------+------------+---------+--------------------------+-------+--------------------------------+
|  1 | SIMPLE      | cu    | ALL  | NULL          | NULL       | NULL    | NULL                     | 19691 |                                |
|  1 | SIMPLE      | o     | ALL  | NULL          | NULL       | NULL    | NULL                     | 21224 | Using where; Using join buffer |
|  1 | SIMPLE      | cd    | ref  | CustomerID    | CustomerID | 302     | db374593146.o.CustomerID |     1 | Using where                    |
|  1 | SIMPLE      | ca    | ALL  | NULL          | NULL       | NULL    | NULL                     | 21226 | Using where; Using join buffer |
+----+-------------+-------+------+---------------+------------+---------+--------------------------+-------+--------------------------------+
Mit Zitat antworten
  #4 (permalink)  
Alt 24-04-2012, 12:42
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

possible keys => NULL

Ganz schlecht. Dir fehlen die passenden Indexe.
Mit Zitat antworten
  #5 (permalink)  
Alt 24-04-2012, 12:52
theone
 Registrierter Benutzer
Links : Onlinestatus : theone ist offline
Registriert seit: Apr 2003
Beiträge: 91
theone ist zur Zeit noch ein unbeschriebenes Blatt
theone eine Nachricht über ICQ schicken
Standard

AAhh, super! Ich hab jetzt indexe gesetzt und komme auf 2sec.
Damit kann man doch arbeiten! Danke

Code:
+----+-------------+-------+------+-------------------------+------------+---------+--------------------------+------+-------------+
| id | select_type | table | type | possible_keys           | key        | key_len | ref                      | rows | Extra       |
+----+-------------+-------+------+-------------------------+------------+---------+--------------------------+------+-------------+
|  1 | SIMPLE      | o     | ref  | OrderID,CustomerID      | OrderID    | 302     | const                    |    1 | Using where |
|  1 | SIMPLE      | cu    | ref  | CustomerID              | CustomerID | 302     | db374593146.o.CustomerID |    1 | Using where |
|  1 | SIMPLE      | ca    | ref  | CustomerID              | CustomerID | 302     | db374593146.o.CustomerID |    1 | Using where |
|  1 | SIMPLE      | cd    | ref  | CustomerID,CustomerID_2 | CustomerID | 302     | db374593146.o.CustomerID |    1 | Using where |
+----+-------------+-------+------+-------------------------+------------+---------+--------------------------+------+-------------+
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
geschwindigkeit keks333 SQL / Datenbanken 23 24-11-2009 00:36
Geschwindigkeit von MySQL (MySQL vs. filesystem) Luke BRAINSTORMING PHP/SQL/HTML/JS/CSS 7 18-06-2005 23:04
Geschwindigkeit Floriam BRAINSTORMING PHP/SQL/HTML/JS/CSS 18 13-10-2003 01:56
Geschwindigkeit thebrain SQL / Datenbanken 1 29-04-2003 14:08
geschwindigkeit schmalle News / Kostenloses 5 12-09-2001 07:13

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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