phpbar.de logo

Mailinglisten-Archive

Datenbankvergleich

Datenbankvergleich

Georg Richter mysql-de_(at)_lists.bttr.org
Tue, 2 Jul 2002 12:21:33 +0200


On Tuesday, 2. July 2002 11:41, Guido Stepken wrote:
> 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.

Momentan gibt es keine unabhängigen Benchmarks. Anlässlich der OSCON wollen 
sich die MySQL/Postgres/Firebird und Sybase-Entwickler an einen Tisch 
begeben, und darüber diskutieren.

Die einzigen Tabletypes die ein Tablelock durchführen sind MyISAM oder 
HEAP-Tabellen. Inno-DB oder BDB ermöglichen Record bzw. PageLocking.
Wer Transaktionen braucht, wird sicherlich keine MyISAM Tabellen verwenden.
Natürlich sind die transaktionsorientierten Tabellenformate etwas langsamer.

> 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.

Wer Probleme mit Readlocks hat und trotzdem MyISAM-Tabellen verwendet, der 
sollte einen Slave einrichten, von dem gelesen wird. Die Writezugriffe 
sollten dann auf dem Server erfolgen.

> 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.

Das hängt von Deiner Konfiguration ab. SELECT QUERY_CACHE foo from bar 
schafft hier Abhilfe. 

> 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.

Wer auf Stored Procedures, Views oder Triggers nicht verzichten kann, für den 
ist  Postgres mit Sicherheit erste Wahl, die anderen aufgezählten Dinge, 
mögen vielleicht auf ältere MySQL-Versionen zutreffen, nicht aber auf die 
aktuellen Versionen. Wer mit MySQL und 100 Clients Probleme hat, der hat 
vermutlich sein System bzw. Anwendung falsch designt, Queries nicht obtimiert 
oder den Server falsch konfiguriert.

Yahoo Finance dürfte wohl das beste Beispiel sein, wie man trotz riesiger 
Datenmengen und Zugriffszahlen sich die exellente Performance von MySQL zu 
nutze machen kann.

> 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.

Unsere Geo-Datenbank hat eine Grösse von ca. 30 Gigabyte, und arbeitet 
hervorragend unter MySQL mit MERGE TABLES.

Gruss

Georg

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



php::bar PHP Wiki   -   Listenarchive