php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.03.2010, 21:06  
thomas_w
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Spider Beitrag anzeigen
Meine bisherige Tabellenkonstruktion brauchte dazu 32.613 Sekunden, die von thomas_w 32.108 Sekunden.
Könntest Du mir nochmal einen Query EXPLAIN mit der "neuen" Tabellenstruktur zeigen?

Grüße
Thomas
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.03.2010, 07:06  
Neuer Benutzer
 
Registriert seit: 14.03.2010
Beiträge: 11
PHP-Kenntnisse:
Fortgeschritten
Spider befindet sich auf einem aufstrebenden Ast
Standard

Ja klar.

Hier: http://www.juan-montoya.de/forum/ima...f1f7d242a9.png
Spider ist offline   Mit Zitat antworten
Alt 16.03.2010, 07:41  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

OT: WTF kann man den Text nicht einfach mal hier in ein Code-Tag kopieren? Ist das für die Maus-Schubser-Generation so schwer?
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 16.03.2010, 09:15  
thomas_w
Gast
 
Beiträge: n/a
Standard

Der EXPLAIN zeigt jetzt, dass der Zugriff auf die Tabelle t ohne jeden Index erfolgt ("type" = ALL und "key" = NULL). Zur Optimierung und für einen weiteren Performancetest könntest Du mal folgenden zusätzlichen Index anlegen.

Code:
CREATE INDEX sx_tipps_2_01 ON tipps_2 (benutzer_id, fahrer_id);
Würde mich mal interessieren, wie der EXPLAIN dann aussieht bzw. der Performancetest ausgeht.

Grüße
Thomas
  Mit Zitat antworten
Alt 16.03.2010, 10:18  
Neuer Benutzer
 
Registriert seit: 14.03.2010
Beiträge: 11
PHP-Kenntnisse:
Fortgeschritten
Spider befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
OT: WTF kann man den Text nicht einfach mal hier in ein Code-Tag kopieren? Ist das für die Maus-Schubser-Generation so schwer?
Nein ist es nicht. Es wurde auf Seite 1 aber als Bild gewünscht, deswegen habe ich es als Bild gepostet.
Ich kann das aber auch gerne über die Konsole machen und die Ausgabe als Text posten. Mache ich heute nachmittag, wenn ich zuhause bin.

@thomas_w: Mache ich. Melde mich dann nachmittag nochmal ^^
Spider ist offline   Mit Zitat antworten
Alt 16.03.2010, 18:36  
Neuer Benutzer
 
Registriert seit: 14.03.2010
Beiträge: 11
PHP-Kenntnisse:
Fortgeschritten
Spider befindet sich auf einem aufstrebenden Ast
Standard

Im Durchschnitt ist die neue Tabellenstruktur 7 zehntel schneller als die alte, also nicht ganz eine Sekunde.
Hatte bei den Benchmarks gestern in beiden Dateien einen Fehler drin. Jetzt ohne Fehler beträgt die Laufzeit bei der neuen 100.781 Sekunden und 101.522 Sekunden bei der alten.

Der neue Explain als Bild:
http://www.juan-montoya.de/forum/ima...fc0bf67e11.png


Der Explain über die ursprüngliche Tabelle als Text:
Code:
+----+-------------+-------+--------+-------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------+-----------
-------+---------+------------------------------+------+-------------+
| id | select_type | table | type   | possible_keys

                                                                    | key
       | key_len | ref                          | rows | Extra       |
+----+-------------+-------+--------+-------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------+-----------
-------+---------+------------------------------+------+-------------+
|  1 | SIMPLE      | f8    | ALL    | PRIMARY

                                                                    | NULL
       | NULL    | NULL                         |   24 |             |
|  1 | SIMPLE      | t     | ref    | fk_tipps_fahrer1,fk_tipps_fahrer2,fk_tipps
_fahrer3,fk_tipps_fahrer4,fk_tipps_fahrer5,fk_tipps_fahrer6,fk_tipps_fahrer7,fk_
tipps_fahrer8,fk_tipps_fahrer9,fk_tipps_fahrer10,fk_tipps_benutzer1 | fk_tipps_f
ahrer8 | 5       | tippspiel_neu.f8.fahrer_id   |    1 | Using where |
|  1 | SIMPLE      | f3    | eq_ref | PRIMARY

                                                                    | PRIMARY
       | 4       | tippspiel_neu.t.dritter      |    1 |             |
|  1 | SIMPLE      | f4    | eq_ref | PRIMARY

                                                                    | PRIMARY
       | 4       | tippspiel_neu.t.vierter      |    1 |             |
|  1 | SIMPLE      | f5    | eq_ref | PRIMARY

                                                                    | PRIMARY
       | 4       | tippspiel_neu.t.fuenfter     |    1 |             |
|  1 | SIMPLE      | f6    | eq_ref | PRIMARY

                                                                    | PRIMARY
       | 4       | tippspiel_neu.t.sechster     |    1 |             |
|  1 | SIMPLE      | f7    | eq_ref | PRIMARY

                                                                    | PRIMARY
       | 4       | tippspiel_neu.t.siebter      |    1 |             |
|  1 | SIMPLE      | f1    | eq_ref | PRIMARY

                                                                    | PRIMARY
       | 4       | tippspiel_neu.t.erster       |    1 |             |
|  1 | SIMPLE      | fpp   | eq_ref | PRIMARY

                                                                    | PRIMARY
       | 4       | tippspiel_neu.t.poleposition |    1 |             |
|  1 | SIMPLE      | fsr   | eq_ref | PRIMARY

                                                                    | PRIMARY
       | 4       | tippspiel_neu.t.s_runde      |    1 |             |
|  1 | SIMPLE      | f2    | eq_ref | PRIMARY

                                                                    | PRIMARY
       | 4       | tippspiel_neu.t.zweiter      |    1 |             |
|  1 | SIMPLE      | b     | eq_ref | PRIMARY

                                                                    | PRIMARY
       | 4       | tippspiel_neu.t.benutzer_id  |    1 |             |
+----+-------------+-------+--------+-------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------+-----------
-------+---------+------------------------------+------+-------------+
12 rows in set (0.15 sec)
Ist halt durch die breite Spalte "possible_keys" sehr unübersichtlich ^^

Geändert von Spider (16.03.2010 um 18:39 Uhr).
Spider ist offline   Mit Zitat antworten
Alt 16.03.2010, 19:14  
thomas_w
Gast
 
Beiträge: n/a
Standard

Der EXPLAIN (Bild) zeigt sehr schön wie sich MySQL für den neuen Index sx_tipps_2_01 entscheidet und mit einem reinen "Index-Only" Zugriff (EXTRA: Using Index) zu einem Ergebnis kommt. Prinzipiell sehr gut, die "neue" Abfrage ist zwar kaum schneller als die "alte", aber mit steigender Datenmenge könnte sich das noch ändern. Ich denke, damit bist Du auf einem guten Weg.

Grüße
Thomas
  Mit Zitat antworten
Alt 16.03.2010, 20:39  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.247
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Code:
+----+-------------+-------+--------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------+------------------------------+------+-------------+ 
| id | select_type | table | type   | possible_keys                                                                                                                                                                                 | key              | key_len | ref                          | rows | Extra       |
+----+-------------+-------+--------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------+------------------------------+------+-------------+
|  1 | SIMPLE      | f8    | ALL    | PRIMARY                                                                                                                                                                                       | NULL             | NULL    | NULL                         |   24 |             |
|  1 | SIMPLE      | t     | ref    | fk_tipps_fahrer1,fk_tipps_fahrer2,fk_tipps_fahrer3,fk_tipps_fahrer4,fk_tipps_fahrer5,fk_tipps_fahrer6,fk_tipps_fahrer7,fk_tipps_fahrer8,fk_tipps_fahrer9,fk_tipps_fahrer10,fk_tipps_benutzer1 | fk_tipps_fahrer8 | 5       | tippspiel_neu.f8.fahrer_id   |    1 | Using where |
|  1 | SIMPLE      | f3    | eq_ref | PRIMARY                                                                                                                                                                                       | PRIMARY          | 4       | tippspiel_neu.t.dritter      |    1 |             |
|  1 | SIMPLE      | f4    | eq_ref | PRIMARY                                                                                                                                                                                       | PRIMARY          | 4       | tippspiel_neu.t.vierter      |    1 |             |
|  1 | SIMPLE      | f5    | eq_ref | PRIMARY                                                                                                                                                                                       | PRIMARY          | 4       | tippspiel_neu.t.fuenfter     |    1 |             |
|  1 | SIMPLE      | f6    | eq_ref | PRIMARY                                                                                                                                                                                       | PRIMARY          | 4       | tippspiel_neu.t.sechster     |    1 |             |
|  1 | SIMPLE      | f7    | eq_ref | PRIMARY                                                                                                                                                                                       | PRIMARY          | 4       | tippspiel_neu.t.siebter      |    1 |             |
|  1 | SIMPLE      | f1    | eq_ref | PRIMARY                                                                                                                                                                                       | PRIMARY          | 4       | tippspiel_neu.t.erster       |    1 |             |
|  1 | SIMPLE      | fpp   | eq_ref | PRIMARY                                                                                                                                                                                       | PRIMARY          | 4       | tippspiel_neu.t.poleposition |    1 |             |
|  1 | SIMPLE      | fsr   | eq_ref | PRIMARY                                                                                                                                                                                       | PRIMARY          | 4       | tippspiel_neu.t.s_runde      |    1 |             |
|  1 | SIMPLE      | f2    | eq_ref | PRIMARY                                                                                                                                                                                       | PRIMARY          | 4       | tippspiel_neu.t.zweiter      |    1 |             |
|  1 | SIMPLE      | b     | eq_ref | PRIMARY                                                                                                                                                                                       | PRIMARY          | 4       | tippspiel_neu.t.benutzer_id  |    1 |             |
+----+-------------+-------+--------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+---------+------------------------------+------+-------------+ 

12 rows in set (0.15 sec)
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Intertabellarische Berechnungen, wie? dave303 Datenbanken 13 05.03.2010 11:58
Referenzen von eine Tabelle in die andere Kopieren wali PHP Tipps 2009 3 13.01.2010 21:53
MY-SQL Abfrage nach Daten aus Tabelle 1 die in Tabelle 2 nicht vorhanden sind triple81 Datenbanken 1 25.12.2009 22:46
Bestehende php /Myqsl Tabelle Neben einander aus geben Totti-Totti PHP Tipps 2009 3 21.12.2009 11:00
Bilder in Tabelle einfügen Mysql oder direkt?! DKuhn PHP Tipps 2009 3 30.09.2009 10:14
tabelle 2 in tabelle 1 updaten steffen_dk Datenbanken 11 04.07.2009 15:04
Zeilenanzahl einer tabelle mit WHERE aber ohne schleife? sovereign Datenbanken 13 17.04.2006 20:34
[Erledigt] Problem mit dem Füllen einer Tabelle über Formular PHP Tipps 2006 18 10.01.2006 12:51
[Erledigt] Problem mit Anzeige einer Tabelle mit dem Firefox? HTML, Usability und Barrierefreiheit 8 28.11.2005 15:08
Tabelle aktualisieren Datenbanken 3 23.11.2005 09:54
Problem mit mySQL Datenbanken 7 27.09.2005 12:06
mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
tabelle in tabelle ohne aussenrand noskule HTML, Usability und Barrierefreiheit 6 25.08.2005 14:17
[Erledigt] Tabelle in Tabelle ausrichten HTML, Usability und Barrierefreiheit 7 03.01.2005 14:32
[Erledigt] HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45


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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum