Linux 软件免费装
Banner图

HyperDB

开发者 matt
andy
ryan
mdawaffe
vnsavage
barry
westi
automattic
wpcomvip
更新时间 2024年7月23日 21:01
PHP版本: 4.2 及以上
WordPress版本: 6.0.2
版权: GPLv2 or later

标签

performance availability WordPress.com mysql scaling

下载

1.9 1.6 1.8 0.1 1.0 1.1 1.2 1.5 1.3 1.4 1.7

详情介绍:

HyperDB is a very advanced database class that replaces a few of the WordPress built-in database functions. The main differences are: 它基于 WordPress.com 目前在生产过程中使用的代码,WordPress.com 有许多 MySQL 服务器,跨越多个数据中心。

安装:

插件目录中没有任何内容。
  1. Enter a configuration in db-config.php.
  2. Deploy db-config.php in the directory that holds wp-config.php. This may be the WordPress root or one level above. It may also be anywhere else the web server can see it; in this case, define DB_CONFIG_FILE in wp-config.php.
  3. Deploy db.php to the /wp-content/ directory. Simply placing this file activates it. To deactivate it, move it from that location or move the config file.
Any value of WP_USE_MULTIPLE_DB will be ignored by HyperDB.

常见问题:

我能用 HyperDB 做哪些 WPDB 做不了的事情?

WordPress.com 是最复杂的 HyperDB 安装程序,管理着跨越数千个数据库的数百万个表。动态配置逻辑允许 HyperDB 通过查询中央数据库来计算表的位置。自定义脚本通过迁移表并更新其在中央数据库中的位置,不断平衡数据库服务器资源。 发挥想象力。你可以使用持久缓存创建动态配置,收集有关网络状态的情报。唯一不变的是配置文件的名称。剩下的,就像人们常说的那样,就是 PHP 了。

HyperDB 如何支持复制?

HyperDB 不提供复制服务。这需要通过配置 MySQL 服务器来实现复制。然后,可以配置 HyperDB 以适当使用这些服务器,例如,通过连接主服务器来执行写查询。

HyperDB 如何支持负载平衡?

HyperDB 会从配置的优先级组中随机选择数据库连接。最有利的连接会被首先尝试。因此,你可以根据网络拓扑结构、硬件能力或你发明的任何其他方案来优化配置。

HyperDB 如何支持故障转移?

故障转移描述了 HyperDB 如何处理连接失败。当 HyperDB 无法连接到一个数据库时,它会尝试连接到拥有相同数据的另一个数据库。如果没有设置复制,HyperDB 会尝试重新连接几次,然后再放弃。

HyperDB 如何支持分区?

HyperDB 允许将表格放置在任意数据库中。它可以使用你编写的回调来为给定的查询计算合适的数据库。因此,你可以根据自己的方案对网站数据进行分区,并相应配置 HyperDB。

只使用一个数据库服务器的 HyperDB 有什么优势吗?

没有测量过。HyperDB 在放弃连接前至少会再试一次,因此在网络服务器暂时无法连接到数据库服务器的情况下可能会有所帮助。 HyperDB 与 WPDB 的一个不同之处是,在进行查询之前,HyperDB 不会尝试连接数据库。因此,尽管数据库无法访问,但具有足够强大的持久缓存功能的网站仍可保持只读访问。

如果数据集的所有数据库服务器都宕机了怎么办?

由于 HyperDB 仅在进行查询时才会尝试连接,因此 WordPress 不会因为数据库错误而关闭网站,而是让代码决定下一步如何处理不成功的查询。如果你想做一些不同的事情,比如设置一个自定义错误页面或杀死网站,你需要在你的 db-config.php 中定义 "db_connection_error "回调。

更新日志:

1.9 1.8 1.7 1.6 1.5 1.4 1.3 1.2 1.1 1.0