Why Your Store Needs a Database Server
Recently ShopSite released its Enterprise version that works with MySQL and MariaDB database servers. I’d like to address what type of eCommerce sites would benefit from this product. The short answers are stores that:
- Need more performance
- Have developers with MySQL expertise
- Need Database Server reliability
- Need additional features
Let’s examine each of these reasons.
Need More Performance
ShopSite’s internal database is SQLite. This is a well maintained open-source database that is automatically installed with ShopSite. You do not need a database administrator to separately manage SQLite, it is just part of ShopSite. Every time a shopper searches for a product or logs in to your store or adds a product to the shopping cart, the database file gets opened, read into memory, indexes get loaded, then the appropriate data is read or the database gets updated (if, for example, data is added or changed) and then the file is written out to disk and closed. For most shopper actions the database is being used to read product, shipping, tax info, etc. and the performance is fast. However, as more records are created and the database file grows, opening, reading, (and less often) updating and writing the file out takes a little longer. On a very busy site with a large database, this can begin to affect performance.
A database server like MySQL, on the other hand, is not constantly opening and reading a file into memory because the database server is always loaded and running after its initial startup. Yes, it does need to write out data when products and orders are added but it is much more efficient at doing this, only affecting a narrow section of the database files with each write instead of the whole file with SQLite. Once loaded, the database server will be faster than SQLite.
Developers with MySQL expertise
While ShopSite has a number of APIs that programmers can use to interface with it such as Shipping, Tax, Inventory, and Order APIs, sometimes they want to get at stored data that is not available from an API. Structured Query Language (SQL) is the standard for requesting data from a database and MySQL (and MariaDB) is the standard database server that most large web sites use. Therefore there are a lot of programmers that you can hire that know how to code for MySQL.
Need Database Server Reliability
SQLite does its job quite well, however, it can’t match all the additional management tools and features developed for database servers such as replication, incremental backups, and full backups. In addition, MySQL is designed to have multiple programs accessing the database at the same time and doing updates without missing a beat. In rare instances, we have seen issues where non-ShopSite programs trying to access the SQLite database directly, have caused problems because of locking issues. This can happen when a custom program is using an earlier SQLite library while ShopSite is using a newer library. With a database server, there are no old or new library issues since the locking is not in the library but handled directly by the database server.
Need Additional Features
With a high-end system, ShopSite can add additional features. Initially, ShopSite Enterprise has added support for the Linux cron system so that features such as Subscriptions, Order Import, and emails for Abandoned Cart, Product Reviews, and one-time Coupons can occur in the background instead of the merchant needing to be active in the store. For example, the cron process can fire off every hour and check if an Abandoned Cart email needs to be sent and if so, send it. Previously it would only be sent once a day.
If any of the above reasons fit your situation then you should check out ShopSite Enterprise. The same functionality that you have in ShopSite Pro is there plus all the benefits and additional features mentioned above.