MyISAM oder InnoDB? Serverauslastung?

MyISAM oder InnoDB? Serverauslastung?

am 24.10.2006 00:00:41 von Christian Franzen

Hi!

Ich code gerade an nem Browsergame in PHP und mach mir en paar gedanken über
die Auslastugn des Servers. Deshalb wollte ich gleich von Anfang an alle PHP
Script "Leistungs-Optimiert" programmieren.

Hab mir jetzt en paar gedanken über die Datenbank gemacht. Benutze MySQL,
bin mir aber unsicher welche Engine ich benutzen soll, MyISAM oder InnoDB?
Hab schon en paar Artikel gelesen nach denen InnoDB angeblich wesentlich
mehr Speicherplatz braucht und wesentlich langsamer ist. Könnt ihr das
irgendwie bestätigen? Das würde ja dann für MyISAM sprechen. Aber wofür gibt
es dann InnoDB überhaupt wenn es so viel schlechter ist?

Habt ihr vielleicht noch andere Idee wie man die starke Serverbelastung, die
Datenbank und die PHP Scripte betreffend, reduzieren könnte? Oder vielleicht
en paar Tipps vorauf ich achten sollte?

thx Xion

Re: MyISAM oder InnoDB? Serverauslastung?

am 24.10.2006 01:02:31 von Johannes Vogel

Hi Christian

Christian Franzen wrote:
> Ich code gerade an nem Browsergame in PHP und mach mir en paar gedanken über
> die Auslastugn des Servers. Deshalb wollte ich gleich von Anfang an alle PHP
> Script "Leistungs-Optimiert" programmieren.

Gute Idee.

> Hab mir jetzt en paar gedanken über die Datenbank gemacht. Benutze MySQL,
> bin mir aber unsicher welche Engine ich benutzen soll, MyISAM oder InnoDB?
> Hab schon en paar Artikel gelesen nach denen InnoDB angeblich wesentlich
> mehr Speicherplatz braucht und wesentlich langsamer ist. Könnt ihr das
> irgendwie bestätigen? Das würde ja dann für MyISAM sprechen. Aber wofür gibt
> es dann InnoDB überhaupt wenn es so viel schlechter ist?
> Habt ihr vielleicht noch andere Idee wie man die starke Serverbelastung, die
> Datenbank und die PHP Scripte betreffend, reduzieren könnte? Oder vielleicht
> en paar Tipps vorauf ich achten sollte?

Am Besten keine Queries absetzen, damit sollte das DBS am wenigsten
ausgelastet sein. :-)

Nein, im ernst: Wo ist die PHP-Frage? de.comp.datenbanken.mysql
existiert und dein Thema wurde da auch gerade erst diskutiert. Bspw. der
Thread ab Msg <453771f3$0$18848$9b4e6d93@newsspool4.arcor-online.net>.

und zur Wahl des Tableformats:
Choosing a Storage Engine
http://dev.mysql.com/doc/refman/5.1/en/storage-engine-choosi ng.html

HTH, Johannes

Re: MyISAM oder InnoDB? Serverauslastung?

am 24.10.2006 09:56:51 von Christian Franzen

Ups sorry. Hab mich wohl wirklich in der Group geirrt.


"Johannes Vogel" schrieb im Newsbeitrag
news:456e6$453d4a6e$544a5456$20431@news.hispeed.ch...
> Hi Christian
>
> Christian Franzen wrote:
>> Ich code gerade an nem Browsergame in PHP und mach mir en paar gedanken
>> über
>> die Auslastugn des Servers. Deshalb wollte ich gleich von Anfang an alle
>> PHP
>> Script "Leistungs-Optimiert" programmieren.
>
> Gute Idee.
>
>> Hab mir jetzt en paar gedanken über die Datenbank gemacht. Benutze MySQL,
>> bin mir aber unsicher welche Engine ich benutzen soll, MyISAM oder
>> InnoDB?
>> Hab schon en paar Artikel gelesen nach denen InnoDB angeblich wesentlich
>> mehr Speicherplatz braucht und wesentlich langsamer ist. Könnt ihr das
>> irgendwie bestätigen? Das würde ja dann für MyISAM sprechen. Aber wofür
>> gibt
>> es dann InnoDB überhaupt wenn es so viel schlechter ist?
>> Habt ihr vielleicht noch andere Idee wie man die starke Serverbelastung,
>> die
>> Datenbank und die PHP Scripte betreffend, reduzieren könnte? Oder
>> vielleicht
>> en paar Tipps vorauf ich achten sollte?
>
> Am Besten keine Queries absetzen, damit sollte das DBS am wenigsten
> ausgelastet sein. :-)
>
> Nein, im ernst: Wo ist die PHP-Frage? de.comp.datenbanken.mysql
> existiert und dein Thema wurde da auch gerade erst diskutiert. Bspw. der
> Thread ab Msg <453771f3$0$18848$9b4e6d93@newsspool4.arcor-online.net>.
>
> und zur Wahl des Tableformats:
> Choosing a Storage Engine
> http://dev.mysql.com/doc/refman/5.1/en/storage-engine-choosi ng.html
>
> HTH, Johannes

Re: MyISAM oder InnoDB? Serverauslastung?

am 24.10.2006 10:39:20 von do.not.REMOVETHAT

Johannes Vogel schrieb:

>> Ich code gerade an nem Browsergame in PHP und mach mir en paar gedanken über
>> die Auslastugn des Servers. Deshalb wollte ich gleich von Anfang an alle PHP
>> Script "Leistungs-Optimiert" programmieren.
>
> Gute Idee.

Lustig finde ich, dass es Viele gibt, die sich einen Heidengedanken über
die Performance von Code machen und Tagelang darüber schwadronieren,
welche Art von Anführungszeichen schneller ist. Auf der anderen Seite
gibt es Leute, die kein "Hello World" auf die Reihe bekommen ohne
Speicherung und Ausgabe des Strings zu abstrahieren, State-of-The-Art
Fehlerbehandlung und vor allen Dingen: Für jeden Buchstaben ein Objekt
zu instanziieren. Kann man die nicht mal irgendwie zusammenstecken? Sie
könnten viel voneinander lernen.

Grüße, Matthias

--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.

Re: MyISAM oder InnoDB? Serverauslastung?

am 24.10.2006 10:45:51 von Andreas Scherbaum

Hallo,

Christian Franzen wrote:
> Ich code gerade an nem Browsergame in PHP und mach mir en paar gedanken über
> die Auslastugn des Servers. Deshalb wollte ich gleich von Anfang an alle PHP
> Script "Leistungs-Optimiert" programmieren.

Leistungsoptimiert wäre es, wenn du möglichst viel Overhead vermeiden kannst.
So etwas geht aber nicht, wenn du alle Daten erst in deine Applikation schaufeln
musst, dann auswertest und dann Ergebnisse in die Datenbank schreibst.
Ich verweise mal auf: Stored Procedures, mit denen man viel Logik in der DB
lassen und sich damit eine Menge Overhead sparen kann.


> Hab mir jetzt en paar gedanken über die Datenbank gemacht. Benutze MySQL,
> bin mir aber unsicher welche Engine ich benutzen soll, MyISAM oder InnoDB?
> Hab schon en paar Artikel gelesen nach denen InnoDB angeblich wesentlich
> mehr Speicherplatz braucht und wesentlich langsamer ist. Könnt ihr das
> irgendwie bestätigen? Das würde ja dann für MyISAM sprechen. Aber wofür gibt
> es dann InnoDB überhaupt wenn es so viel schlechter ist?

InnoDB gibt es, um all die Aufgaben zu übernehmen, die eine Datenbank erledigen
soll: Datensicherheit. Mit Myisam kannst du keineswegs sicherstellen, das deine
Daten im Spiel bei einem Fehler konsistent bleiben. Bei InnoDB rollst du die
Transaktion einfach zurück und alles ist wie vorher. Diese Vorteile kosten
natürlich auch Performance, also sollte man sich hier Gedanken machen, was
man möchte.


> Habt ihr vielleicht noch andere Idee wie man die starke Serverbelastung, die
> Datenbank und die PHP Scripte betreffend, reduzieren könnte? Oder vielleicht
> en paar Tipps vorauf ich achten sollte?

Ideen? Dutzende. Derartige Projekte mit starker Serverauslastung haben wir
einige. Nur gibt es dafür keinen Goldenen Weg, den man immer wählen kann,
sondern man muss im Einzelfall Entscheidungen treffen.


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: MyISAM oder InnoDB? Serverauslastung?

am 24.10.2006 11:34:17 von Christian Franzen

Hast du vielleicht ein paar Quellen im Netz bei denen ich mich über alles
was du gerade geschrieben hast Informaieren kann, also speziell Stored
Procedures, Transaktionen und Rollbacks und zum Thema Serverauslastung? Hab
nämlich nicht wirklich Ahnung wovon du da sprichst.


"Andreas Scherbaum" schrieb im Newsbeitrag
news:ve0114-71p.ln1@base.wars-nicht.de...
> Hallo,
>
> Christian Franzen wrote:
>> Ich code gerade an nem Browsergame in PHP und mach mir en paar gedanken
>> über
>> die Auslastugn des Servers. Deshalb wollte ich gleich von Anfang an alle
>> PHP
>> Script "Leistungs-Optimiert" programmieren.
>
> Leistungsoptimiert wäre es, wenn du möglichst viel Overhead vermeiden
> kannst.
> So etwas geht aber nicht, wenn du alle Daten erst in deine Applikation
> schaufeln
> musst, dann auswertest und dann Ergebnisse in die Datenbank schreibst.
> Ich verweise mal auf: Stored Procedures, mit denen man viel Logik in der
> DB
> lassen und sich damit eine Menge Overhead sparen kann.
>
>
>> Hab mir jetzt en paar gedanken über die Datenbank gemacht. Benutze MySQL,
>> bin mir aber unsicher welche Engine ich benutzen soll, MyISAM oder
>> InnoDB?
>> Hab schon en paar Artikel gelesen nach denen InnoDB angeblich wesentlich
>> mehr Speicherplatz braucht und wesentlich langsamer ist. Könnt ihr das
>> irgendwie bestätigen? Das würde ja dann für MyISAM sprechen. Aber wofür
>> gibt
>> es dann InnoDB überhaupt wenn es so viel schlechter ist?
>
> InnoDB gibt es, um all die Aufgaben zu übernehmen, die eine Datenbank
> erledigen
> soll: Datensicherheit. Mit Myisam kannst du keineswegs sicherstellen, das
> deine
> Daten im Spiel bei einem Fehler konsistent bleiben. Bei InnoDB rollst du
> die
> Transaktion einfach zurück und alles ist wie vorher. Diese Vorteile kosten
> natürlich auch Performance, also sollte man sich hier Gedanken machen, was
> man möchte.
>
>
>> Habt ihr vielleicht noch andere Idee wie man die starke Serverbelastung,
>> die
>> Datenbank und die PHP Scripte betreffend, reduzieren könnte? Oder
>> vielleicht
>> en paar Tipps vorauf ich achten sollte?
>
> Ideen? Dutzende. Derartige Projekte mit starker Serverauslastung haben wir
> einige. Nur gibt es dafür keinen Goldenen Weg, den man immer wählen kann,
> sondern man muss im Einzelfall Entscheidungen treffen.
>
>
> Bye
>
> --
> Andreas 'ads' Scherbaum
> Failure is not an option. It comes bundled with your Microsoft product.
> (Ferenc Mantfeld)

Re: MyISAM oder InnoDB? Serverauslastung?

am 24.10.2006 11:37:59 von Johannes Vogel

Hi Christian

Christian Franzen wrote:
> Hast du vielleicht ein paar Quellen im Netz bei denen ich mich über alles
> was du gerade geschrieben hast Informaieren kann, also speziell Stored
> Procedures, Transaktionen und Rollbacks und zum Thema Serverauslastung? Hab
> nämlich nicht wirklich Ahnung wovon du da sprichst.

TOFU entsorgt. Bitte mach das nie wieder.

Ein Manual existiert.
http://dev.mysql.com/doc/refman/5.1/en/index.html

Da kann man auch suchen drin. Oben links einfach obige Werte einfügen
(in Englisch am besten) und schon findet man die Infos.

HTH, Johannes

Re: MyISAM oder InnoDB? Serverauslastung?

am 25.10.2006 03:11:09 von daniel.gorski

[Matthias P. Wuerfl in de.comp.lang.php.datenbanken]

> Lustig finde ich, dass es Viele gibt, die sich einen Heidengedanken über
> die Performance von Code machen und Tagelang darüber schwadronieren,
> welche Art von Anführungszeichen schneller ist. Auf der anderen Seite
> gibt es Leute, die kein "Hello World" auf die Reihe bekommen ohne
> Speicherung und Ausgabe des Strings zu abstrahieren, State-of-The-Art
> Fehlerbehandlung und vor allen Dingen: Für jeden Buchstaben ein Objekt
> zu instanziieren. Kann man die nicht mal irgendwie zusammenstecken? Sie
> könnten viel voneinander lernen.

Sicher, die kann man zusammenstecken, es fehlen dann aber noch die Leute,
die dann lernwillig auf dieser Basis ihren Horizont erweitern möchten. Wann
hast du Zeit? ;)

mfg dtg

Re: MyISAM oder InnoDB? Serverauslastung?

am 25.10.2006 09:00:46 von do.not.REMOVETHAT

Daniel T. Gorski schrieb:

> es fehlen dann aber noch die Leute,
> die dann lernwillig auf dieser Basis ihren Horizont erweitern möchten. Wann
> hast du Zeit? ;)

Bierchen trinken gehen? Die Woche ist schlecht. Wie wäre es Anfang
nächster Woche? Wo treffen wir uns?

Grüße, Matthias

--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.