Ich arbeite gerade an einem 'einfachen' Foto-System mit mongoDB, mit einem Replica Set und GridFS.GridFS benutze Dateiname als Index
Das Prinzip ist einfach, ich habe eine Menge Fotos setzen GridFS verwenden, kennt der Client den Dateinamen, und aus dem Dateinamen kann ich die Datei abzurufen.
Verwendet GridFS Dateinamen als Indizes? Hoffentlich ja, ich konnte es in keinem offiziellen Dokument finden.
Meine Statistiken sind:
{
"ns" : "photos.socialphotos.files",
"count" : 758086,
"size" : 168295128,
"avgObjSize" : 222.00004748801587,
"storageSize" : 220647424,
"numExtents" : 15,
"nindexes" : 2,
"lastExtentSize" : 43311104,
"paddingFactor" : 1,
"flags" : 1,
"totalIndexSize" : 125084624,
"indexSizes" : {
"_id_" : 22925504,
"filename_1_uploadDate_1" : 102159120
},
"ok" : 1
}
EDIT: von indizieren() die Sammlungen, I 30 Go gewonnen, aber es ist immer noch viel zu hoch ..
Meine Indizes sind:
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "photos.socialphotos.files",
"name" : "_id_"
},
{
"v" : 1,
"key" : {
"filename" : 1,
"uploadDate" : 1
},
"ns" : "photos.socialphotos.files",
"name" : "filename_1_uploadDate_1"
}
I ndexes Größe:
"keysPerIndex" : {
"photos.socialphotos.files.$_id_" : 758086,
"photos.socialphotos.files.$filename_1_uploadDate_1" : 758086
}
ich nie _id_
verwenden, wie ich es nicht speichern, ist es OK, um sie zu entfernen? Indexgröße ist 125084624, was bedeutet, dass ich fast alle meine Fotos im RAM haben sollte, was ein bisschen seltsam ist?
Weitere Fragen:
Statistik: mongostats ist die Grundlagen, gibt es ein weiteres gutes Werkzeug für die Überwachung, oder muss ich mein eigenes Werkzeug erstellen?
Fehler: Ich konnte eine Menge sehen (ungefähr 100 pro Sekunde), wenn ich viele Einfügungen mache, ich habe nichts auf der Konsole ... wo soll ich nachforschen?
Connecion Pool mit JAVA/Tomcat: Ich benutze eine einfache Tomcat Webapp Verbindung zu MongoDB, würden Sie eine neue Verbindung zu mongoDB für jede Anfrage öffnen (ich denke nicht) oder eine Referenz als Singleton behalten auf dem Mongo-Objekt (mit Holder zum Beispiel) oder mit einem guten Pool, aber ich habe keinen Standard gefunden?
Vielen Dank!
Perfekter Dank! PS: Ich dachte, die Größen wären schon in KB, wenn es in B ginge, also kann es erklären, warum ich es für enorm hielt. –