之前 WordPress 在官方的 Performance Lab 插件实现 SQLite 模块,现在重构 SQLite 的实现,并且将其发布成一个独立的插件:SQLite Database Integration。
最初的功能模块实现是基于 @aaemnnosttv 的 wp-sqlite-db 插件修改实现,但是经过6个月的测试,碰到一些比较棘手的问题,并且很有很多的限制,于是 WordPress 性能团队决定重写。
新插件使用 SQL Lexer(词法分析器)重写,现在的版本已经比较稳定,并且能够正确处理所有 WordPress SQL 查询,特别值得提一下的是,SQL Lexer 是 PHPMyAdmin/SQL-Parser项目(的一部分,它适用于 WordPress,它高效地实现了 MySQL 到 SQLite 的翻译引擎,并改进了安全性和兼容性。
现在已经独立发布成一个插件,下一步经过社区的测试之后,将集成到 WordPress 核心中,而不是使用插件。
SQLite 功能如果测试完全之后将集成到 WordPress 核心代码中,为什么要集成到核心呢?使用哪种数据库一般来说应该是首次安装站点去选择,而不是安装好之后再去调整,安装好之后调整就需要将数据从一个数据库迁移到另一个数据库,这通常很复杂。
因此最好 WordPress 在核心代码中就支持 SQLite,和 MySQL 并存,让用户选择,如果用户要两种数据库之间的数据迁移,则可以通过插件来实现,但是数据库引擎本身应该属于 Core。
怎么集成到核心呢?
集成到核心一般来说有两种方法,最简单的是在 WordPress 安装期间为用户提供一个选项,让用户自己就可以选择使用 MySQL 还是 SQLite 数据库。这样如果用户选择 SQLite 作为 WordPress 的数据库,就不需要创建一个 MySQL 数据库,更不需要购买独立的数据库服务器了。
如果在安装界面中没有提供数据库类型选项,另外一种发就是让用户手动添加在 wp-config.php
文件中代码:define( 'DB_ENGINE', 'sqlite' );
具体集成到内核中之后通过界面选项,还是代码,我们还是静候佳音吧,目前如果希望使用 SQLite 数据库的同学,就可以开始先直接使用插件 SQLite Database Integration 进行测试。