Sven Rautenberg: Daten in DB oder doch lieber in eine Datei?

Beitrag lesen

Moin!

das problem ist heutezutage nicht so sehr der speicherplatz, sondern in aller regel mehr die performance. wenn ich mir mal bestimmte spaltentypen anschaue, dann sind die paar mehr bits lächerlich im gegensatz, was man in datenbanken alles rein packen kann und getan wird. der vorteil ist, ich habe einen sprechenden schlüssel und keinen codierten, das macht es übersichtlicher. und noch viel mehr ersparre ich mir einen Join. und die zweite tabelle dient eben dazu nicht, nicht einen dinstinct über die grosse tabelle ausführen zu müssen.

Da anzunehmen ist, dass man auch mal nach Kategorien selektiert, wird das Kategoriefeld ohnehin indiziert werden. Ein SELECT DISTINCT auf die Kategorien könnte die DB also extrem abkürzen, indem sie den Index ausliest und verwertet.

Abgesehen davon: Dein Vorschlag klingt einfach viel zu sehr nach MySQL. In richtigen Datenbanken legt man die Tabelle mit den Kategorien an und definiert bei den Blogeinträgen die Kategorie als Fremdschlüssel aus der Kategorietabelle. Mit irgendwelchen kryptischen IDs muß man sich dann garnicht mehr selbst herumschlagen, das verwaltet alles die Datenbank. Und mit den passenden Views bzw. Stored Procedures läuft auch das Lesen und Schreiben extrem simpel, indem man einfach nur einen INSERT mit allen Informationen sendet, und die DB dann die Aufteilung auf die verschiedenen Tabellen vornimmt.

Da du Speicherplatz vs. Performance ansprichst: Was ist wohl auf Dauer langsamer: Eine sich immer mehr aufblähende Datenbank, weil die Kategorienamen redundant immer wieder unnötig mitgespeichert werden, oder eine flinke Zuordnungsoperation im Speicher, um die Kategorie-ID mit dem zugehörigen Text zu versehen? Denk dran, Festplattenoperationen sind um den Faktor 1000 langsamer, als RAM-Zugriffe. Wenn du also von "Performance" sprichst und damit argumentierst, dann sollten alle deine Maßnahmen die Festplattenzugriffe minimieren. Und das zwingt dich dann logischerweise, die Datenbank so klein wie möglich zu halten. Abgesehen davon kräuseln sich jedem Fachmann bei deinem Tabellendesign die Fußnägel.

  • Sven Rautenberg