-
- /**
- * mysql读写分离
- * edit: bbs.it-home.org
- */
- class db
- {
- public function __construct($sql)
- {
- $chestr = strtolower(trim($sql));
- //判断sql语句有select关键字的话,就连接读的数据库,否则就连接写数据库
- if(substr($chestr,0,6)=='select')
- {
- echo 'I am using select db..
';
- $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().'
';
- }
- else
- {
- echo 'I am using insert db..
';
- $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().'
';
- }
-
- }
- }
-
- $d = new db(" update `users` set `select`='fasdf' where `id` =1");
- $d2 = new db(" SELECT * from `users`");
复制代码
附,数据库读写分享的相关解释。
数据库的读写分离,可以有效降低降低数据库的压力。
一个主数据库,多个从数据库的架构,实现读写分离,是经常用到的方案。
主数据库提供写操作,从数据库提供读操作。
其实分散数据库的压力,并不一定要读写分离,但是读写分离还是有自身的诸多好处的。
比如:
1、有利于数据库的负载均衡实现。
2、有利于实现主从数据库热备份。如果不分离,那么就要考虑做双向热备份策略了。
这个的配置比较复杂,并且出问题后也比较麻烦。
3、有利于保持数据库的高可用性,特别是在数据库集群的环境。
4、最后,实现读写分离后,对mysql的查询速度以及稳定性会更有信心。
|