php 分布式数据库查询,分布式数据库
# 分布式数据库
ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型。
配置`database.deploy` 为1 可以采用分布式数据库支持。如果采用分布式数据库,定义数据库配置信息的方式如下:
```
//分布式数据库配置定义
return [
// 启用分布式数据库
'deploy' => 1,
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '192.168.1.1,192.168.1.2',
// 数据库名
'database' => 'demo',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => '',
// 数据库连接端口
'hostport' => '',
]
```
连接的数据库个数取决于`hostname`定义的数量,所以即使是两个相同的IP也需要重复定义,但是其他的参数如果存在相同的可以不用重复定义,例如:
```
'hostport'=>'3306,3306'
```
和
```
'hostport'=>'3306'
```
等效。
```
'username'=>'user1',
'password'=>'pwd1',
```
和
```
'username'=>'user1,user1',
'password'=>'pwd1,pwd1',
```
等效。
还可以设置分布式数据库的读写是否分离,默认的情况下读写不分离,也就是每台服务器都可以进行读写操作,对于主从式数据库而言,需要设置读写分离,通过下面的设置就可以:
```
'rw_separate' => true,
```
在读写分离的情况下,默认第一个数据库配置是主服务器的配置信息,负责写入数据,如果设置了`master_num`参数,则可以支持多个主服务器写入。其它的都是从数据库的配置信息,负责读取数据,数量不限制。每次连接从服务器并且进行读取操作的时候,系统会随机进行在从服务器中选择。
还可以设置`slave_no` 指定某个服务器进行读操作。
> 如果从数据库连接错误,会自动切换到主数据库连接。
调用模型的CURD操作的话,系统会自动判断当前执行的方法的读操作还是写操作,如果你用的是原生SQL,那么需要注意系统的默认规则: **写操作必须用模型的execute方法,读操作必须用模型的query方法**,否则会发生主从读写错乱的情况。
> 注意:主从数据库的数据同步工作不在框架实现,需要数据库考虑自身的同步或者复制机制。
php 分布式数据库查询,分布式数据库相关推荐
- SQL Server2019数据库查询所有数据库名、表名、表结构、表字段、主键方法演示,执行sql提示对象名‘user_tab_columns‘、 ‘user_cons_columns‘ 无效问题解决
SQL Server2019 数据库查询所有数据库名.表名.表结构.表字段.主键方法演示 第一章:查询方法 ① 查询所有数据库名 ② 查询所有表名方法 ③ 查询表结构.表字段方法 ④ 查询主键方法 第 ...
- php 分布式数据库查询,分布式数据库 · Thinkphp5.0完全开发手册 · 看云
# 分布式数据库 ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型. 配置`database.deploy` 为1 可以采用分布式数据库支持 ...
- mysql数据库查询 g_数据库MySQL补充( 查询)
show create table 表名 \G;(查看创建的属性) alter table 表名 auto_increment=xx;(修改自增起始值) set session auto_increm ...
- php输出mysql查询结果_PHP简单获取数据库查询结果并返回JSON
header("Content-type:text/html;charset=utf-8"); //连接数据库 $con = mysql_connect("localho ...
- Java数据库查询简介
利用Connection对象的createStatement方法建立Statement对象,利用Statement对象的executeQuery()方法执行SQL查询语句进行查询,返回结果集,再形如g ...
- HTML/PHP/MySQL实现登录界面、连接数据库、数据库查询、数据在页面展示
应用场景 帮女朋友做作业,需要用xampp实现网站建设,要求建立后台数据库.使用PHP实现页面查询.页面内容更新等功能. 本人自查自学,使用了较多的基础知识点,在此处记录下. 代码实现 以下涉及数据库 ...
- C#数据库查询和操作大全
一:C#数据库查询之数据库连接代码: SqlConnectionobjSqlConnection=newSqlConnection("server=127.0.0.1;uid=sa;pwd= ...
- QT学习-07-sqllite数据库-查询
数据库查询 1.数据库查询简述 SELECT语句的功能非常强大,其选项也非常丰富. 语法: SELECT [ALL|DISTINCT][TOP n[PERCENT]]<目标列表达式>[, ...
- mysql数据库算法_数据库:MySQL索引背后的数据结构及算法原理【转】
原文:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话 ...
最新文章
- 「AI 质检员」在富士通上岗,效率比人工高 25%
- 毕业使人头秃:发现自己的idea已经被人发表了,该怎么办?
- tp设置打印机虚拟服务器,tp打印机服务器设置
- 怎么在linux下使用ftp服务器,怎么在Linux下建立安全的FTP服务器?
- java重定向代码_Java程序员经典面试题集大全 (三十四)
- 填坑帖 By cellur925
- 让一让,神州泰岳要进化了
- 矩池云安装PyQt5,并在VNC中测试使用
- Python3----- assert(断言)
- 如何升级浏览器_涨姿势|教你用手机一键升级路由器软件(固件)
- DB2 ResultSet用法
- netstat 的详解
- Hi3519V101开发(二)
- 漫谈bufferbloat以及TCP公平性
- 005_软件安装之_常用办公软件
- 中国咖啡机市场运行现状调研及投资战略分析报告2022-2027年
- 几何画板用迭代法作图的技巧
- 微信小程序-刷新当前页
- 如何购买一台腾讯云服务器
- 奇虎360 -- 2013年校园招聘技术类笔试题
热门文章
- 计算机网络(二十七)-IPv4
- 7-1 是否同一棵二叉搜索树 (30分)
- 【剑指offer】面试题23:链表中环的入口节点
- ajax官方api,yangguozhong
- goland 方法注释_goland 设置注释模板的过程图文详解
- python狗图像识别_TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
- vb上传文件到MySQL_ASP.NET上传文件到数据库VB版
- C语言中生成可执行程序的过程
- 滨江机器人餐厅_餐厅来了机器人服务员
- linux编译错误 程序中有游离的,操作系统实验报告 附思考题(24页)-原创力文档...