让WordPress正式支持SQLite

WordPress可以(并且现在)用于任何类型的网站,无论大小或复杂程度如何。一些常见的使用卡包括:

  • 单页登陆点
  • 只有几个页面的简单公司网站。这些站点通常很少更新,本质上是具有管理功能的静态站点。
  • 简单的单用户博客
  • 复杂的新闻网站
  • 电子商务网站
  • 全面的CMS解决方案

WordPress的成功部分是因为它是可扩展的、可挂钩的,并且可以使用和调整来完成几乎所有的网络任务。

然而,WordPress的一个方面从未改变,无论WP的用例和受欢迎程度如何增加:数据库。WordPress需要MySQL数据库MySQL数据库 MySQL是一个关系数据库管理系统。数据库是存储内容、配置和其他选项的结构化数据集合。https://www.mysql.com/./MariaDB将安装在现场。可以说,MySQL仅在某些场景中是最佳的:“中间层”的站点类型范围。

大型网站通常根据其特定需求实现自定义数据库堆栈,因此超出了本提案的范围。

在光谱的低端,有一些小而简单的站点。这些网站数量众多,包括所有博客、公司页面和没有数千用户或数千帖子的网站等。这些网站并不总是需要MySQL/MariaDB数据库的复杂性。对专用MySQL服务器的需求增加了它们的托管成本和安装复杂性。在低端服务器上,它还降低了性能,因为相同的“盒子”需要同时满足PHP程序PHP程序 WordPress主要使用的web脚本语言。WordPress需要PHP 5.6.20或更高版本以及MySQL/MariaDB服务器。

理想的场景

理想情况下,WordPress允许我们在安装期间选择数据库类型。这可以通过使用安装指南或wp-config.php中的简单常量来完成。为了实现这一点,WordPress需要有一个数据库抽象层。在CMS领域,这不是一个创新或激进的想法;Drupal拥有坚实的数据库抽象层已有十多年了。Laravel、Symfony和其他人还包括允许使用多种数据库类型的ORM。

为WordPress构建一个数据库抽象层将是一项艰巨的任务,尽管在未来的某个时候,我们可能必须承担这项任务,以确保项目的持续发展和寿命。

中间地带

作为中间点,我们可以为底层实现一个解决方案:中小型网站和博客。这些网站不一定需要一个成熟的MySQL数据库。

SQLite似乎非常适合:

  • 它是全球使用最广泛的数据库
  • 它是跨平台的,可以在任何设备上运行
  • 默认情况下,它包含在所有PHP安装中(除非明确禁用)
  • WordPress的最低要求是一个简单的PHP服务器,而不需要单独的数据库服务器。 
  • SQLite支持降低了主机成本,降低了能耗,并降低了低端服务器的性能成本。

在WordPress中实现SQLite核心核心 Core是运行WordPress所需的一组软件。核心开发团队构建WordPress。

目前,在WordPress中使用SQLite很简单;有一些实施已经存在并发展了8年多。它们经过了彻底的测试,证明可以无缝工作。这些实现是插入式的wp-content/db-php用户可以添加到其安装中的文件;它们不难使用。 

然而,大多数人并没有意识到这一点。他们没有意识到他们可以选择购买更便宜的托管sans-mysql,然后使用SQLite数据库安装WordPress。他们也不必知道……毕竟,他们只需要一个简单的公司网站或博客博客 (与网络、站点相比)

WordPress可以通过在Core中包含一个现有的SQLite实现来正式支持SQLite。我们需要确保它得到适当的测试和支持,此外,还需要提高认识并向用户公开选项。

为什么这应该在Core中,而不是插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以扩展功能或为WordPress网站添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是来自第三方的基于成本的插件? 

选择数据库类型应该在首次安装站点时发生。这不是事后应该做的事情,因为这需要将数据从一个数据库迁移到另一个数据库,这通常会很复杂。 

WordPress在Core中包含了MySQL实现,因此如果我们支持SQLite,那么该实现应该与之共存

数据迁移迁移 将网站的代码、数据库和媒体文件从一台服务器移动到另一台服务器。通常在更换托管公司时进行。可以(并且应该)在一个插件中,以方便现有站点的迁移,如果他们希望这样做,但数据库引擎本身属于Core。 

这将确保实现得到适当的支持、适当的测试,WordPress将能够从中受益,详见下一节。

SQLite的好处是什么?

在WordPress中正式支持SQLite可能会有很多好处。一些值得注意的问题包括:

  • 提高了低端服务器和环境的性能。
  • WordPress在因系统要求而无法进入的市场中的增长潜力。
  • 使用安装“场景”的托管市场增长潜力。
  • 降低能耗–提高WordPress项目的可持续性。
  • 进一步推动WordPress为每个人“实现出版民主化”的使命。
  • 更容易为WordPress做出贡献——下载文件并运行内置的PHP服务器,无需任何其他设置。
  • 更易于使用自动化测试套件。
  • 站点可以是“可移植的”和自包含的。

接下来的步骤

接下来的步骤需要在本提案的评论部分进行讨论。如果大家一致同意在WordPress Core中实现SQLite,那么接下来的步骤大致如下:

  • 创建必要的Trac公司Trac公司 Edgewall Software的一个开源项目,用作WordPress的错误跟踪和项目管理工具。门票
  • 决定如何定义数据库类型。最简单的场景是数据库_类型常量inwp-config.php允许用户选择他们的新站点是否使用MySQL或SQLite数据库,但在稍后的讨论中可能会提出其他解决方案。
  • 将SQLite实现移植到WordPress Core,应用必要的更改,如编码标准、代码内文档、迁移测试等。
  • 用SQLite测试WordPress核心功能
  • 外联插件开发人员进行测试。

2022年WCEU期间,在走廊以非官方身份详细讨论了数据库抽象和使用SQLite的主题。这篇帖子是这些对话的精华,将讨论带到更广泛的社区进行认真考虑。

道具@齐拉达姆@马马杜卡@乔诺埃尔德斯杨@推特新闻@谢尔盖·比尤科夫@约斯特德瓦尔克@丁戈德@脱沥青@克里许@威廉巴顿@成本开发@亚当西尔弗斯坦@贾维尔卡萨雷斯@罗宾开发者@美国国家电视台@杰西贝尔审查并对本提案作出贡献。

#数据库#安装#性能#持续性