我有一个大型数据库,我想分成几个数据库但连接到我的WordPress网站。我通过互联网搜索并找到了使用WordPress Codex提供的HyperDB class的解决方案。我下载了文件,我尝试了如下
$wpdb->add_database(array(
'host' => 'localhost', // If port is other than 3306, use host:port.
'user' => 'root',
'password' => '',
'name' => 'partitioning',
));
/**
* This adds the same server again, only this time it is configured as a slave.
* The last three parameters are set to the defaults but are shown for clarity.
*/
$wpdb->add_database(array(
'host' => 'localhost', // If port is other than 3306, use host:port.
'user' => 'root',
'password' => '',
'name' => 'slave',
'write' => 0,
'read' => 1,
'dataset' => 'global',
'timeout' => 0.2,
));
我正在使用xampp作为开发版本。在WordPress站点安装之后,我将db-config.php与wp-config.php文件目录和db.php一起放在wp-content文件夹中。这样做我得到了空白页面。
任何人都可以逐步详细说明如何设置数据库和HyperDB脚本吗?我的意思是如何使slave数据库或HyperDB自动生成slave数据库?如何将任何表拆分为从数据库?我的意思是整个过程。
答案 0 :(得分:0)
如果您正在构建一个高容量的Wordpress站点,并且数据库是瓶颈(通常是这样),HyperDB绝对是正确的Wordpress解决方案。 HyperDB由Automattic编写,在Wordpress.com上使用,设计为适当的Wordpress插件。
HyperDB支持MySQL读取副本和分区,您使用它取决于您的用例。
这些配置选项实际上在HyperDB配置文件中有相当详细的记录,如下所示: https://plugins.trac.wordpress.org/browser/hyperdb/trunk/db-config.php
这不适用于您的情况;你必须调整它以适应你的设置。
R1=Radiobutton(root,text="Sort Student Numbers",value=1, command = sorted_numbers(1))
首先,要测试这是否适用于您现有的数据库,您应该将// This is the default database configuration
//
$wpdb->add_database(array(
'host' => 'localhost',
'user' => 'root',
'password' => '',
'name' => 'regular_db',
));
// This is your secondary database.
//
$wpdb->add_database(array(
'host' => 'localhost',
'user' => 'root',
'password' => '',
'name' => 'product_db',
'dataset' => 'products',
));
// This magic detects which database table is being read from/written to, and switches
// hyperdb connection based on that.
$wpdb->add_callback('my_db_product_detector');
function my_db_product_detector($query, $wpdb) {
// This makes the assumption that you've only got one relevant table, wp_products.
// Update this to whatever your table name(s) are.
if ( preg_match('^wp_products$', $wpdb->table) ) {
return 'products';
}
}
更改为product_db
,然后从那里开始。
此时,您需要做出架构决策。如果您只是想减小数据库的大小,那么现在将您的产品写入第二个数据库。或者,您可能完全拥有第二个数据库服务器以共享不同数据库之间的负载。
创建只读副本也值得考虑,但这取决于您正在使用的生态系统。如果您正在使用AWS,那么RDS将非常简单地创建只读副本。