图/文:迷神

Thinkphp是一款不错的国产框架,使用范围广,应用也比较多。随着网站访问增大往往需要使用mysql主从同步功能,本身Thinkphp自带了主从读写分离的功能了。

但是我们经常有一个场景就是某些特定的查询需要从主库进行查询,那应该怎么做呢,下面就分享Thinkphp3.2.3设置MySql主从读写分离后,如何方便的调用主库查询,让简单调用主库数据查询更简单。

基于版本:Thinkphp3.2.x,thinkphp3.x版本整体差不多。

修改步骤,主要是3个地方进行简单修改

1、ThinkPHP/Library/Think/Model.class.php 62行:

protected $methods          =   array('strict','order','alias','having','group','lock','distinct','auto','filter','validate','result','token','index','force','master');  //1、添加,’master’

2、ThinkPHP/Library/Think/Db/Driver.class.php 月935行:

query的时候把master参数传进去

/**     * 查找记录     * @access public     * @param array $options 表达式     * @return mixed*/    public function select($options=array()) {        $this->model  =   $options['model'];        $sql        =   $this->buildSelectSql($options);        $result     =   $this->query($sql,$this->parseBind(!empty($options['bind'])?$options['bind']:array()),$options['master']);  //2、添加   ,$options['master']        return $result;    }

3、ThinkPHP/Library/Think/Db/Driver.class.php 140行

public function query($str,$fetchSql=false,$master=flase) {    if(!empty($this->config['deploy']) && ($master || $this->transTimes > 0)){        $this->initConnect(true);    }else{        $this->initConnect(false);}

好了,这样就修改好了。修改好了之后,在TP系统中调用主库,就比较简单了,如下:

M('User')->master(true)->find(1);

这样就可以直接调用主库的查询了。

有问题欢迎大家留言,觉得不错,欢迎收藏关注哦。嘿嘿~~

mysql查询并设置高亮_Thinkphp3.2.3设置MySql主从读写分离后,简单调用主数据库查询相关推荐

  1. ef mysql 读写分离_基于 EntityFramework 的数据库主从读写分离服务插件

    基于 EntityFramework 的数据库主从读写分离服务插件 1. 版本信息和源码 1.1版本信息 v1.01 beta(2015-04-07),基于 EF 6.1 开发,支持 EF 6.1 之 ...

  2. mysql微服务查询问题_微服务架构下,Mysql读写分离后,数据库CPU飙升卡壳问题解析...

    前言 最近系统(基于SpringCloud+K8s)上线,运维团队早上8点左右在群里反馈,系统登录无反应!我的第一反应是Mysql数据库扛不住了. 排查问题也是一波三折,有网络问题,也有mysql读写 ...

  3. Amoeba实现mysql主从读写分离

    Amoeba实现mysql主从读写分离 这段在网上看了下关于amoeba的文章,总体感觉好像要比mysql-proxy好的多,也参考了不少的资料,此文章可能与其他文章作者会有雷同的地方,请谅解,但是此 ...

  4. amoeba实现mysql主从读写分离_利用Amoeba实现MySQL主从复制和读写分离

    在实际生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性.高可用性,还是高并发等各个方面都是完全不能满足实际需求的,因此,一般来说都是通过主从复制(Master-Slave) ...

  5. mysql防止从节点可写数据_mysql主从复制及mycat读写分离

    登录#.#.190.163的服务器,在服务器上配置: vim /etc/my.cnf [mysqld] 在此添加如下配置,其中163为服务器的ip最后一位 server_id=163 需要复制的数据库 ...

  6. 1051 mysql 主从_mysql配置主从读写分离的一些想法

    这篇文章不是记录如何配置读写分离的技术文章,关于如何使用变形虫进行读写分离配置的文章网上一搜一大把.这篇文章旨在描述在实施主从读写分离过程中可能会遇到的问题,以及一些解决方案和想法. 数据库引擎的选择 ...

  7. mysql读写分离实现事务_Mysql读写分离后的事务ce

    1 .概述 很多人会有这样的疑问,mysql读写分离后,我的事务怎么处理呢. 不是说mysql不支持跨库事务吗? 那我引入mycat这个中间件后事务是否是安全的呢,它是怎么运作的呢. 今天我们就来实验 ...

  8. POWERDNS + LVS + LAMP + NFS + MYSQL主从读写分离

    文章目录 client 的配置 路由器的配置 powerdns 的搭建 firewall 的配置 LVS-DR 模式的配置 lvs服务器的配置 web服务器的配置 配置 mysql主从读写分离 MyS ...

  9. mysql读写分离和组复制_数据库主从复制,读写分离,负载均衡,分库分表分别表达的什么概念?...

    谢邀,这是个好问题,而且这个问题好在即使概念非常容易理解,但是这几个不同的概念细节太多太多,而且理解了概念,自己要用,又需要做很多的调研评估和开发工作.作为在这个领域爬坑多年的人,我这里就先介绍下概念 ...

最新文章

  1. 7-Python3从入门到实战—基础之数据类型(字典-Dictionary)
  2. variable ‘‘ of type ‘‘ referenced from scope ‘‘, but it is not defined 异常解决方法
  3. java开源库web3j的以太坊过滤器(filter)和智能合约事件(event)教程
  4. Django中使用Pagination的分页范例源码
  5. 工作流实战_19_flowable 任务委派
  6. 网段和子网的区别_石笼网袋和石笼网的区别
  7. Pytorch class 中 的__call__方法
  8. 微型计算机控制技术赖寿宏版课后答案,微型计算机控制技术答案(赖寿宏)
  9. matlab模拟小球碰撞,在MATLAB中实现模拟小球上抛和反弹运动
  10. ff写法 图片_花体f怎么写
  11. python表示倍数_python代表倍数
  12. Adaptive让 Spark SQL 更高效更智能
  13. 文字转语音,有什么软件好用?
  14. TCP 的四次挥手,可以变成三次挥手吗?
  15. python实现屏幕视频录制_用Python来做一个屏幕录制工具
  16. C++ 小白 学习记录15
  17. arduino+ESP8266网络控制LED灯
  18. 手动挡停车时挂档有技巧
  19. Delete Top n-1 from a groud of records of a table
  20. Katex的markdown常用语法中一些关于Latex数学符号或公式等的笔记

热门文章

  1. c语言中volatile关键字的作用
  2. springboot之异步调用@Async
  3. tensorflow学习笔记————分类MNIST数据集
  4. 拾人牙慧篇之———QQ微信的第三方登录实现
  5. 安卓真机测试安装时报错
  6. 控件的实际大小与呈现大小
  7. POJ 3177 判决素数个数
  8. 获取执行SQL语句的返回结果
  9. 在Hibernate中处理批量更新和批量删除
  10. “分布式哈希”和“一致性哈希”的概念与算法实现