phpbar.de logo

Mailinglisten-Archive

Datenbankvergleich

Datenbankvergleich

Guido Stepken mysql-de_(at)_lists.bttr.org
Tue, 2 Jul 2002 11:41:12 +0200


Churchill: Glaube keiner Statistik, die Du nicht selbst gefälscht hast.

Benchmarks er einfachen Art, da stellt sich sehr schnell heraus, daß 
MySQL die Nase da vorne hat, weil
halt MySQL kaum Overhead mit den Rechten und Locks hat. Es kann nur 
Table Locks.

Probleme fangen aber da an, wo der Anteil von Writes erheblich ist. Die 
Tabelle wird da nämlich von einem Programm, welches z.B. Logs 
kontinuierlich schreibt, gesperrt. Zustzliche Writes sind gesperrt. 
Reads dann auch.

MySQL ist also fürs Internet, wo fast nur gelesen wird, sehr gut 
geeignet, für Datenerfassung, wo die writes nur kurz sind, u.s.w.
MySQL bricht aber bei mehr als 30 simultanen Zugriffen stark ein, ich 
meine damit, daß es durchaus 100-200 Clients ein können, die dann mit 
einer Gleizeitigkeit von 30 MySQL stressen. Da tritt dann ein anderes 
Problem auf. Es gibt Clients, die die Menümasken (Pulldown) mit Inhalten 
einer Tabelle generieren, vornehmlich JAVA Clients. In dem Moment werden 
zum Aufbau einer Ein-Ausgabemaske nämlich sehr viel mehr Datenbank- 
Queries benötigt. SAP hat z.B. gerade in der Version 4.6 D Update so ein 
Problem. Die Clients, die vorher 4-5 KByte je Maske gezogen haben, 
ziehen nun ca. 400-500 KByte, nur für den Aufbau einer einzigen Maske. 
Man kann sich vorstellen, daß da viele Standleitungen von SAP 
zusammengebrochen sind...aber das ist ein andere Thema.
MySQL hat das Problem, daß Queries die sehr häufig vorkommen, und immer 
dasselbe Ergebnis liefern, nicht gecacht werden, wie das z.B. PostgreSQL 
und Oracle tun. In dem Moment bricht MySQL in der Performance ein, 
wärend PostgreSQL mit getuntem Buffer hier halt nicht zusammenbricht.

Wenn also geplant ist, daß die Zahl der Clients über 30-50 liegt, und 
die Datenbank intensiv genutzt wird, dann sollte man unbedingt auf 
PostgreSQL umsteigen. Immer PostgreSQL sollte man verwenden, wenn man 
viele gleichzeitige Queries hat, die immer dasselbe Resultat liefern, 
wie z.B. bei dynamsichen Webseiten, die immer identischen Queries 
liefern, die z.B. bei der Kombination Linux/Windows, Apache MySQL PHP 
...LAMP/WAMP, weil - ansonsten sollte man einen invertierten Proxy, z.B. 
SQUID als Accelerator  davorschalten.

Man muß PostgreSQL einsetzen, wenn man z.B. Datenströme hat, die 
kontinulierlich geschrieben werden müssen, und wenn man halt viele 
Clients einsetzen möchte. Außerdem kann PostgreSQL mit PL/pgSQL sogar 
Oracle ersetzen.
Ich schreibe gerade an einer Dokumentation, die Oracle garnicht gefallen 
wird.....
Wer Trigger, VIEWS, Rechte auf VIEWS, Foreign Keys und eine solide 
Makrosprache und eine solide Doku braucht, dem sei PostgreSQL wärmstens 
empfohlen.
Wer von Oracle weg möchte, und nicht kann, weil wegen PL/SQL, dem sei 
PostgreSQL auch wämstens empfohlen, die Migration weg von Oracle ist mit 
wenig Aufwand zu machen, weil die Makrosprachen fast identisch sind.

Wenn man also Oracle und PL/SQL in der Geschwindigkeit vergleicht, dann 
denke ich, daß die sich nicht viel tun. Nach der Umstellung von 
Compiere, einem SAP Clone von Oracle auf PostgreSQL hat sich nicht viel 
getan.

Wer jedoch mit riesigen Datenbanken hantieren muß, und SMP Server 
einsetzt, die ihre komplexeren Queries dann parallel auf eine zerteile 
Datenbank absetzen, der kann nur Oracle einsetzen, also ab ca. 100 
Clients mit Datenbanken > 10 GByte.
Ansonsten tuts noch eine ALPHA unter LINUX mit PostgreSQL.... Intel 
Kisten sind da sehr viel langesamer, wegen des lahmen RAM Interface...
Oracle sollte man auch dann ins Auge fassen, wenn man sehr komplexe 
Rechte mit PROXY - Rechten u.s.w. vergeben können muß ...
Billiger ist dann jedoch DB2 allemale ... Oracle ist im Grunde völlig 
veraltet mit seinem Datenbankstandard ANSI SQL 89.
DB2 kann SQL 99 alias SQL 3 , das Ding ist der Zeit um Jahre voraus 
....und auch ähnlich schnell, wie Oracle....

Gru/3, Guido


> Interessant sind für mich die Datenbanken Postgre SQL, MySQL und
> Oracle. Denn ich muss mich demnächst für eine Datenbank für ein neues
> Projekt entscheiden.
>
> Mit Google bin ich leider nicht fündig geworden.
> --
> Alexander Steffan
> alex_(at)_xonom.de
>
>
> ---
> Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
> -->>  http://www.4t2.com/mysql
>

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive