Verlagerung des Datenbestandes
Biene
- datenbank
Grüßt euch,
auf meinem Server lege ich in einer großen (1GB) MYSQL-Datenbank Daten ab. Nun kommt noch eine Menge (0,5GB) zusätzlicher Daten hinzu.
Diese sind gleich strukturiert wie die bisherigen. Allerdings werden sie immer durch eine andere (eine zweite) Anweisung abgefragt. Nun könnte ich sie zwar gleich in einer Anweisung abfragen, aber hierzu meine Frage:
Hat es einen Vorteil, beide Daten in der selben Tabelle abzulegen oder sollte ich sie besser in einer zweiten Tabelle (mit identischer Struktur, Indizes, etc.) speichern?
Wäre nett, wenn ihr mir Tipps geben könntet.
Biene
Hi,
Hat es einen Vorteil, beide Daten in der selben Tabelle abzulegen oder sollte ich sie besser in einer zweiten Tabelle (mit identischer Struktur, Indizes, etc.) speichern?
gleichförmige Daten werden alle in der selben Tabelle abgelegt. Verschiedene identische Tabellen - populäres Beispiel: alle mit dem Anfangsbuchstaben "A", alle mit "B", ... - existieren in einem brauchbaren DB-Schema nicht.
Cheatah
Hello,
gleichförmige Daten werden alle in der selben Tabelle abgelegt. Verschiedene identische Tabellen - populäres Beispiel: alle mit dem Anfangsbuchstaben "A", alle mit "B", ... - existieren in einem brauchbaren DB-Schema nicht.
Das ist mir zu pauschal!
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hi,
Das ist mir zu pauschal!
das sagtest Du bereits in diesem Thread bereits. Die Fragestellung ist aber noch auf einem Komplexitätsniveau, wo eine Pauschalisierung völlig ausreicht und eine Detaillierung den Rahmen sprengen würde.
Cheatah
Hello Cheatah,
Das ist mir zu pauschal!
das sagtest Du bereits in diesem Thread bereits. Die Fragestellung ist aber noch auf einem Komplexitätsniveau, wo eine Pauschalisierung völlig ausreicht und eine Detaillierung den Rahmen sprengen würde.
Ok, aAkzepiert.
Wenn Du den Einwand aber nun auf Deutsch und verständlich zum Ausdruck bebracht hättest, könnten ihn sicher viel mehr Leute berücksichtigen. Wir sind hier schließlich nicht ein einem "wie frustriere ichn am besten Andere"-Forum, sondern in einem "wie gebe ich Anderen Anleitug zum Selbermachen"-Forum.
Oder?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
meine Frage:
Hat es einen Vorteil, beide Daten in der selben Tabelle abzulegen oder sollte ich sie besser in einer zweiten Tabelle (mit identischer Struktur, Indizes, etc.) speichern?
Wäre nett, wenn ihr mir Tipps geben könntet.
Biene
Hallo Maja
Keine ahnung :-) Einfach auf dein Bauchgefühl hören
in diesem falle ;-)
hi,
Hat es einen Vorteil, beide Daten in der selben Tabelle abzulegen oder sollte ich sie besser in einer zweiten Tabelle (mit identischer Struktur, Indizes, etc.) speichern?
Die Zeiten, in denen man beim Zurücklegen eines längeren Reiseweges an jeder Poststation die Pferde wechselte, sind vorbei.
Daten identischer Struktur gehören auch in die gleiche Tabelle.
Ausnahmen wären höchstens dann denkbar, wenn du mit der Performance ernsthafte Probleme hast (mit den genannten Datenmengen sollten MySQL m.E. aber noch gut umgehen können) - die du mit geeigneten Maßnahmen (bspw. Setzen von entsprechenden Indizes) _nicht_ beseitigen konntest.
gruß,
wahsaga
Grundlage für Zitat #2.
Hello,
Daten identischer Struktur gehören auch in die gleiche Tabelle.
Das hängt aber sowohl von gesetzlichen als auch von sicherheitsrelevanten Bedingungen ab.
Es gehören keinesfalls immer und pauschal Daten gleicher Struktur in dieselbe Tabelle.
Ohne weitere Information der OP kann man diese Frage gar nicht sinnvoll beantworten!
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Moin!
Daten identischer Struktur gehören auch in die gleiche Tabelle.
Das hängt aber sowohl von gesetzlichen als auch von sicherheitsrelevanten Bedingungen ab.
Es gehören keinesfalls immer und pauschal Daten gleicher Struktur in dieselbe Tabelle.
Gibt doch einfach mal ein Beispiel, was du meinst.
- Sven Rautenberg
Hi Biene,
auf jeden Fall macht es Sinn, Indexe zu setzen, damit bei den Abfragen nicht unnötig viel Zeit vertrödelt wird.
Gruß
Hans
Hallo Biene,
nichts ist schöner, als so viel Daten in der Hand und ein klares Optimierungsproblem vor Augen zu haben. :) Probier es doch aus! Nimm dir am besten eine billige lahme Kröte, schmeiss irgendein minimal Linux drauf, füll die Tabelle mit den Daten, mach nen SELECT, füll die neuen Daten dazu, mach wieder einen SELECT, leg einen Index drüber, mach wieder einen SELECT, split die Daten auf, mach die zwei getrennten SELECTS, leg Indizes auf die getrennten Daten und mach wieder die SELECTS. Und vergiss nicht dabei die Laufzeiten zu notieren. Das alles kann man locker an einem Tag bewältigen und hinterher bist du wesentlich schlauer. Du kannst bei der Gelegenheit sogar ein bisschen deine Index Skills aufpeppen und dir mal anschauen wie man ein Index besonders sinnvoll bezüglich eines SELECTs auf eine Tabelle legen kann.
Ansonsten solange die Performace nicht mission critical ist, geht eine saubere Struktur _immer_ vor. Also gleichartige Daten gehören auch in die gleiche Tabelle.
Weiteres zur Performance: bei einfachen SELECTs mit ordentlich festen Bedingungen wie feldname = 'wert' und möglichst nur einem Datensatz als Ergebnis greift ein Index richtig gut. Es ist egal ob du 1GB oder 100GB in einer Tabelle hast, der Index sagt sofort _wo_ sich der passende Datensatz befindet, es wird geholt und fertig.
Hast du allerdings Abfragen mit LIKE '%dfd%' und solch Geschmodder und 1,5 GB Daten, wovon 1GB zum Ergebnis gehören, kommt dein SELECT vielleicht niemals wieder aus der Datenbank raus.
Gruß,
Cruz