For one of our customers, the Vaillant Group (a leading European heating device manufacturer), we built a spare parts shop application for the web, including OCR recognition of exploded drawings. The web application is based on PHP/MySQL and has an imported catalogue of the SAP. Furthermore, the installers receive a CD with the shop application on it where a former MS Access application was displaced with ours. For this CD installation we chose to use SQLite as the underlying database, Microweb as the Webserver/PHP part and InstallAnywhere as the installer which makes it possible to install the shop on harddisk. The application will run directly from CD or can be installed from harddisk. We are currently extending the web application in a way that a country manager can control the whole CD generation process (import the country SAP dump, packaging the Webshop with Microweb, MySQL2SQLite, creating the installer, …) automagically.
The software was rolled out for the German market – 80,000 installations. We expect to roll out the other countries in the next months. I wouldn’t wonder if we will get through the 500,000 installations.
There were several reasons why we chose SQLite:
- Speed. SQLite has proven to be faster than MySQL in this 1-concurrent-user-from-CD scenario because of the lower startup time (PHP is the database server)
- Flexibility. With an additional PHPLIB SQLite database driver (yes, we choose PHPLIB because our framework uses it and we want to have a fast abstraction layer with small footprints) and some define(‚CDSHOP‘,true); constant the application from the web runs 1:1 on the CD.
- Pricing issues. MySQL wanted too much money for this.
My conclusion: if you want to run small applications or (as in our case with more than 300,000 records in the DB) applications that are made for single user environments (like CD applications), SQLite could be the database of your choice.