MySQL+MyCat分库分表 读写分离配置
副问题[/!--empirenews.page--]
一、 MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行情形必要JDK。 Mycat是中间件,运行在代码应用和MySQL数据库之间的应用。 前身: corba,是阿里开拓的数据库中间件,实现MySQL数据库分库分表集群打点的中间件,曾经呈现过重大事情,二次开拓,形成Mycat。 行使MyCat之后,编写的全部的SQL语句,必需严酷遵守SQL尺度类型。
行使MyCat中间件后的布局图如下: 2 MyCat术语简介 2.1 切分逻辑上的切分. 在物理层面,是行使多库[database],多表[table]实现的切分. 2.1.1 纵向切分把一个数据库切分成多个数据库,设置利便 只能实现两张表的表毗连查询. 将一张表中的数据,分手到多少个database的同布局表中。多个表的数据的荟萃是当前表格的数据。 2.1.2 横向切分把一个表切分成多个表,对比纵向切分派置贫困 无法实现表毗连查询. 将一张表的字段,分手到多少张表中,将多少表毗连到一路,才是当前表的完备数据。 2.2 逻辑库Mycat中界说的database.是逻辑上存在的.可是物理上未必存在. 首要是针对纵向切分提供的观念. 会见MyCat,就是将MyCat当做MySQL行使。 Db数据库是MyCat中界说的database。通过SQL会见MyCat中的db库的时辰,对应的是MySQL中的db1,db2,db3三个库。物理上的database是db1,db2,db3.逻辑上的database就是db。 2.3 逻辑表Mycat中界说的table.是逻辑上存在,物理上未必存在. 首要是针对横向切分提供的观念 MyCat中的表格table,其字段分手到MySQL数据库的表格table1,table2,table3中。 2.4 默认端口Mycat默认端口是8066 2.5 数据主机 - dataHost物理MySQL存放的主机地点.可以行使主机名,IP,域名界说. 2.6 数据节点 - dataNode物理的database是什么.数据生涯的物理节点.就是database. 2.7 分片法则当节制数据的时辰,怎样会见物理database和table. 就是会见dataHost和dataNode的算法. 在Mycat处理赏罚详细的数据CRUD的时辰,怎样会见dataHost和dataNode的算法.如:哈希算法,crc16算法等. 3 Mycat搭建 3.1 安装JDK略 3.2 主从备份搭建完成 3.3 安装mycat解压缩: tar -zxf mycat-xxxx.tar.gz 3.4 Master提供可被Mycat会见的用户在Mycat中通过Master数据库的root用户会见Master数据库. 3.5 上传mycat 3.6 解压缩 3.7 Mycat设置文件详解 Mycat全部的设置文件,都在应用的conf目次中. 3.7.1 rule.xml用于界说分片法则的设置文件. 首要是查察.很少修改. mycat默认的分片法则: 以500万为单元,实现分片法则. 逻辑库A对应dataNode - db1和db2. 1-500万生涯在db1中, 500万零1到1000万生涯在db2中,1000万零1到1500万生涯在db1中.依次类推. 3.7.2 schema.xml用于界说逻辑库和逻辑表的设置文件.在设置文件中可以界说读写疏散,逻辑库,逻辑表,dataHost,dataNode等信息. 设置文件表明: 3.7.2.1 标签schema设置逻辑库的标签 3.7.2.1.1 属性name 逻辑库名称 3.7.2.1.2 属性checkSQLschema 是否检测SQL语法中的schema信息. 如: Mycat逻辑库名称 A, dataNode名称B SQL : select * from A.table; checkSQLschema值是true, Mycat发送到数据库的SQL是select * from table; checkSQLschema值是false,Mycat发送的数据库的SQL是select * from A.table; 3.7.2.1.3 sqlMaxLimit Mycat在执行SQL的时辰,假如SQL语法中没有limit子句.自动增进limit子句. 停止一次性获得过多的数据,影响服从. limit子句的限定数目默认设置为100.假如SQL中有详细的limit子句,当前属性失效. SQL : select * from table . mycat理会后: select * from table limit 100 SQL : select * from table limit 10 . mycat不做任何操纵修改. 3.7.2.2 标签table界说逻辑表的标签,假如必要界说多个逻辑表,编写多个table标签。要求逻辑表的表名和物理表(MySQL数据库中真实存在的表)的表名同等。 3.7.2.2.1 属性name 逻辑表名 3.7.2.2.2 属性dataNode 数据节点名称. 设置文件中后续必要界说的标签(即物理数据库中的database名称).多个名称行使逗号脱离. 多个database界说后,代表分库。 3.7.2.2.3 属性rule 分片法则名称.详细的法则名称参考rule.xml设置文件. SQL语句发送到Mycat中后,Mycat怎样计较,应该将当期的SQL发送到哪一个物理数据库打点体系或物理database中。 3.7.2.3 标签dataNode界说数据节点的标签, 界说详细的物理database信息的。 3.7.2.3.1 属性name 数据节点名称, 是界说的逻辑名称,对应详细的物理数据库database 3.7.2.3.2 属性dataHost 引用dataHost标签的name值,代表行使的物理数据库地址位置和设置信息. 3.7.2.3.3 属性database 在dataHost物理机中,详细的物理数据库database名称. 3.7.2.4 dataHost标签界说数据主机的标签, 就是物理MYSQL真实安装的位置。 3.7.2.4.1 属性name 界说逻辑上的数据主机名称 3.7.2.4.2 属性maxCon/minCon 最大毗连数, max connections 最小毗连数, min connections 3.7.2.4.3 属性dbType 数据库范例 : mysql数据库 3.7.2.4.4 属性dbDriver 数据库驱动范例, native,行使mycat提供的当地驱动. 3.7.2.5 dataHost子标签writeHost写数据的数据库界说标签. 实现读写疏散操纵. 3.7.2.5.1 属性 host 数据库定名 3.7.2.5.2 属性url 数据库会见路径 3.7.2.5.3 属性user 数据库会见用户名 3.7.2.5.4 属性password (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |