MySql Datenbank voll?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
arbeit
beispiel
bekommen
benutzen
besten mache
betreiben
datenbank
datum
file
frage
http
kaufen
million
passieren
speichern
system
tabelle
update
url
webseite
-
Also ich habe eine Frage :)
Man kann sich MySQL Datenbanken anlegen und diese dann bequem befüllen lassen. Was ist aber jetzt wenn diese irgendwann voll ist? Kann das überhaupt passieren?
Mein Grundverständnis sagt mir, dass die Datenbank an sich mit jedem Eintrag größer wird. Um so größer die Datenbank dann wird, um so langsamer müsste diese dann auch werden und irgendwann ist der Punkt erreicht, an dem ein arbeiten mit dieser nicht mehr möglich ist oder liege ich falsch?
Ein Beispiel. Facebook wird die User ja irgendwo auch in einer MySQL Datenbank abspeichern und die haben ja genug Daten, wird das dann auf mehrere verteilt oder habe ich das Grundprinzip missverstanden?
Freue mich auf eure Antworten. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Natürlich kann eine Datenbank voll werden. Auch Datenbanken verbrauchen Festplatten-Speicherplatz und der ist nach oben hin natürlich begrenzt.
Ich bezweifel ja doch recht stark, dass Facebook noch auf einer mySQL-Datenbank arbeitet. Da gibts doch massenweise andere DBMS, deren Grenzen nach oben hin, nicht so limitiert sind wie bei mySQL. -
Voll werden sodass sie nicht mehr bentzt werden kann, wird nicht passieren.
Die vernuenftige Arbeit mit grossen Datenbestaenden steht und faellt mit der sinnvollen Planung dieser Datenbank.
Man nennt das dann auch relationale Datenbanken
Siehe auch hier: http://de.wikipedia.org/wiki/Relationale_Datenbank
Gruss, Lutz -
luponrw schrieb:
Voll werden sodass sie nicht mehr bentzt werden kann, wird nicht passieren.
Die vernuenftige Arbeit mit grossen Datenbestaenden steht und faellt mit der sinnvollen Planung dieser Datenbank.
Wieso kann sie denn nicht voll werden?
Du kannst deine Daten so optimiert speichern wie du nur kannst, trotzdem kann die Datenbank irgendwann voll werden.
Edit: Also ich meine natürlich dass man nichts mehr reinschreiben kann. Die bereits geschriebenen Daten können natürlich weiterhin benutzt werden. Das hattest du ja gemeint. Sry.
Beitrag zuletzt geändert: 18.8.2012 12:13:21 von philippkern -
Facebook verwendet eine eigens weiterentwickelte, geclusterte Version von MySQL.
Einige Infos dazu findest du hier (leider auf Englisch):
http://gigaom.com/cloud/facebook-shares-some-secrets-on-making-mysql-scale/
Für die Suche in der Inbox hat FB ein eigenes verteiltes Datenbankverwaltungssystem entwickelt:
https://de.wikipedia.org/wiki/Apache_Cassandra -
Das bedeutet also, wenn ich eine Seite mit MySQL betreiben möchte, sollte ich vorher eine sinnvolle Splittung vornehmen. Gibt es da irgendwelche Tutorials, wo ich sehe wie ich das am besten mache?
-
ramsiis schrieb:
Das bedeutet also, wenn ich eine Seite mit MySQL betreiben möchte, sollte ich vorher eine sinnvolle Splittung vornehmen. Gibt es da irgendwelche Tutorials, wo ich sehe wie ich das am besten mache?
Du wirst sicherlich keine Datenbank mit Millionen von Einträgen bekommen...
Für normale Webseiten reicht es MySQL einfach weiter normal zu benutzen wie bisher...
Ich frag mich warum hier User ohne riesen Firma sich Gedanken über zu große Datenbanken machen?? -
copynpaste schrieb:
Du wirst sicherlich keine Datenbank mit Millionen von Einträgen bekommen...
Für normale Webseiten reicht es MySQL einfach weiter normal zu benutzen wie bisher...
Ich frag mich warum hier User ohne riesen Firma sich Gedanken über zu große Datenbanken machen??
Da kann ich dir ein Beispiel nennen..
Ich hatte mal ein Bukkit-Plugin (logblock)
we3lches jeden gesetzten Block eines Spielers auf dem Server in eine Datnbank abspeichert.
Nach einer gewissen Zeit, kamen hier über 2 Millionen einträge zusammen...
aufegaut war diesse wie folgt:
(ungef.)
Y | X | Z | Playerid | id etc.
10 | 10 | 1 | 1
also für jeden block eine neue Zeile etc.
naja..
am Schluss hat eine Abfrage dann doch merklich länger gebraucht, wie gewohnt^^
Vorallem wenn man auf der Website eine lise mit Playerstatistiken ausgeben wollte. (mehrere Querys etc.)
Sicher hätte man das bestimmt eleganter speichern können, aber ich hab das Plugin schliesslich nicht entwickelt^^
Also man kann durchaus als "Privatanwender schnell ziemlich viele Einträge in eine DB bekommen :-)
Gruss Paddy
-
paddy-herrmy schrieb:
logblock
Okay von einem solchen Plugin bin ich jetzt nicht ausgegangen
Ich hab grad nur an "normale" Websites gedacht und vorallem wegen dieem Post geantwortet:
ramsiis schrieb:
Das bedeutet also, wenn ich eine Seite mit MySQL betreiben möchte, sollte ich vorher eine sinnvolle Splittung vornehmen. Gibt es da irgendwelche Tutorials, wo ich sehe wie ich das am besten mache?
Weil mir sieht es da nicht so aus als ob er Logblock oder andere Plugin Daten speichern will..
Es sieht nur so aus als ob er etwas in seiner Webseite mit MySQL anstellen will und da kommen sicher nicht so schnell so viele Datensätze hinzu wie bei einem solchen Minecraft Plugin -
copynpaste schrieb:
Weil mir sieht es da nicht so aus als ob er Logblock oder andere Plugin Daten speichern will..
Es sieht nur so aus als ob er etwas in seiner Webseite mit MySQL anstellen will und da kommen sicher nicht so schnell so viele Datensätze hinzu wie bei einem solchen Minecraft Plugin
Jo, da hast du natürlch recht :-)
Aber so hat der TE wenigstens auch eine Vorstellung wieviel so eine MySQL-DB aufnehmen kann^^
Übrigens: Das MySql-File der DB mit über 2 Millionen Einträgen, war letztendlich nur einige MB gross^^
Also ich denke bevor der Festplattenplatz aufgebraucht ist, kackt vorher eher das System ab^^
Ich konte z.B am schluss die DB auch nichtmehr einfach über PHPMyAdmin exportieren, da diesses mit der Konvertierung der Daten schlichtweg überfordert war, und somit einen error erzeugte^^
UPDATE:
Hier ein screenshot meiner aktuellen Logblock-DB
(Datenbank ist knapp über einenen Monat am laufen :-)
http://www.bilder-upload.eu/upload/20f701-1345302919.png
Update-Update:
Habe die Datenbank mit den 1,5 Millionen einträgen mal als SQL-File gedownloadet..
sie ist lediglich: 133MB gross..
Also bis da ne Festplatte voll wird, kannst einige Daten speichern.. viel Spass :-)
Beitrag zuletzt geändert: 18.8.2012 17:52:03 von paddy-herrmy -
Grundsätzlich beschränkt sich die Größe einer Datenbank nur auf die Größe der Festplatte und Einschränkungen durch das Betriebssystem.
Gute Datenbanken haben gerade den Vorteil, dass sie bei großen Datenmengen nicht merklich langsamer werden. Dazu müssen aber die Indizes richtig gesetzt werden. Es bringt z.B. nichts, wenn man eine Namenspalte indiziert, bei Abfragen dann aber nur über die nicht indizierte ID zugreift (WHERE ID = '$id'). Erst mit den richtigen Indizes kann das DBMS richtig schnell und effektiv arbeiten. -
Aber wie groß ist denn nun eine Datenbank??? Beziehungsweise, warum kann man mehrere Datenbanken hier kaufen? Ich hab das Prinzip noch nicht verstanden
-
pixlehr schrieb:
Aber wie groß ist denn nun eine Datenbank??? Beziehungsweise, warum kann man mehrere Datenbanken hier kaufen? Ich hab das Prinzip noch nicht verstanden
Verschiedene Datenbanken kannst du für verschiedene Projekte verwenden. Für jedes Projekt eine Datenbank zum Beispiel :D -
Also reicht es vollkommen aus, wenn ich beispielsweise eine Datenbank kaufe um eine Website zu betreiben? Egal wie viel Content darauf landet?
-
ojeojeoje...
ich glaub hier fehlt es an Grundverständnis...
Eine Datenbank wird nur von der Physischen Plattform limitiert, auf der sie installiert ist und von den veralteten Technologien des DBMS.
Wenn wir bzum beispiel ganz lapidar Excel als primitivste form eines dbms sehen, dann war bis Office 2003 die Maximale Anzahl Datensätze auf 65535 beschränkt. Das hatte den Hintergrund, dass der Quasi-Primärschlüssel Zeilennummer als 2 Byte Integer abgeworfen war (2^16 = 65536)
ein beispiel für physikalische begrenzung:
Du hast eine Tabelle, deren Struktur zum beispiel aus 4 integern(á 4Byte), einem varchar(255Byte + \0) und einem Blob besteht(4096Byte). das heißt jeder einzelne datensatz ist 4378 Byte groß. jetzt hast du die Datenbank auf einem 100 GB großen Datenträger abgeworfen(abzüge durch strukturdaten und Dateisystem etc lass ich mal unberücksichtigt), hättest du dann dein Limit bei etwa 24,5 Mio Einträgen erreicht und die 100GB wären voll... jetzt hast du natürlich nciht nur eine Tabelle, sondern viele verschiedene mit unterscheidlicher Struktur, deren Datensätze andere Speichergrößen in Anspruch nehmen. Deswegen normalisiert man Datenbanken auch, um ein unnötiges Anwachsen der Tabellen mit Leerdaten zu verhindern.
Damals gab es noch eine andere Restriktion, die durch das Dateisystem, da konnten Datencontainer nicht über die 2GB Grenze des FAT-Systems hinaus wachsen, sondern mussten dann gesplittet werden... (wobei der Einsatz solcher Datenbanken auf Win systemen unwahrscheinlich war, da war eher Linux mit ext2 im Einsatz
zu der Frage, warum man hier mehrere Datenbanken ersteigern kann: die Ganzen Datenbanken, hier sind nur logische Container, die voneinander eine Sammlung von Tabellen trennt. Man macht es hauptsächlich der übersichtlichkeit halber, denn ich glaube kaum, dass du hier deine Datenbanken auf mehrern Servern verteilt bekommst.
PS immer diese komischen Kurzantworten...
werbeparadise schrieb:
Ich denke schon, dass das ausreicht.
WEnn du es nicht weißt, dann antworte gar nciht erst... zur Frage: ja, es reicht auf jeden Fall... Wenn deine Datenbank ausufernde Dimensionen annimmt, wird sich einer der Knights oder der Lord selbst bei dir melden und dich darauf ansprechen... vor allem auch im Hinblick auf Fair Use... aber solange du keine Generischen Inhalte erzeugst, die mehrere GB in die Datenbank pro Stunde entladen, sollte es kein Problem werden. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage