MySQL读写分离是一种数据库架构优化策略,旨在提高数据库的并发处理能力和性能。其核心思想是将数据库的读操作和写操作分别分配到不同的服务器上。通常,主数据库(Master)负责处理写操作(如INSERT、UPDATE、DELETE),而从数据库(Slave)负责处理读操作(如SELECT)。通过这种方式,可以有效地分担数据库的负载,提升系统的整体性能。
以下是一个简单的基于MySQL主从复制的读写分离示例:
<?php
// 数据库连接配置
$masterConfig = [
'host' => 'master_host',
'user' => 'master_user',
'password' => 'master_password',
'database' => 'master_db',
];
$slaveConfig = [
'host' => 'slave_host',
'user' => 'slave_user',
'password' => 'slave_password',
'database' => 'slave_db',
];
// 写操作(连接主数据库)
$masterConn = new mysqli($masterConfig['host'], $masterConfig['user'], $masterConfig['password'], $masterConfig['database']);
if ($masterConn->connect_error) {
die("主数据库连接失败: " . $masterConn->connect_error);
}
// 写入数据
$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')";
$masterConn->query($sql);
// 读操作(连接从数据库)
$slaveConn = new mysqli($slaveConfig['host'], $slaveConfig['user'], $slaveConfig['password'], $slaveConfig['database']);
if ($slaveConn->connect_error) {
die("从数据库连接失败: " . $slaveConn->connect_error);
}
// 读取数据
$sql = "SELECT * FROM users";
$result = $slaveConn->query($sql);
while ($row = $result->fetch_assoc()) {
echo $row['name'] . ' - ' . $row['email'] . '<br>';
}
// 关闭连接
$masterConn->close();
$slaveConn->close();
?>
请注意,以上示例代码仅供参考,实际应用中需要根据具体需求进行调整和优化。同时,建议使用成熟的读写分离中间件来简化开发和维护工作。
领取专属 10元无门槛券
手把手带您无忧上云