sql >> Database >  >> RDS >> Mysql

Afbeeldingsbestanden opslaan in de Mongo-database, is dat een goed idee?

Het probleem is niet zozeer dat de database groot wordt, databases kunnen dat aan (hoewel MongoDB in dat opzicht niet zo goed is als veel andere). Het probleem is dat om de gegevens naar de client te verzenden, deze eerst door de database naar het RAM moeten worden verplaatst, vervolgens naar het geheugen van de toepassing moeten worden gekopieerd en vervolgens aan de kernel moeten worden overgedragen om via de socket te worden verzonden. Het verspilt veel RAM- en CPU-cycli. De reden dat het beter is om grote bestanden in het bestandssysteem te hebben, is dat het gemakkelijker is om het te kopiëren. Je kunt de kernel vragen om het bestand rechtstreeks van schijf naar de socket te streamen.

Het nadeel van het opslaan van grote bestanden in het bestandssysteem is dat het veel moeilijker te distribueren is. Het gebruik van een database en zoiets als Mongo's GridFS maakt het mogelijk om uit te schalen. Je moet er alleen voor zorgen dat je niet het hele bestand in één keer naar het geheugen van de applicatie kopieert, maar stuk voor stuk. De meeste webapp-frameworks hebben tegenwoordig enige ondersteuning voor het verzenden van gesegmenteerde HTTP-reacties.



  1. De top 5 functies die uw SQL Server Database Performance Monitoring Platform moet bieden

  2. Lijst met MySQL-specificaties voor datumnotatie

  3. PostgreSQL-index op JSON

  4. Taak voor mysqld.service mislukt Zie systemctl-status mysqld.service