MYSQL oder Postgres? - Was ist schneller
Hallo zusammen, wir sind derzeit beim Aufbau einer WEB-Seite mit Datenbank. In dieser Datenbank sollen ca 1.000.000 Datensätze pro Tabelle gespeichert werden können. Das ganze wird auf einem Suse 9.0-Server laufen. Jetzt stellt sich für uns die Frage, was hierfür besser geeignet ist (hauptsächlich Geschwindigkeit, aber auch Speícherkapazität). Welche Datenbank würdet Ihr bevorzugen? Postgres oder MYSQL? Gruß + Danke Udo -- ------------------------------------------------------------------------------------------------- Wir sind Bill Gates! Widerstand ist zwecklos! Sie werden assimiliert! Ihre Datenbestände werden den unseren hinzugefügt! ------------------------------------------------------------------------------------------------- --
Hallo Leute! Bin noch ein absoluter Linux-Newbie und bräuchte eure Hilfe! Hab SuSE 9.1 auf meinem nForce3 basierten System und die neuesten Nvidia Linux Treiber (1.0-0283) installiert. Hab das Skript gestartet und der installer hat das kernelmodul für den Netzwerk-Treiber auch fehlerfrei kompiliert. Wie allerdings bringe ich das Ding zum Laufen. Hab in der /etc/modprobe.conf wie in der nvidia-Dokumentation angegeben die Zeile "alias eth1 nvnet" hinzugefügt. Aber wie gehts dann weiter. Yast findet jedenfalls nix und wenn ich in der bash "modprobe nvnet" eingebe findet er nvnet nicht. Hab jetzt schon eine Stunde herumprobiert und werde einfach nicht schlau daraus. Vielen Dank für Eure Hilfe! Mfg, Florian Floimair
Am Samstag August 28 2004 15:25 schrieb Florian Floimair:
Hallo Leute!
Bin noch ein absoluter Linux-Newbie und bräuchte eure Hilfe!
Hab SuSE 9.1 auf meinem nForce3 basierten System und die neuesten Nvidia Linux Treiber (1.0-0283) installiert. Hab das Skript gestartet und der installer hat das kernelmodul für den Netzwerk-Treiber auch fehlerfrei kompiliert.
Wie allerdings bringe ich das Ding zum Laufen. Hab in der /etc/modprobe.conf wie in der nvidia-Dokumentation angegeben die Zeile "alias eth1 nvnet" hinzugefügt. Aber wie gehts dann weiter. Yast findet jedenfalls nix und wenn ich in der bash "modprobe nvnet" eingebe findet er nvnet nicht.
Hab jetzt schon eine Stunde herumprobiert und werde einfach nicht schlau daraus.
Vielen Dank für Eure Hilfe!
Mfg, Florian Floimair
Hallo Erstmal, bitte schreibe eine neue Mail, wenn du eine neue Frage hast, anstelle auf eine andere zu antworten. Es ist einfacher, wenn die Themen jeweils eigene Threads bilden. Danke. Wenn YaST die Netzwerkkomponente nicht selbsttätig finden kann, so erlaubt es auch, den Treiber manuell einzugeben. Da du einen Kernel 2.6.x hast, hätte auch der forcedeth-Treiber (gibt es ja auch im Kernel 2.4.2x) funktioniert. Auf meinen nForce-Boards (zwei nForce1 und ein nForce2) genügte ein "alias eth0 forcedeth" in /etc/modprobe.conf und ein depmod -a (löst die Modulabhängigkeiten auf), bevor ich das Netzwerk neu starten muss (ein Neustart ist unter Un*x nur beim Kernelupdate unbedingt erforderlich). Das nVidia-Paket sollte allerdings depmod -a nach einem erfolgreichen Build ausgeführt haben. Was sagt ein "find /lib/modules -name "nvnet.ko"? Wenn nichts gefunden wurde, dann ist der Treiber nicht ins richtige Verzeichnis kopiert worden, d.h. die Installation war nicht erfolgreich. Versuch es dann entweder nochmal mit der Installation oder nutze forcedeth. Gruß Udo -- /* James M doesn't say fuck enough. */ 2.4.3 linux/net/core/netfilter.c
Am Samstag 28 August 2004 15:06 schrieb Udo Gerhards:
Hallo zusammen,
wir sind derzeit beim Aufbau einer WEB-Seite mit Datenbank. In dieser Datenbank sollen ca 1.000.000 Datensätze pro Tabelle gespeichert werden können. Das ganze wird auf einem Suse 9.0-Server laufen. Jetzt stellt sich für uns die Frage, was hierfür besser geeignet ist (hauptsächlich Geschwindigkeit, aber auch Speícherkapazität). Welche Datenbank würdet Ihr bevorzugen? Postgres oder MYSQL?
Prinzipiell geht beides. Die meisten Provider bieten allerdings nur MySQL an, welches ja auch genau für diesen Zweck geschaffen wurde (kleine, schlanke SQL-Lösung für Web-Server. Wenn du allerdings die Wahl hast, dann nimm lieber PostgreSQL. IMHO ausgereifter und vor allem - es unterstützt ein paar mehr SQL-Funktionen. Man ist damit also ein wenig offener, auch wenn man es evtl. momentan noch gar nicht braucht. -- Gruß MaxX Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu
Am Samstag, 28. August 2004 15:06 schrieb Udo Gerhards:
wir sind derzeit beim Aufbau einer WEB-Seite mit Datenbank. In dieser Datenbank sollen ca 1.000.000 Datensätze pro Tabelle gespeichert werden können. Das ganze wird auf einem Suse 9.0-Server laufen. Jetzt stellt sich für uns die Frage, was hierfür besser geeignet ist (hauptsächlich Geschwindigkeit, aber auch Speícherkapazität). Welche Datenbank würdet Ihr bevorzugen? Postgres oder MYSQL?
Hängt davon ab. Stehen die Tabellen in Beziehung? Welche Zugriffe erfolgen? Wird viel geändert, oder bleiben die Daten weitestgehend Konstant? Ich kann Dir nur raten, leg die Anwendung so an, dass sie mit beiden Datenbanken zurecht kommt und probier aus, mit welcher es schneller oder unproblematischer läuft. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
On Saturday 28 August 2004 16:40, Manfred Tremmel wrote:
Am Samstag, 28. August 2004 15:06 schrieb Udo Gerhards:
wir sind derzeit beim Aufbau einer WEB-Seite mit Datenbank. In dieser Datenbank sollen ca 1.000.000 Datensätze pro Tabelle gespeichert werden können. Das ganze wird auf einem Suse 9.0-Server laufen. Jetzt stellt sich für uns die Frage, was hierfür besser geeignet ist (hauptsächlich Geschwindigkeit, aber auch Speícherkapazität). Welche Datenbank würdet Ihr bevorzugen? Postgres oder MYSQL?
Hängt davon ab. Stehen die Tabellen in Beziehung? Welche Zugriffe erfolgen? Wird viel geändert, oder bleiben die Daten weitestgehend Konstant? Ich kann Dir nur raten, leg die Anwendung so an, dass sie mit beiden Datenbanken zurecht kommt und probier aus, mit welcher es schneller oder unproblematischer läuft.
-- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/
| http://packman.links2linux.de/
Manfred | http://www.knightsoft-net.de
Hallo nochmal, also erst mal Danke für die vielen Antworten. Hier vielleicht noch ein paar Info's zu dem was wir vorhaben. Die Datenbank soll ungefähr Platz für 5000 Benutzer bieten. Alle diese Benutzer sollen (können) eigene Einträge über die WEB-Seite in der Datenbank vornehmen. Für uns kristalisieren sich in erster Linie damit folgende Fragen raus: - Geschwindigkeit bei paralellen Schreib bzw. Lesezugriffen über das WEB-Interface bei einer geschätzten Datensatzanzahl von 1.000.000 Stück, verteilt auf verschiedene (ungefähr 4-5) Tabellen - Größe des maximal verwaltbaren Speicherplatzes der DB, jeder Schreibzugriff erzeugt ungefähr einen Datensatz mit 200 Byte, wir schätzen ungefähr 200 Datensätze pro Benutzer - Kompatibilität zu einer weiteren MYSQL-Datenbank; Das ganze wird in einem vorgefertigten CMS-System verpackt, welches seine eigene MYSQL-Datenbank erzeugt. Hierbei gehts nicht um die Schnittstellen bzw. Variablen des CMS-Systems, sonderen eher darum, wie kompatibel die MYSQL-Datenbank mit einer evtl. möglichen Postgres-Datenbank (unserer eigenen) ist und wie leicht Daten aus MYSQL in POSTGRES gespeichert werden können. - Transaktionsfähigkeit und StoredProcedures Gruß Udo -- ------------------------------------------------------------------------------------------------- Wir sind Bill Gates! Widerstand ist zwecklos! Sie werden assimiliert! Ihre Datenbestände werden den unseren hinzugefügt! ------------------------------------------------------------------------------------------------- --
Hallo, Udo Gerhards schrieb am Samstag, 28. August 2004 um 18:06:
- Geschwindigkeit bei paralellen Schreib bzw. Lesezugriffen über das WEB-Interface bei einer geschätzten Datensatzanzahl von 1.000.000 Stück, verteilt auf verschiedene (ungefähr 4-5) Tabellen
App aufsetzen, Benchmark fahren. Die Anzahl Datensätze spielt weniger eine Rolle als ein gutes Design. Bei einem Verhältnis von 90% Lesezugriffe und 10% Schreibzugriffe geht die MyISAM-Storage-Engine jedenfalls ab wie ein Zäpfchen. Hast du ein anderes Verhältnis von Schreib-/Lesezugriffen, muss du ev. auf den BDB- oder InnoDB-Storange-Handler wechseln oder Replikation aufsetzen.
- Transaktionsfähigkeit und StoredProcedures
Der InnoDB-Storage-Handler kennt Transaktionen. Für Stored Procedures brauchst du MySQL 5.0, das ist aber noch nicht soweit. Ich habe es in meinen Jahren im Bauen von Webapplikationen noch nie gebraucht, aber wenn du meinst, es zu brauchen, ist PostgreSQL deine Wahl. Gruss, Andreas
Am Samstag 28 August 2004 18:06 schrieb Udo Gerhards:
Hallo nochmal,
also erst mal Danke für die vielen Antworten. Hier vielleicht noch ein paar Info's zu dem was wir vorhaben. Die Datenbank soll ungefähr Platz für 5000 Benutzer bieten. Alle diese Benutzer sollen (können) eigene Einträge über die WEB-Seite in der Datenbank vornehmen. Für uns kristalisieren sich in erster Linie damit folgende Fragen raus:
- Geschwindigkeit bei paralellen Schreib bzw. Lesezugriffen über das WEB-Interface bei einer geschätzten Datensatzanzahl von 1.000.000 Stück, verteilt auf verschiedene (ungefähr 4-5) Tabellen - Größe des maximal verwaltbaren Speicherplatzes der DB, jeder Schreibzugriff erzeugt ungefähr einen Datensatz mit 200 Byte, wir schätzen ungefähr 200 Datensätze pro Benutzer
Größe der Datenbank also 1.000.000 x 200 Byte = ca. 200 MByte. Es bleibt also eine "kleinere" Datenbank - selbst wenn es 200 MByte pro Tabelle sein sollten. Das packt MySQL locker (hängt natürlich auch ein wenig von der Hardware ab ;-).
- Kompatibilität zu einer weiteren MYSQL-Datenbank; Das ganze wird in einem vorgefertigten CMS-System verpackt, welches seine eigene MYSQL-Datenbank erzeugt. Hierbei gehts nicht um die Schnittstellen bzw. Variablen des CMS-Systems, sonderen eher darum, wie kompatibel die MYSQL-Datenbank mit einer evtl. möglichen Postgres-Datenbank (unserer eigenen) ist und wie leicht Daten aus MYSQL in POSTGRES gespeichert werden können. - Transaktionsfähigkeit und StoredProcedures
Tja, da würde ich dann wahrscheinlich doch MySQL zuerst testen -vorausgesetzt, der Funtionsumfang reicht dir aus (IIRC kann MySQL z.B. keine referenzielle Integrität überwachen). Zumindest läuft schon ein Datenbankprozess, warum noch einen zweiten daneben laufen lassen, der zusätzliche Ressourcen verschlingt. Solange beides auf ein und der selben Maschine läuft, ist MySQL bestimmt die bessere Wahl. Wie groß wird denn die DB vom CMS? Aber das sollte sich eigentlich auch in Grenzen halten. -- Gruß MaxX Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu
On Saturday 28 August 2004 18:51, Matthias Houdek wrote:
Am Samstag 28 August 2004 18:06 schrieb Udo Gerhards:
Hallo nochmal,
also erst mal Danke für die vielen Antworten. Hier vielleicht noch ein paar Info's zu dem was wir vorhaben. Die Datenbank soll ungefähr Platz für 5000 Benutzer bieten. Alle diese Benutzer sollen (können) eigene Einträge über die WEB-Seite in der Datenbank vornehmen. Für uns kristalisieren sich in erster Linie damit folgende Fragen raus:
- Geschwindigkeit bei paralellen Schreib bzw. Lesezugriffen über das WEB-Interface bei einer geschätzten Datensatzanzahl von 1.000.000 Stück, verteilt auf verschiedene (ungefähr 4-5) Tabellen - Größe des maximal verwaltbaren Speicherplatzes der DB, jeder Schreibzugriff erzeugt ungefähr einen Datensatz mit 200 Byte, wir schätzen ungefähr 200 Datensätze pro Benutzer
Größe der Datenbank also 1.000.000 x 200 Byte = ca. 200 MByte. Es bleibt also eine "kleinere" Datenbank - selbst wenn es 200 MByte pro Tabelle sein sollten. Das packt MySQL locker (hängt natürlich auch ein wenig von der Hardware ab ;-).
- Kompatibilität zu einer weiteren MYSQL-Datenbank; Das ganze wird in einem vorgefertigten CMS-System verpackt, welches seine eigene MYSQL-Datenbank erzeugt. Hierbei gehts nicht um die Schnittstellen bzw. Variablen des CMS-Systems, sonderen eher darum, wie kompatibel die MYSQL-Datenbank mit einer evtl. möglichen Postgres-Datenbank (unserer eigenen) ist und wie leicht Daten aus MYSQL in POSTGRES gespeichert werden können. - Transaktionsfähigkeit und StoredProcedures
Tja, da würde ich dann wahrscheinlich doch MySQL zuerst testen -vorausgesetzt, der Funtionsumfang reicht dir aus (IIRC kann MySQL z.B. keine referenzielle Integrität überwachen). Zumindest läuft schon ein Datenbankprozess, warum noch einen zweiten daneben laufen lassen, der zusätzliche Ressourcen verschlingt. Solange beides auf ein und der selben Maschine läuft, ist MySQL bestimmt die bessere Wahl.
Wie groß wird denn die DB vom CMS? Aber das sollte sich eigentlich auch in Grenzen halten.
-- Gruß MaxX Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu
O.k. dann werde ich erst mal mit MYSQL arbeiten. Ich dachte nur das 200MByte schon ein ganzes Stück Arbeit für MYSQL ist. Aber nach den ganzen Antworten zu meiner Frage bin ich zuversichtlich. :) Gruß + Danke an all Udo -- ------------------------------------------------------------------------------------------------- Wir sind Bill Gates! Widerstand ist zwecklos! Sie werden assimiliert! Ihre Datenbestände werden den unseren hinzugefügt! ------------------------------------------------------------------------------------------------- --
Hallo Udo, hallo leute,
--- Udo Gerhards
Hallo zusammen,
wir sind derzeit beim Aufbau einer WEB-Seite mit Datenbank. In dieser Datenbank sollen ca 1.000.000 Datensätze pro Tabelle gespeichert werden können. Das ganze wird auf einem Suse 9.0-Server laufen.
Sie mussen die maximale Groesse pro Datebank vergleichen. Ich glaube MySQL wird nur 100 GB pro db erlauben. Das werde ieren db design plan aendern wenn das nicht genug ist.
Jetzt stellt sich für uns die Frage, was hierfür besser geeignet ist (hauptsächlich Geschwindigkeit, aber auch Speícherkapazität). Welche Datenbank würdet Ihr bevorzugen? Postgres oder MYSQL?
Iche werde sagen das MySQL schneller laufen werde als Postgres weil es nicht so viel sachen: triggers, procedures etc hat. Fuer einen web site das keine komplitzierte Kalkulatzionen machen sollte ich werde sagen MySQL wird besser sein, aber Postgres SQL ist einen besseren enterprise db. Viele von denn "functions" die Postgers hat konnen sie auch ins die web site app bilden und werden sie einen schnellen db habben und aller "functions" haben, aber sie mussen nur ein web "interface" zu den Datenbank haben wenn sie das machen werden. Ich hoffe das hilft, ich weis das es eine richtige Antwort fuer alle Umstande nicht geben kann weil sie vielen Dinge vergleichen mussen. Das beste werde wenn sie ihre Daten und Kompententz mit beiden Datenbank vergleichen koennen. Grus, George
Gruß + Danke
Udo
--
-------------------------------------------------------------------------------------------------
Wir sind Bill Gates! Widerstand ist zwecklos! Sie werden assimiliert! Ihre Datenbestände werden den unseren hinzugefügt!
-------------------------------------------------------------------------------------------------
--
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Vous manquez despace pour stocker vos mails ? Yahoo! Mail vous offre GRATUITEMENT 100 Mo ! Créez votre Yahoo! Mail sur http://fr.benefits.yahoo.com/ Le nouveau Yahoo! Messenger est arrivé ! Découvrez toutes les nouveautés pour dialoguer instantanément avec vos amis. A télécharger gratuitement sur http://fr.messenger.yahoo.com
participants (7)
-
Andreas Ahlenstorf
-
Florian Floimair
-
George Stoianov
-
Manfred Tremmel
-
Matthias Houdek
-
Udo Gerhards
-
Udo Neist