Using a Database
By default, all images, compiled CSS files, and compiled JavaScript files of the Magento instance are stored in the file system on the web server. You can choose to store these files in a database on a database server. One advantage of this approach is the option of automatic synchronization and reverse synchronization between the web server file system and the database. You can use the default database to store media or create a new one. To be able to use a newly created database as media storage, you must add information about it and its access credentials to the env.php
file.
Database workflow
-
Browser requests media - A page from the store opens in the customer’s browser, and the browser requests the media that is specified in the HTML.
-
System looks for media in file system - The system searches for the media in the file system and if found, passes it to the browser.
-
System locates media in database - If the media is not found in the file system, a request for the media is sent to the database that is specified in the configuration.
-
System locates media in database - A PHP script transfers the files from the database to the file system, and sent to the customer’s browser. The browser request for media triggers the script to run as follows:
- If web server rewrites are enabled for Magento and supported by the server, the PHP script runs only when the requested media is not found in the file system.
- If web server rewrites are disabled for Magento, or not supported by the server, the PHP script runs anyway, even if the required media is available in the file system.
Use a database for media storage
-
On the Admin sidebar, go to Stores > Settings > Configuration.
-
In the left panel, expand Advanced and choose System.
-
In the upper-left corner, set Store View to
Default Config
to apply the configuration at the global level. -
Expand the Storage Configuration for Media section and do the following:
Storage Configuration for Media (Database)
-
Set Media Storage to
Database
. -
Set Select Media Database to the database you want to use.
-
Click Synchronize to transfer the existing media to the newly selected database.
-
Enter the Environment Update Time in seconds.
-
-
When complete, click Save Config.