php数据库读写分离,thinkphp下MySQL数据库读写分离代码剖析?

用户投稿 55 0

关于“php_mysql_读写分离”的问题,小编就整理了【2】个相关介绍“php_mysql_读写分离”的解答:

thinkphp下MySQL数据库读写分离代码剖析?

当采用原生态的sql语句进行写入操作的时候,要用execute,读操作要用query。

MySQL数据主从同步还是要靠MySQL的机制来实现,所以这个时候MySQL主从同步的延迟问题是需要优化,延迟时间太长不仅影响业务,还影响用户体验。

thinkphp核心类Thinkphp/library/Model.class.php 中,query 方法

调用Thinkphp/library/Think/Db/Driver/Mysql.class.php

/**

* SQL查询

* @access public

* @param string $sql SQL

* @param mixed $parse 是否需要解析SQL

* @return mixed

*/

public function query($sql,$parse=false) {

if(!is_bool($parse) && !is_array($parse)) {

$parse = func_get_args();

array_shift($parse);

}

$sql = $this->parseSql($sql,$parse);

return $this->db->query($sql);

数据库的读写分离数据库是怎么同步的?

不同的数据,读写分离同步操作是不一样的,以mysql和oracle为例:

mysql

读写分离:最常用的主从复制实现读写分离的功能

当数据有修改,会通过网络将执行的内容传输到从库,追加到从库的重做日志(replay-bin),然后再通过重做日志还原主库的操作以达到同步的效果;

oracle

读写分离:常用的读写分离方案有DG(备库可读)

操作写入archivelog,再通过网络传输到备库,备库再用archivelog还原数据,已到达同步的目的。

到此,以上就是小编对于“php_mysql_读写分离”的问题就介绍到这了,希望介绍关于“php_mysql_读写分离”的【2】点解答对大家有用。

抱歉,评论功能暂时关闭!