php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.11.2011, 15:32  
Neuer Benutzer
 
Registriert seit: 26.04.2010
Beiträge: 23
PHP-Kenntnisse:
Anfänger
markiloy befindet sich auf einem aufstrebenden Ast
Standard [MySQL] DB optimieren - open tables, flush und anfragen

hi,

arbeite gerade an einem php portal.
habe gestern zufälligerweise auf den status von meiner mysql db geguckt und da waren einige punkte rot.

die db läuft seit 76 tagen.

hier einige punkte die ich gerne beheben würde:
Zitat:
Slow_queries
<7,000
Anzahl der Anfragen, die länger als long_query_time benötigten.
Zitat:
Handler_read_rnd
<1,000 M
Anzahl der Anfragen, eine Zeile basierend auf einer festen Position zu lesen. Dieser Wert wird hoch sein, wenn Sie viele Anfragen ausführen, die erfordern, dass das Ergebnis sortiert wird. Wenn Handler_read_rnd hoch ist, haben Sie wahrscheinlich viele Anfragen, die MySQL zwingen, ganze Tabellen zu scannen, oder Sie haben Joins, die Schlüssel nicht richtig benutzen.
Zitat:
Select_full_join
<500 k
Anzahl der Joins ohne Schlüssel. Wenn dieser Wert nicht 0 ist sollten die Indizes der Tabellen sorgfältig überprüft werden.
Zitat:
Opened_tables
<40 M
Anzahl der Tabellen, die geöffnet wurden. Wenn Opened_tables hoch ist, ist Ihre table_cache-Variable wahrscheinlich zu niedrig.
alle tabellen die ich erstellt habe, sind komischerweise offen. wie kann man die schließen? nach jeder sql abfragen mysql_close(); benutzen?

mein user account hat noch keine reload rechte, kann derweil die FLUSH funktion nicht ausführen.

ich habe immer einfache sql abfragen benutzt, wie
Zitat:
SELECT * FROM table WHERE x ORDER x DESC LIMIT x
meine tabellen sind einfache tabellen mit einem primary index
Zitat:
CREATE TABLE IF NOT EXISTS `beispiel` (
`id` int(11) NOT NULL auto_increment,
`time` int(24) NOT NULL,
`user` int(11) NOT NULL,
`title` varchar(100) NOT NULL,
`photo` varchar(255) NOT NULL default '',
`text` text NOT NULL,
`desc` text NOT NULL,
`ip` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=61 ;
markiloy ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 21.11.2011, 16:00  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Je nach Tabellengröße / -verteilung sollte man die Fremdschlüssel mit einem Index versorgen. Reduziert gerade bei Joins die notwendigen Reads.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 21.11.2011, 16:17  
Neuer Benutzer
 
Registriert seit: 26.04.2010
Beiträge: 23
PHP-Kenntnisse:
Anfänger
markiloy befindet sich auf einem aufstrebenden Ast
Standard

Mir ist auch aufgefallen, dass ich überall als engine MyISAM habe. Sollte ich nicht stattdessen InnoDB verwenden?
markiloy ist offline   Mit Zitat antworten
Alt 22.11.2011, 00:20  
Erfahrener Benutzer
 
Registriert seit: 13.05.2011
Beiträge: 188
PHP-Kenntnisse:
Fortgeschritten
php1704 wird schon bald berühmt werden
Standard

Kann dir da ein Buch empfehlen.

Grüße.
php1704 ist offline   Mit Zitat antworten
Alt 22.11.2011, 12:17  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Solange du keine Volltextsuche verwendest würde sich InnoDB anbieten.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 22.11.2011, 17:56  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 389
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Ob InnoDB oder MyISAM sollte entschieden werden, nachdem die Anforderungen an die DB klar sind.
Wenn ich mir Deine Fehlerliste so anschaue, kommt mir der Verdacht, daß da nicht richtig normalisiert und indiziert wurde. Mangelhafte Normalisierung ist nachträglich aber nur mit viel Aufwand zu korrigieren.
achtelpetit 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
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql flush tables, handler_read_rnd, mysql flush, php flush mysql tables, mysql php opened tables, flush table mysql, select_full_join reduzieren, php mysql flush, anzahl der joins ohne schlüssel, mysql open tables, mysql flush open tables, anfragen, die mysql zwingen, ganze tabellen zu scannen, opened tables zu hoch mysql, mysql handler_read_rnd, open tables mysql, mysql flush tables php, handler_read_rnd optimieren, anzahl der joins ohne schlüssel., open tables mysql wert, mysql table flush

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:40 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