MySQL Performance: Mehrer DB oder eine mit mehreren Tabellen
Steffen
- datenbank
0 Matze
Hallo,
ich stehe vor einem Problem. Ich bin mir nicht sicher, was performancemäßig besser wäre:
Ich arbeite mit PHP und zur Vereinfachung kann man davon ausgehen, daß ich komplett durch muß (d.h. durch alle Tabellen in einer Datenbank bzw. durch je eine Tabelle in vielen Datenbanken) Hinzu kommt, daß bei meiner Anwendung evtl. mehrere Anwender gleichzeitig zugreifen wollen und es nicht zu Komplikationen kommen sollte. Was wäre alse Eurer Meinung performancemäßig vorzuziehen?
Gruß, Steffen.
Die Frag ist gleich beantwortet.
Eine Datenbank mehrere Tabellen.
Wenn Du nicht grad wirklich viele Einträge hast und nicht wirklich viel an Datenaufkommen hast lohnt es sich nicht wegen ein paar tabellen mehrere Instanzen von mysql laufen zu lassen.
Jede Instanz verbraucht 1. Speicher und 2. Prozessorleistung.
Und was Du da so verbrauchst langt für viele Benutzer und Abfragen.
2. Keinen Full Tabel Scan
3. Spalten auf die Du oft einen Select machst indizieren.
4. Wenn Du die rechte richtig vergibst und eventuell die Benutzerdaten auch in Tabellen speicherst etc. brauchst Du dir keine Sorgen machen, dass die Datenbank zwecks Zugriffrechte durcheinander kommt.
Benutzerrechte musst Du so oder so im PHP prüfen.
Du generierst doch sicher auch ein Sessionid oder ähnliches.
Gruss Matze
Hi Matze
Die Frag ist gleich beantwortet.
Eine Datenbank mehrere Tabellen.
Nein, weil deine Annahmen falsch sind. Eine Datenbank ist nicht mehr als ein Verzeichnis in MySQL.
Wenn Du nicht grad wirklich viele Einträge hast und nicht wirklich viel an Datenaufkommen hast lohnt es sich nicht wegen ein paar tabellen mehrere Instanzen von mysql laufen zu lassen.
Wozu mehrere MySQL-Instanzen. In MySQL hat eine Datenbank nicht zur Folge, das mehr als eine Instanz von MySQL laufen muss.
Du kannst nicht weil es zb in Oracle so ist, folgern dass
es auch in MySQL so ist.
Gruss Daniela
Moin!
Hi Matze
Die Frag ist gleich beantwortet.
Eine Datenbank mehrere Tabellen.
Nein, weil deine Annahmen falsch sind. Eine Datenbank ist nicht mehr als ein Verzeichnis in MySQL.
Stimmt. Deshalb gibts eigentlich keinen Unterschied, ob eine Tabelle je mehrere Datenbanken oder mehrere Tabellen in nur einer Datenbank.
Allerdings muß man bei mehreren Datenbanken immer noch lästig mit mysql_db_select() rumschalten, welche Datenbank man denn gerne hätte, und JOINS über Datenbankgrenzen hab' ich z.B. auch noch nicht wirklich gesehen - es gibt also Vorteile, die Daten in eine Datenbank zu packen. Außerdem könnte ich mir vorstellen, dass MySQL eben doch eine Sonderbehandlung je einzelne Datenbank vornimmt.
- Sven Rautenberg
Hallö nochmal,
danke für die Hilfe. Ich hab evtl. vergessen, zu sagen, daß die Tabellen in jedem Falle völlig unabhängig voneinander wären, aber ich denke, meine Frage ist beantwortet.
Gruß, Steffen.