Hey everyone! I'm diving into my first deployment of an MVC Core web app after upgrading from an old ASPX version. The site is designed for creating and taking mock exams, but I've run into a major issue: we're dealing with over 80,000 small PNG images which are really slowing down performance. I was thinking about uploading all of these images to blobs in my SQL database, but I recently learned about Azure Blob Storage and I'm curious how it works. What's the best way to handle all these small images that need to be loaded for each online mock exam? I'd appreciate any suggestions or solutions! Thanks!
2 Answers
You might want to reconsider the design of your app first. Storing exam questions as images isn't the best approach. It would be better to store them as text in a database. You can use Azure Blob Storage for images, which is optimized for that purpose, but serving images will always be slower and more expensive than just pulling text from a database. Plus, you could even use images only when absolutely necessary for certain questions.
Definitely look into using Azure Blob Storage for your images. You can store the metadata in your SQL database, which allows for easy retrieval. To speed things up, consider bundling questions into single files or implementing multi-threaded downloads. This way, you can load several images at once instead of one by one, which should improve the user experience significantly.
I totally get it! The original ASPX project did this to deter students from copying, but I see your point. Some questions actually require diagrams or charts, so they must stay as images. I want to explore how Azure can help in these cases.