Thinkphp实现MySQL读写分离操作示例
相对于其他方法实现MySQL的读写分离来说,采用Thinkphp框架实现MySQL的读写分离简单易用,其配置文件示例代码如下:
'DB_TYPE'=> 'mysql', 'DB_DEPLOY_TYPE' => 1, //开打支持多服务器 'DB_RW_SEPARATE'=>true,//数据库读写否分离 'DB_HOST'=> '192.168.11.101,192.168.11.102', 'DB_NAME'=>'test', 'DB_USER'=>'admin', 'DB_PWD'=>'admin101', 'DB_PREFIX' => 'fav_',
注意事项:
1、当采用原生态的sql语句进行写入操作的时候,要用execute,读操作要用query。
2、MySQL数据主从同步还是要靠MySQL的机制来实现,所以这个时候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 pub
-
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
本文实例讲述了thinkphp3.x连接mysql数据库的方法.分享给大家供大家参考,具体如下: 惯例配置文件:ThinkPHP/conf/convention.php (1)在配置文件中填写配置信息(配置文件:"./xmall/conf/config.php"): 示例: <?php return array( //'配置项'=>'配置值' /* 数据库设置 */ 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'loc
-
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
本文实例讲述了thinkPHP连接sqlite3数据库的简单实现方法.分享给大家供大家参考,具体如下: 首先检查Thinkphp目录下\Lib\Driver\Db目录里有没有DbPdo.class.php 这个文件. 如果没有就去这里下吧:http://www.thinkphp.cn/extend/205.html 然后再确认打开了PHP对sqlite的扩展支持,extension=php_sqlite.dll 连接sqlite3数据库: 在config.php 文件中添加如下配置: 'DB_T
-
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
ThinkPHP官网上曾有一段公告指出,在ThinkPHP 3.1.3及之前的版本存在一个SQL注入漏洞,漏洞存在于ThinkPHP/Lib/Core/Model.class.php 文件 根据官方文档对"防止SQL注入"的方法解释(参考http://doc.thinkphp.cn/manual/sql_injection.html) 使用查询条件预处理可以防止SQL注入,没错,当使用如下代码时可以起到效果: $Model->where("id=%d and usern
-
thinkPHP框架中执行原生SQL语句的方法
本文实例讲述了thinkPHP框架中执行原生SQL语句的方法.分享给大家供大家参考,具体如下: 怎样在thinkphp里面执行原生的sql语句? $Model = new Model();//或者 $Model = D(); 或者 $Model = M(); $sql = "select * from `order`"; $voList = $Model->query($sql); 只是需要new一个空的模型继承Model中的方法. 注意query是查功能,execute是增删改
-
thinkphp区间查询、统计查询与SQL直接查询实例分析
本文实例讲述了thinkphp区间查询.统计查询与SQL直接查询.分享给大家供大家参考.具体方法如下: 一.区间查询: 复制代码 代码如下: $data['id']=array(array('gt',4),array('lt',10));//默认关系是(and)并且的关系 //SELECT * FROM `tp_user` WHERE ( (`id` > 4) AND (`id` < 10) ) $data['id']=array(array('gt',4),array('lt',10
-
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
该实例通过ThinkPHP结合Ajax与mysql实现了客户端的通信功能,具体如下: 1.使用js的ajax局部刷新功能,每次刷新将数据库中读取出的新记录插入到页面的显示区域,代码如下: window.onload =setInterval(showWords1000);//加载完成之后开始执行刷新功能 function showWords()//刷新时被调用函数,实现ajax请求 { xmlHttp=GetXmlHttpObject();//从自定义的函数中获取请求对象. if (xmlHtt
-
thinkphp中多表查询中防止数据重复的sql语句(必看)
下面先来看看例子: table id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. select *, count(distinct name) from table group by name 结果: id name count(distinct name) 1 a 1 2 b 1 3 c 1 最后一 项是多余的,不用管就行了 tp2.0手册 搜索连贯操作 可看到相关的资料 SELECT cat_id, COUNT(*) AS
-
thinkPHP使用pclzip打包备份mysql数据库的方法
本文实例讲述了thinkPHP使用pclzip打包备份mysql数据库的方法.分享给大家供大家参考,具体如下: PclZip介绍 PclZip library能够压缩与解压缩Zip格式的压缩档(WinZip.PKZIP);且能对此类类档案进行处理,包括产生压缩档.列出压缩档的内容以及解压缩档案等等 数据库备份是一件非常重要的事情,备份的方式也很多有的通过vps直接进行备份.有的通过phpmyadmin进行数据进行备份.小编觉得这些该麻烦了并且备份好的.sql文件过于太大占用了一定的空间.所以用p
-
Thinkphp实现MySQL读写分离操作示例
相对于其他方法实现MySQL的读写分离来说,采用Thinkphp框架实现MySQL的读写分离简单易用,其配置文件示例代码如下: 'DB_TYPE'=> 'mysql', 'DB_DEPLOY_TYPE' => 1, //开打支持多服务器 'DB_RW_SEPARATE'=>true,//数据库读写否分离 'DB_HOST'=> '192.168.11.101,192.168.11.102', 'DB_NAME'=>'test', 'DB_USER'=>'admin',
-
PHP实现的mysql读写分离操作示例
本文实例讲述了PHP实现的mysql读写分离操作.分享给大家供大家参考,具体如下: 首先mysql主从需配置好,基本原理就是判断sql语句是否是select,是的话走master库,否则从slave查 <?php /** * mysql读写分离 */ class db{ public function __construct($sql){ $chestr = strtolower(trim($sql)); //判断sql语句有select关键字的话,就连接读的数据库,否则就连接写数据库 if(s
-
Sharding-JDBC自动实现MySQL读写分离的示例代码
目录 一.ShardingSphere和Sharding-JDBC概述 1.1.ShardingSphere简介 1.2.Sharding-JDBC简介 1.3.Sharding-JDBC作用 1.4.ShardingSphere规划线路图 1.5.ShardingSphere三种产品的区别 二.数据库中间件 2.1.数据库中间件简介 2.2.Sharding-JDBC和MyCat区别 三.Sharding-JDBC+MyBatisPlus实现读写分离 3.0.项目代码结构和建表SQL语句 3.
-
Python web框架(django,flask)实现mysql数据库读写分离的示例
读写分离,顾名思义,我们可以把读和写两个操作分开,减轻数据的访问压力,解决高并发的问题. 那么我们今天就Python两大框架来做这个读写分离的操作. 1.Django框架实现读写分离 Django做读写分离非常的简单,直接在settings.py中把从机加入到数据库的配置文件中就可以了. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', # 主服务器的运行ip 'PORT':
-
SpringBoot+Mybatis-Plus实现mysql读写分离方案的示例代码
1. 引入mybatis-plus相关包,pom.xml文件 2. 配置文件application.property增加多库配置 mysql 数据源配置 spring.datasource.primary.jdbc-url=jdbc:mysql://xx.xx.xx.xx:3306/portal?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=
-
php实现的mysqldb读写分离操作类示例
本文实例讲述了php实现的mysqldb读写分离操作类.分享给大家供大家参考,具体如下: /** * php MysqlDB 读写分离类 * ----------------------------------------------------- * $Source: http://code.ilaopo.net/php.class.mysqldb $ * $Author: Bevin Chen $ * $Email: bevin#lifa8.cn $ * $Date: 2009-10-10
-
基于mysql+mycat搭建稳定高可用集群负载均衡主备复制读写分离操作
数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了常用的读写分离方式,推荐mycat,社区活跃,性能稳定. 测试环境 MYSQL版本:Server version: 5.5.53,到官网可以下载WINDWOS安装包. 注意:确保mysql版本为5.5以后,以前版本主备同步配置方式不同. linux实现思路类似,修改my.cnf即可. A主mysql.19
-
SpringBoot整合sharding-jdbc实现分库分表与读写分离的示例
目录 一.前言 二.数据库表准备 三.整合 四.docker-compose部署mysql主从 五.本文案例demo源码 一.前言 本文将基于以下环境整合sharding-jdbc实现分库分表与读写分离 springboot2.4.0 mybatis-plus3.4.3.1 mysql5.7主从 https://github.com/apache/shardingsphere 二.数据库表准备 温馨小提示:此sql执行时,如果之前有存在相应库和表会进行自动删除后再创建! DROP DATABAS
-
SpringBoot+MyBatis+AOP实现读写分离的示例代码
目录 一. MySQL 读写分离 1.1.如何实现 MySQL 的读写分离? 1.2.MySQL 主从复制原理? 1.3.MySQL 主从同步延时问题(精华) 二.SpringBoot+AOP+MyBatis实现MySQL读写分离 2.1.AbstractRoutingDataSource 2.2.如何切换数据源 2.3.如何选择数据源 三 .代码实现 3.0.工程目录结构 3.1.引入Maven依赖 3.2.编写配置文件,配置主从数据源 3.3.Enum类,定义主库从库 3.4.ThreadL
-
Java基于JNDI 实现读写分离的示例代码
目录 一.JNDI数据源配置 二.JNDI数据源使用 三.web.xml配置 四.spring-servlet.xml配置 五.spring-db.xml配置 六.log4j.properties配置 七.相关路由数据源切换逻辑代码 八.搭建过程中遇到的问题和解决方案 一.JNDI数据源配置 在Tomcat的conf目录下,context.xml在其中标签中添加如下JNDI配置: <Resource name="dataSourceMaster" factory="or
随机推荐
- oracle常见故障类别及规划解析
- 用js+iframe形成页面的一种遮罩效果的具体实现
- jQuery实现从身份证号中获取出生日期和性别的方法分析
- 值得分享和收藏的Bootstrap学习教程
- 如何用javascript计算文本框还能输入多少个字符
- JS加载iFrame出现空白问题的解决办法
- Thinkphp将二维数组变为标签适用的一维数组方法总结
- 进一步理解Python中的函数编程
- python操作sqlite的CRUD实例分析
- PHP加密解密类实例分析
- PHP模块memcached使用指南
- Android编程之杀毒的实现原理及具体实例
- javascript操作表格排序实例分析
- 浅谈PL/SQL批处理语句:BULK COLLECT与FORALL对优化做出的贡献
- 高并发系统数据幂等的解决方案
- jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
- jQuery深拷贝Json对象简单示例
- jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
- Android studio报: java.lang.ExceptionInInitializerError 错误
- C++实现strcmp字符串比较的深入探讨