yo,
grundsätzlich kann mysql solche datenmengen verarbeiten. ich würde erst einmal den "normalen" weg der datenmodellation gehen und dann schauen, ob es überhaupt einen handlungsbedarf bezüglich der performance gibt. allerdings solltest du noch einmal ein wenig genauer sagen, um welche daten es sich handelt. so ist es schwer, sich ein bild davon zu machen.
Die Daten stammen alle aus verschiedenen Quellen, so das mal ein Datensatz einen Wert besitzen kann die in einer anderen Quelle nicht vorhanden sind.
dann sollte die spalte den wert NULL aufnehmen können, also keine grosse sache.
Vom Grundgerüst wäre es aber möglich eine maximale Anzahl an Werten zu bestimmen die grob für die Speicherung benötigt werden.
keinen plan, was du damit meinst. ;-) willst du damit sagen, dass bestimmte daten auf jeden fall vorhanden sein müssen, damit der datensatz aufgenommen wird ?
Jedoch nicht unbedingt welche Werte genau, mal kann es ein Zahlenwert sein, anders wo aber wieder TEXT ...
das kann auf ein nicht geeignetes datenbank-design hinweisen, muss aber nicht. aber dazu sind mehr details notwendig.
Nun meine Frage, macht es Sinn eine Datenbank mit der Menge an Datensätzen in eine 1:N Tabelle zu schreiben ? Ein Datensatz hat im schnitt 10 Werte, was bedeuten würde:
also eine 1:N tabelle besteht schon mal aus zwei tabellen und nicht einer, sonst kann man ja das 1:N nicht darstellen. ;-) und jetzt wird mir glaube ich auch klarer, was du mit zahlen und text meinst. du speicherst quasi attribute eines datensatz in die N tabelle und die attribute unterscheiden sich in ihrer domäne. das habe ich gerade auch bei meinem letzten datenbank-design gemacht, hatte aber auch "gute" gründe dafür. die frage bei dir ist, ob man diese atttribute nicht besser auf verschiedene spalten aufteilt ?
Also wenn ich jetzt nicht falsch liege sind es ca. 20 Millionen :-) Ist sowas überhaupt machbar ? Bzw. macht es Sinn bei einer solchen Menge mit 1:N zu arbeiten ?
gundsätzlich ja, sogar noch viel mehr. und 20 millionen wird es ja nur, wenn du wirklich alle 2 millionen datensätze mit all ihren attributen anzeigen willst. den bildschirm möchte ich sehen. ;-) also in aller regel sollte die abfragen weniger treffer beinhalten. wichtig ist dabei natürlich der index über den fremdschlüssel.
Eine 1:1 Beziehung würde mir das ganze optisch vereinfachen und die Zahl der Datensätze noch in einem anständigen Rahmen halten, jedoch bin ich damit dann recht unflexibel bei der Speicherung der Daten.
das ist eine möglichkeit, unter einer vorraussetzung, nämlich wenn die anzahl der attribute einen maximalwert nicht überschreitet, sagen wir 10. 1:N und 1:1 sind dann sicherlich beides gehbare möglichkeiten. welcher besser ist, dazu fehlen ein paar infos.
Ilja