# Dateien in MySQL speichern & indizieren



## JBO (4. Okt 2014)

Hallo zusammen,

mal ein grundsätzliche Frage.

Ich bin gerade dabei eine etwas umfangreiche Datenbank in MySQL aufzusetzen.
Es werden in Zukunft auch viele Dateien verarbeitet/verwaltet werden müssen, wie xls. doc, pdf usw. die verschiedenen Projekten zugeordnet werden. Es geht hier um tausende Dokumente im Laufe der Zeit. Auch werden später sehr viele Leute darauf zugreifen. Alle Benutzer müssen dateien hinzufügen können bzw auch finden können um die dann auch lokal speichern zu können.

Diese ganzen Dateien müssen auch vom Inhalt indiziert werden. Eine Volltextsuche wird also auch auf die Dateien loß gelassen werden müssen.

Nun ist hier meine Frage, ob man diese Dateien eher direkt in MySQL speichert oder als Dateien auf dem server beläst. Hier kommt ja auch die Problematik der Performance zum Tragen und auch die Komplexität der Umsetzung.
Die Applikation als solche wird in Java umgesetzt.

Ich habe auch schon einiges im www gelesen, sind aber oftmals alte Artikel gewesen und somit nicht immer aktuell im Hinblick auf eine Machbarkeit mit heutigen Technologien.

Ich würde mich über Tipps und Hinweise und Anregungen sehr freuen.

Vielen Dank.


----------



## stg (4. Okt 2014)

Sofern es keine triftigen Gründe dafür gibt, würde ich davon abraten die Dateien direkt in der Datenbank zu speichern. Sofern du sie in der Datenbank speicherst, wirst du sie eh in Binärdaten umwandeln müssen, was einen direkten Zugriff auf den Inhalt ohnehin quasi unmöglich macht.

Grundsätzlich handhabe ich es so, dass ich die Dateien direkt auf dem Server speichere. In der Datenbank merke ich mir nur grundsätzliche Information, wie z.B. den MIME-type, den Speicherort, den Originalnamen, Uploadzeitpunkt etc.. Diese Informationen kannst du dann nach Belieben mit dem User, dem Projekt oder was auch immer in Beziehung setzen.

Sofern es ausreichend ist, kannst du ja auch noch entsprechende keywords speichern, nach denen gesucht werden kann. Andernfalls würde ich für die Volltextsuche vermutlich auf eine externe Lösung mit Systemmitteln zurückgreifen. Alle Dateien in deine Java-Application zu laden und dann den Inhalt zu durchwühlen kann hier jedenfalls nicht die dollste Lösung sein.


----------



## JBO (4. Okt 2014)

stg hat gesagt.:


> Grundsätzlich handhabe ich es so, dass ich die Dateien direkt auf dem Server speichere.



Vielen Dank für die Antwort.
Dahin tendiere auch ich mit meinen Überlegungen. Aus mehreren Gründen. Performance, Umsetzung einer Indizierung & Suche, Security usw.
Ich selber werde das sowieso nicht alleine umsetzen können. Bin viel zu viel nur oberflächlich im Thema Datenbanken & Java drin. Werde sicherlich mal ein wenig mithelfen so weit wie ich es kann. Hier aber müssen schon erfahrene Entwickler ran. Aber ich lege die Grundlagen und die Richtung bzw Funktionalitäten fest. Aber auch hier will ich jetzt gerade zum Anfang keinen Fehler machen. Denn der kostet später im weiteren Verlauf des Projektes viel Zeit und damit auch Geld.


----------

