MySQL是由Oracle开发和支持的开源SQL关系数据库管理系统。
这是对“什么是MySQL”问题的简短的一句话回答,但让我们将其分解为更人性化的术语。
数据库只是为便于使用和检索而组织的结构化数据集合。对于WordPress站点,“数据”是指博客文章的文本、站点上所有注册用户的信息、自动加载的数据、重要的设置配置等。
MySQL只是一个可以为您存储和管理该数据的流行系统,它是WordPress站点特别流行的数据库解决方案。
建议阅读:如何修复MySQL Server Has Gone Away错误以及如何修复MySQL 1064错误。
现在让我们更深入地了解这个问题。
什么是MySQL?
MySQL最初是在1995年推出的。从那时起,它经历了所有权/管理权的几次变化,直到2010年在Oracle Corporation结束。虽然现在由Oracle负责,但MySQL仍然是开源软件,这意味着您可以自由使用和修改它。
MySQL Logo(图片来源:MySQL/Oracle)
这个名字来自于将“My”(联合创始人的女儿的名字)与SQL(结构化查询语言的缩写)放在一起,SQL是一种编程语言,可帮助您访问和管理关系数据库中的数据。
为了理解MySQL的工作原理,了解两个相互关联的概念很重要:
关系数据库
在将数据存储在数据库中时,您可以使用不同的方法。
MySQL选择了一种称为关系数据库的方法。
使用关系数据库,您的数据会被分成多个单独的存储区域(称为表),而不是将所有内容放在一个大存储单元中。
例如,假设您要存储两种类型的信息:
- 客户– 他们的姓名、地址、详细信息等。
- 订单——比如购买了哪些产品、价格、下单者等。
如果您试图将所有数据集中到一个大锅中,则会遇到一些问题,例如:
- 不同的数据——您需要为订单收集的数据与为客户收集的数据不同。
- 重复数据——每个客户都有一个名字,每个订单也有一个客户的名字。处理重复数据变得混乱。
- 无组织——您如何可靠地将订单信息与客户信息联系起来?
为了解决这些问题,关系数据库将使用一个单独的表用于客户,而另一个单独的表用于订单。
但是,您可能还希望能够说“向我展示 John Doe 的所有订单”。这就是关系部分的用武之地。
使用称为“键”的东西,您可以将这两个表中的数据链接在一起,以便您可以根据需要操作和组合不同表中的数据。请务必注意,密钥不是客户的姓名。相反,您会使用100%独特的东西,例如数字ID号。
如果您曾经查看过 WordPress 站点的数据库,您会发现它使用了这种关系模型,将您的所有数据划分到单独的表中。
默认情况下,WordPress使用12个单独的表,但许多WordPress插件也会添加自己的表。例如,下面WordPress站点的数据库有44个单独的表!
MySQL中不同表的示例
为了完成这个关系概念,让我们让它特定于WordPress ……
WordPress在wp_posts表中存储博客文章,在wp_users表中存储用户。但是,因为这两个表通过一个键连接,所以您可以将每个用户帐户与每个用户撰写的所有博客文章相关联。
下面是它在数据库中的样子。
每个帖子都分配了一个post_author,这是一个唯一的标识号(这是关键):
wp_posts表
然后,如果你想看到哪个用户帐户对应于这个数字,你可以看看ID在wp_users表:
wp_users表
关键——ID——是将一切联系在一起的东西。尽管将数据存储在单独的表中,但这就是它们彼此“相关”的方式。
客户端-服务器模型
除了作为关系数据库系统之外,MySQL 还使用了一种称为客户端-服务器模型的东西。
该服务器的部分是你的数据实际驻留。但是,为了访问这些数据,您需要请求它。这就是客户进来的地方。
使用 SQL——我们之前提到的编程语言——客户端向数据库服务器发送客户端需要的数据的请求。
例如,如果有人访问您网站上的博客文章,您的 WordPress 网站将向数据库服务器发送多个 SQL 请求,以获取将博客文章传送到该访问者的 Web 浏览器所需的所有信息。它会:
- 查询wp_posts表以获取博客文章的内容
- 查询wp_users表以获取作者框的信息(使用我们上面显示的键)
- 等等。
如果您想确切地查看WordPress站点发出的数据库请求类型,您可以使用一个名为Query Monitor的免费插件来查看WordPress站点(客户端)和数据库服务器之间的确切交互:
Query Monitor插件显示发送到MySQL服务器的单个SQL查询
您可以使用的另一个高级解决方案是New Relic。我们的工程师经常使用此工具来解决WordPress站点上可能由于MySQL查询速度慢而导致的性能问题。
如果您的WordPress站点无法访问数据库服务器,则会触发建立数据库连接消息的常见错误。
使用MariaDB,而不是MySQL:有什么区别?
部分主机使用名为MariaDB的数据库系统,而不是MySQL。但是,您在MySQL中看到的所有相同特征也适MariaDB。
实际上,MariaDB实际上是MySQL的一个分支,MariaDB的首席开发人员是MySQL的原始创始人之一。“分支”只是意味着MariaDB开发人员将原始的开源MySQL代码作为他们的基础,然后在此基础上创建MariaDB。
因此,虽然名称不同,但MariaDB与MySQL紧密相连,并提供完整的“插入式”替换功能(也就是说,您可以从MySQL无缝切换到MariaDB,而无需采取任何特殊预防措施)。
然而,虽然MariaDB确实提供了与MySQL的互操作性,但它还在某些方面提供了改进的性能,这符合我们使用性能最佳的架构来支持您的WordPress网站的理念。
小结
MySQL是一个开源的关系数据库管理系统。对于WordPress网站,这意味着它可以帮助您存储所有博客文章、用户、插件信息等。
它将该信息存储在单独的“表”中并将其与“键”连接,这就是它是关系的原因。
当您的WordPress站点需要访问该信息时,它会使用SQL(这是客户端-服务器模型)向MySQL数据库服务器发送请求。
MariaDB是MySQL的联合创始人之一设计开发的MySQL的一个分支,并提供直接替换互操作性以及一些性能改进。因此,本文中的所有核心概念也适用于MariaDB。
评论留言