The WordPress Performance Team contributors have joined a new experimental SQLite integration module which is on its way to being included in the upcoming 1.8.0 version of the plugin Performance Lab. (This is the plugin that contains a collection of feature plugins with performance-related modules that the team hopes to push into WordPress core.) The new module allows the adventurous to test out the new SQLite implementation, with the awareness that the overall user experience will continue to be rough.
SQLite is a database engine. It is software that allows users to interact with a relational database. In SQLite, a database is stored in a single file, a feature that sets it apart from other database engines. This fact allows for great accessibility: copying a database is no more complicated than copying the file that stores the data, sharing a database can mean sending an email attachment.
In a proposal entitled Let's make WordPress officially support SQLite Yoast-sponsored lead contributor Ari Stathopoulos argues that less complex sites (small to medium-sized sites and blogs) don't necessarily benefit from the requirement to use the standard WordPress MySQL database:
At the lower end of the WordPress user park, there are small, simple sites. These are numerous and consist of all blogs, company pages and sites that do not have thousands of users or thousands of posts, etc. These websites don't always need the intricacies of a MySQL/MariaDB database. The requirement for a dedicated MySQL server increases hosting costs and installation complexity. On low-end servers, it also reduces performance as the same "box" has to cater for both a PHP server and a MySQL/MariaDB server.
In an ideal world, users could select the database type during installation. Stathopoulos said this would require WordPress to have a database abstraction layer, which other platforms like Drupal have had for more than 10 years.
Building a database abstraction layer for WordPress would be a colossal task, although it may be one that, at some point in the future, we may need to undertake to ensure continued evolution and longevity of the project
he has declared.
Alternatively, Stathopoulos sees SQLite as a "perfect fit" and cited the benefits of using it for smaller websites:
- It is the most used database in the world
- It is cross-platform and can be run on any device
- It is included by default in all PHP installations (unless explicitly disabled)
- The minimum WordPress requirements would be a simple PHP server, without the need for a separate database server.
- SQLite support helps reduce hosting costs, reduces power consumption, and lowers performance costs on low-end servers.
This new SQLite integration module is based on the plugin wp-db-sqlite , a SQLite database driver drop-in also used by the WordPress Sandbox project, as WASM does not support MySQL. The wp-db-sqlite plugin was based on the original work of Kojima Toshiyasu in his SQLite Integration plugin from eight years ago , which is no longer available for download on WordPress.org. Stathopoulos said these solutions have evolved over the years, have been thoroughly tested and proven to work flawlessly, although they are not well known among users.
Matt Mullenweg said in support of the proposition, so the implementation moving into the Performance Lab plugin might have a good chance of landing in core someday in the future. Most of the participants in the proposal discussion supported the idea, but also discussed some of the potential drawbacks. These include poorer support for things like multi-author editing and searching.
MySQL is and should continue to be the default because if you have aspirations to be the next big thing, then MySQL can scale better. If on the other hand you just want a blog, a company site with your about page and a contact form to have an online presence, or any kind of small site (which is probably most sites on WordPress) then SQLite is all you need. you need will ever need and will work much better.
Stathopoulos said.
Some participants in the discussion also chafed at the controversy ethical code religious that SQLite holds for its contributors. Stathopoulos sees this as a non-issue because the project is open source and the technology is widely used.
"Its popularity speaks volumes about what it can do and where it can be used“he said in response to criticism of the idea of tying WordPress to a project with a questionable code of ethics.
If you've been using WordPress since the early days, you've seen it get more complicated over the years. The discussions on the idea of a ” WordPress Lite have popped up every few years, but the specific selection of platform features seems to have been a big factor in WordPress which powers 43% of the web (according to W3Techs ). NerdPress founder Andrew Wilder has suggested that a SQLite implementation could benefit from being branded as “WordPress Lite".
Reading the comments and potential issues above, if this were to go forward, perhaps the way to implement this in a way that makes sense to users would be to simultaneously brand it as 'WordPress Lite' So if a site uses SQLite, there may be features that they're just not available anymore (like multiple authors or maybe plugins that have certain database requirements can't be installed).
Wilder said.
Those interested in testing the new SQLite integration module should be able to test it next week. Felix Arntz, contributor to the Google-sponsored Performance Team, provided some testing notes during yesterday's team meeting:
For the implementation of SQLite, in addition to the correct functioning of the SQLite DB alone, another crucial aspect to test is the user experience on activating the module. You'll get a completely new database, but we've added logic to make the transition as easy as possible: in a typical WordPress setup, you shouldn't need to reinstall WordPress yourself when you enable the module, and you also shouldn't need to log in again.
Basically the PR has the logic to install WordPress automatically into the new database, using the same basic configuration data that is in the regular database.
Note that this is not a migration at all. It's just the install you'll get; no content will be migrated.
Version 1.8.0 of the Performance Lab plug-in is expected on Monday, December 19 and will include the new module.