php分布式数据库 php 分布式( 四 )


暂不支持CREATE TABLE ... LIKE
暂不支持CREATE TABLE ... SELECT
暂不支持CREATE TEMPORARY TABLE
暂不支持CREATE/DROP/ALTER SERVER/LOGFILE GROUP/
暂不支持ALTER对分表键(shardkey)进行重命名,不过可以修改类型
分布式表的DML部分的语句限制:
暂不支持SELECT INTO OUTFILE/INTO DUMPFILE/INTO LOAD DATA导出
暂不支持INSERT ... SELECT
暂不支持UPDATE 分布式shardkey列的值
本操作主要是面向传统数据库的开发者或者DBA用户,让大家能够初步入手了解分布式数据库的特点 。另外分布式数据库在架构上提供了灵活的读写分离模式,在SQL上支持全局的order by ,  group by,limit操作 , 支持聚合函数,跨set节点的join、子查询、支持分布式事务 , 传统数据库所支持的大部分操作在分布式数据库中得到继承 。分布式数据库是在传统数据库的基础之上发展起来的,对传统集中式的数据库有较好的兼容性,对SQL语句语法的使用上兼容大部分SQL1999,SQL2003标准 , 且对SQL的ACID特性都予以支持 。分布式数据库在逻辑上是一个独立完整的数据库 , 但在架构上和物理上采用 多节点分片方式,经过内部算法将数据打散分布来到不同节点存储数据,对前端业务屏蔽后端的复杂架构,并且自身具备数据的最终一致性访问,可用性和分区容灾等特性的数据库 。希望本次操作能给大家带来一些对分布式数据库TDSQL的一些认识和收获 。
*禁止转载,可转发(转发文章请注明出处)
TDPub企业级分布式关系数据库
Think3.2.3怎么配置多个数据库连接Think3.2.3配置多个数据库连接方法:
一、全局配置定义
常用的配置方式是在应用配置文件或者模块配置文件中添加下面的配置参数:
//数据库配置信息
'DB_TYPE' = 'mysql', // 数据库类型
'DB_HOST' = 'localhost', // 服务器地址
'DB_NAME' = 'thinkphp', // 数据库名
'DB_USER' = 'root', // 用户名
'DB_PWD' = '123456', // 密码
'DB_PORT' = 3306, // 端口
'DB_PREFIX' = 'think_', // 数据库表前缀
'DB_CHARSET'= 'utf8', // 字符集
数据库的类型由DB_TYPE参数设置 。
下面是目前支持的数据库设置:
DB_TYPE设置 支持的数据库类型
mysql或mysqli mysql
pgsql pgsql
sqlite sqlite
mssql 或sqlsrv sqlserver
oracle oracle
ibase ibase
mongo mongo
PDO PDO支持的所有数据库
如果DB_TYPE使用PDO类型的话php分布式数据库 , 数据库类型则由DB_DSN配置决定 。
或者采用如下配置
'DB_DSN' = 'mysql://root:123456@localhost:3306/thinkphp#utf8'
使用DB_DSN方式定义可以简化配置参数php分布式数据库,DSN参数格式为:
数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集
字符集设置需要3.2.1版本以上有效,字符集如果没有设置的话,默认为utf8 。
如果两种配置参数同时存在的话,DB_DSN配置参数优先 。
注意:如果要设置分布式数据库,暂时不支持DB_DSN方式配置 。
如果采用PDO驱动的话,则必须首先配置DB_TYPE为pdo,然后还需要单独配置其他参数,例如:
//PDO连接方式
'DB_TYPE' = 'pdo', // 数据库类型
'DB_USER' = 'root', // 用户名
'DB_PWD' = '', // 密码
'DB_PREFIX' = 'think_', // 数据库表前缀
'DB_DSN' = 'mysql:host=localhost;dbname=thinkphp;charset=utf8'
注意:PDO方式的DB_DSN配置格式有所区别,根据不同的数据库类型设置有所不同 , 具体可以参考PHP手册 。
配置文件定义的数据库连接信息一般是系统默认采用的,因为一般一个应用的数据库访问配置是相同的 。该方法系统在连接数据库的时候会自动获取 , 无需手动连接 。

推荐阅读