PHP 数据库读写分离的经典例子
本节主要内容:
php实现mysql数据库的读写分离。
实现代码:
假设:
127.0.0.1:3306 为读的数据库
127.0.0.2:3306 为写的数据库
例子:
/**
* mysql读写分离
* edit: www.jbxue.com
*/
class db
{
public function __construct($sql)
{
$chestr = strtolower(trim($sql));
//判断sql语句有select关键字的话,就连接读的数据库,否则就连接写数据库
if(substr($chestr,0,6)=='select')
{
echo 'I am using select db..<br>';
$link = mysql_connect("127.0.0.1:3306", "root", "") or die("Could not connect: " . mysql_error());
mysql_select_db("test");
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
printf("%s %s", $row[0],$row[1]);
}
echo mysql_get_host_info($link).mysql_get_server_info($link).mysql_get_proto_info($link).mysql_get_client_info().'<br>';
}
else
{
echo 'I am using insert db..<br>';
$link = mysql_connect("127.0.0.2:3306","root","") or die("Could not connect: " . mysql_error());
mysql_select_db("test");
$result = mysql_query($sql);
echo @mysql_affected_rows($result);
echo mysql_get_host_info($link).mysql_get_server_info($link).mysql_get_proto_info($link).mysql_get_client_info().'<br>';
}
}
}
$d = new db(" update `users` set `select`='fasdf' where `id` =1");
$d2 = new db(" SELECT * from `users`");
附,数据库读写分享的相关解释。
数据库的读写分离,可以有效降低降低数据库的压力。
一个主数据库,多个从数据库的架构,实现读写分离,是经常用到的方案。
主数据库提供写操作,从数据库提供读操作。
其实分散数据库的压力,并不一定要读写分离,但是读写分离还是有自身的诸多好处的。
比如:
1、有利于数据库的负载均衡实现。
2、有利于实现主从数据库热备份。如果不分离,那么就要考虑做双向热备份策略了。
这个的配置比较复杂,并且出问题后也比较麻烦。
3、有利于保持数据库的高可用性,特别是在数据库集群的环境。
4、最后,实现读写分离后,对mysql的查询速度以及稳定性会更有信心。
您可能感兴趣的文章:
PHP 数据库读写分离的经典例子
php实现Mysql读写分离的代码举例
phpexcel导入excel到数据库的代码
Yii实现MySQL多库和读写分离的例子
go list指针_2020 年字节跳动 Go 面试总结
PHP导入与导出Excel文件的方法
Nysql中InnoDB隔离模式对数据库性能有何影响
NoSQL数据库之MongoDB入门详解
在PHP中使用灵巧的体系结构
我的redis学习笔记