MYSQL ... Was ist besser...

100 Datensätze in 1000 Tabellen
oder 100000 Datensätze in einer Tabelle ?

es geht um die kathegorien in einer gallerie
 
Kommt natürlich darauf an, worauf du wie oft zugreifen musst.

Ich würde aber sagen 100.000 sind doch zuviel für eine Tabelle.
100 in einer Tabelle wären sinvoll, wenn du bei jedem Aufruf eben nur wirklich aus 1 oder 2 bestimmte Tabellen auslesen musst und nicht aus 10 oder 20.

Das ganze kann sicherlich auch mit einem guten Mittelding anders aufgebaut werden.
Wie sieht die Tabellenkonstruktion denn genau aus?
 
Es kommt natürlich ganz drauf an was du damit machen willst und ob es für den Verwendungszweck wirklich soviel Datensätze geben soll.
Wenn du nicht gerade ein neues, auf Datenbank basiertes Windows programmieren willst, dann wäre die kleinere Variante schon etwas sinnvoller. :)
 
Original von 4future
100 Datensätze in 1000 Tabellen
oder 100000 Datensätze in einer Tabelle ?

es geht um die kathegorien in einer gallerie

sehe ich das richtig, dass wenn du die oberen 100 mit den 1000 jeder mit jedem verbindest die unteren 100000 rauskommen? dann ist mit SICHERHEIT die erste version besser, auch wenn sie unter umstaenden ein wenig mehr zeit bei der abfrage braucht.

Original von zovax
Ich würde aber sagen 100.000 sind doch zuviel für eine Tabelle.
warum zuviele? hatte auch schon tabellen, die soviel eintraege hatten und ohne probleme noch joins damit gemacht. war nicht mal alllzu langsam.
 
Folgendes: Ich baue eine Gallerie, in die in absehbarer Zukunft 100.000 Bilder in 1000 Gallerien erscheinen könnten. Nun hab ich mich bei der Menge gefragt: Lege ich eine Tabelle so an:

ID NAME KATHEGORIE_ID COUNTER

Oder leg ich automatisch für jede neue Kathegorie eine Tabelle in etwa so an:

ID NAME COUNTER

und eine Tabelle in der alle Kathegorieren drin sind.

---------------------------
Noch was wär für mich interresant,
Wie würdet ihr es machen wenn es sagen wir mal 10.000 Bilder währern oder anders, wo sind die Grenzen von einem MYSQL Server ? bei wieviel Tabellen oder Datensätzen in einer Tabelle ????

bzw. wäre es für den User ertragbar (wartezeiten) wenn mysql 100.000 nach ca. 30 Datensätzen durchsucht ?
 
Original von 4future

ID NAME KATHEGORIE_ID COUNTER
so würd ichs probiern, wie du schon vorgeschlagen hast

Original von 4future
Noch was wär für mich interresant,
Wie würdet ihr es machen wenn es sagen wir mal 10.000 Bilder währern oder anders, wo sind die Grenzen von einem MYSQL Server ? bei wieviel Tabellen oder Datensätzen in einer Tabelle ????

da hatte ich eigentlich nie Probleme, auch mit mehr als ner Million datensätzen nicht.

Original von 4future
bzw. wäre es für den User ertragbar (wartezeiten) wenn mysql 100.000 nach ca. 30 Datensätzen durchsucht ?

wenn du die Indizes schlau setzt, gibts da keine Probleme.
und es heisst "kategorie" ;)
 
Original von Tec
Aber glaub mir, jede grosse Datenbank welche ich bisher gesehen habe, bestand aus abartig vielen Tabellen.

aber da wird sicherlich nicht fuer jede gruppe eine tabelle angelegt....sofern du userverwaltung und co noch dabei hast, hast du schnell mal 10 tabellen in denen du das zeug abspeicherst. da kommen schnell mal 30-40 tabellen zustande, sofern es ein groesseres projekt ist.

@4future: schlussendlich musst es du entscheiden da hat tec recht.
da es ja bereits solche bilderverwaltungs dinger in php gibt, welche eine db benutzen (4images, coppermine, ...) wuerde ich mal vorschlagen, dass du mal ein auge auf diese projekte wirfst. die haben sich sicherlich die einen oder anderen gedanken gemacht.
 
http://s2k-ftp.cs.berkeley.edu:8000/www/sqldb.gif

(geklaut bei http://cbbrowne.com/info/rdbms.html)

was ich damit sagen will, ist das gleiche wie in obiger website: lies erst mal ein oder zwei gute Bücher über Datenbanken.

zu deinen Galerien.
natürlich gehören die Bilder alle in eine Tabelle, was denn sonst. (Stichwort: 1 zu 1 Abbildung Objekte in der realen Welt (hier: pics) auf Objekte in der DB (hier: Tabellen)
und natürlich legt man nicht zur Laufzeit weitere Tabellen an, so wie Du das machst mit deinen "Gruppen". (Stichwort: Trennung Statisches, Struktur, versus Dynamisches, Daten)
noch dazu für die gleichen Dinge (Stichwort: wie würdest Du eine Suche über Deine Tabelle realisieren?)

und natürlich wird das alles Dich nicht hindern, es doch zu tun!
Solange das RDBMS es irgendwie mitmacht und nicht zusammenbricht :-)
(all die regeln oben sind halt "nur so Daumenregeln", die allerdings jeder kennt, der mehr als eine Woche mit DBs arbeitet :-)

its your choice :-)
 
.. die jeder kennt der länger als eine woche mit db's arbeitet.

für das jeder, sind sich hier aber nicht viele einig ...

wie ich die suche mit meheren tabellen realisiere ? is doch ganz einfach ! ich hab eine tabelle in der alle tabellen gelistet sind, und dann eine geschachtelze abfrage---
 
Original von 4future
wie ich die suche mit meheren tabellen realisiere ? is doch ganz einfach ! ich hab eine tabelle in der alle tabellen gelistet sind, und dann eine geschachtelze abfrage---

du willst jede tabelle einzeln abfragen? deine db wird dich lieben (und hoffentich 2tage spaeter deine anfragen abgearbeitet haben) !
 
wie ich die suche mit meheren tabellen realisiere ? is doch ganz einfach ! ich hab eine tabelle in der alle tabellen gelistet sind, und dann eine geschachtelze abfrage---
Puhh, beschäftige dich mal ernsthaft mit dem Thema Komplexität (Stichwort: Big O Notation) dann wirste sehen das sowas unsinn ist. Index-Erzeugung sollteste ins Auge fassen.
 
wie gesagt, wir können dich nicht davon abhalten, diesen Unsinn zu machen :-)

nur ein Tip: performance.
und die Verifizierung, ob dein Programm das macht, was es soll, wird auch sehr viel schwieriger, und das völlig unnötig.

nochmal von vorne.
du richtest einmal, am Anfang, die DB ein. mit allen Tabellen.
die am Anfang leer sind und erst im Betrieb gefüllt werden.
alleine die Idee, danach noch die Tabellennamen zu ändern, ist krank.
und dann auch noch mit Namen, die von benutzereingaben abhängen.
und möglicherweise tausende oder millionen Tabellen.
andererseits, wenn du die DB quälen willst, und es dir egal ist, wenn sie nach nicht vorhersagbarer Zeit mit nicht vorhersagbaren Fehlermeldung dir um die Ohren fliegt, warum nicht. vielleicht ist es ja genau das, was du willst.

nochmal. du *kannst* es so machen, aber du läßt dann alle Funktionen fahren, die dir die DB sonst bietet (Backup, systematische Konstruktion, consistency checking, query optimization)
davon abgesehen: ja klar geht das.
 
Vlt ist er ja Masochist und steht auf "inkonsistenz durch redundanz" ? :D
Jedenfalls empfehle ich ihm mal ne Lektüre über Datenbanken reinzuziehen.
 
*gr* das bin ich nun dann doch nicht....

@ hamill ich hab das schon beim ersten mal gerafft ! ich wollt doch bloß wissen wie ich's besser mache ! und zwar wird das eine gallerie, und die ist nicht auf suchen optimiert! also hab ich mir nur die frage gestellt, wie ichs besser mache... wenn ich eine von 1000 tabellen auswähle und darin alles ausgebe oder ob ich mir aus einer tabelle mit 1er Milllion hundert datensätze raussuche und die ausgebe.... sorry, bin halt nur ein fisy und hab in dieser dimension in sachen datenbanken erstellen noch keine erfahrungen....
 
Auf jeden Fall sollten die Bilder in einer eigenen Tabelle gespeichert werden. Wenns mal Platzprobleme hast kannste diese dann leichter auslagern. Den Rest der Daten halt in entsprechende Tabellen organisieren, wobei du auf Funktionen wie Vererbung, Assoziationen usw zurückgreifen kannst zur Modellierung.
Wird diese Gallerie dann übers Internet einsehbar sein?
 
Zurück
Oben