每日任务1:完成ER表 多表联查
每日任务标准:
2个表 商品表 product 和 产品类别表 type
create table product(
id int unsigned primary key auto_increment,
name varchar(255),
price decimal(10,2),
type_id int # 产品分类种类
)engine=innodb;
create table type(
id int unsigned primary key auto_increment,
type_name varchar(255)
)engine=innodb;
1.规定在product中type_id和type表格中的id同样的数据信息要放到同一个分块连接点中以防止跨系统分区关联查询。
2.应用3个分块连接点,3个分块连接点在一台服务器上。
3.应用牙模型优化算法分割。
———————-
A. 配备schema.xml
# 上边dataHost的配备中,设定balance=”0″ 不开展读写分离,是由于仅有一台服务器hostM2,因此 读不读写分离不在乎。
switchType=”-1″ 不全自动转换,由于仅有一台服务器
writeType=”0″ 就是指往第一台服务器写,也是由于仅有一台服务器
B. 配备server.xml,建立客户实际操作schema
C. 配备rule.xml
重新启动mycat
# 登陆hostM2的mysql服务项目,建立db1~3数据库查询:(请先保证已设定表名忽视英文大小写)
# 当地登陆mycat
# 建立product和type表
先往type插进数据信息
在往product插进数据信息
发觉type_id和type的id同样的product与type数据信息都是在同一个分块连接点中。
实际上对type的id设定应用牙模型优化算法是,会对product的type_id采用同样的牙模型优化算法,那样才确保了type_id和type的id同样的product与type数据信息在同一个分块连接点中。
=================================================
每日任务2:完成全局性表
每日任务标准:
還是上边2个表 商品表 product 和 产品类别表 type
1.product是大表;type是小表,仅有固定不动的6种归类;规定对上边二张表开展有效分割,防止跨系统分区关联查询。
2.应用3个分块连接点,3个分块连接点在一台服务器上。
3.应用分块枚举算法。
———————————-
因为type是小表,并且仅有固定不动的6中归类,即数据信息不常常转换,因此 能够对type表开展全局性表设定。
以product表的type_id为系统分区字段名
以下:
配备schema.xml
# 设定了type=”global”的<table>标识不用设定rule优化算法
配备rule.xml
partition-hash-int2.txt 以下:
# type为1,4放进连接点1,type为2,5放进连接点2,type为3,6放进连接点3
重新启动mycat
建立db1~3数据库查询,并插进几个数据信息:
# 建立6个归类
# 超出的type_id的数据信息会插进到第一个连接点dn4
# 开展多表联查
尽管这儿表明的是要验dn4,5,6这三个分块,实际上仅用查dn4这一分块就可以了。
由于试着将 dn5,dn6 的type数据信息清除,实行select * from type t join product p on p.type_id=t.id where type_id=4;依然能够查到数据信息。