sql >> Databasteknik >  >> RDS >> Mysql

Att lagra bildfiler i Mongo-databasen, är det en bra idé?

Problemet är inte så mycket att databasen blir stor, databaser klarar det (även om MongoDB inte är lika bra som många andra i det avseendet). Problemet är att för att skicka data till klienten måste den först flyttas till RAM-minnet av databasen, sedan kopieras till programmets minne och sedan lämnas till kärnan för att skickas genom sockeln. Det slösar mycket RAM- och CPU-cykler. Anledningen till att det är bättre att ha stora filer i filsystemet är att det är lättare att komma runt att kopiera det, du kan be kärnan att streama filen från disk till socket direkt.

Nackdelen med att lagra stora filer i filsystemet är att det är mycket svårare att distribuera. Att använda en databas och något som Mongos GridFS gör det möjligt att skala ut. Du måste bara se till att du inte kopierar hela filen till programmets minne på en gång, utan en bit i taget. De flesta ramverk för webbappar har visst stöd för att skicka bitar av HTTP-svar nuförtiden.



  1. 5 misstag i databasdesign att undvika

  2. Prestandaöverraskningar och antaganden:STRING_SPLIT()

  3. Rank funktion i MySQL

  4. CONNECT BY eller hierarkiska frågor i andra RDBMS än Oracle