linux下安装mycat

mycat

分库分表,是一个数据库的中间,用于将大型的数据库、表,拆分到多个数据库、表中

当一个项目的业务需求越来越大,而且使用的过程数据量也是越来越大,就会在单个数据库不能承受。
例如:
电商:用户、商品、订单、购物车
xxxms:
user
product
order
bycart

成千上万:数据库去维护这些表的成本可能还大于CRUD,如果一个数据库表过多,可以通过将不同的模块的表分散放置在不同的数据上,这种方式我们称之为垂直分库:根据项目模块的功能划分,将不同模块的表分表放在不同的数据库上,以降低单个数据库维护所有表的压力。

当一张表字段过多也会严重影响数据库的性能,因为:
①这些字段中有些字段是非常常用,有些不常用的,但是数据库在进行查询数据时,是以一行为单位将这一行中的所有数据都加载到内存,这样可能因为很多字段的数据并不是我们现在想要的,但是又加载到内存了,浪费了内存空间、降低了查询速度。
②如果一行数据过多可能会导致这一行数据分布在磁盘上不同的页面(4096KB叫做一个页)上

数据库表设计范式:第一、二、三范式 尽量保证一张表的不要太多字段,将一些不常用的字段单独作为一张表、多张表存在

将一张表安装字段进行垂直拆分,称之为垂直分表

即使通过垂直分库、垂直分表也可能存在一张表数据量过大的问题,例如一张表只有3个字段,但是又1亿条数据。就会让索引变得非常庞大,然后系统就要非常到的精力去维护索引,造成数据库性能的下降,所以一张的数据行数最好不要太大,最好能够进行一些限制,例如限制在100W行、200W行以内

通常的做法是,将一张表横向切分成多张表,横向(水平)切分
•水平本库分表:将所有分出来的表都放在一个数据库中
•分库分表,将一张表横向切分为多张表,每张表发到不同数据库

利用mycat进行分库分表降低数据库的压力,提高查询的性能
mycat是阿里出的数据库中间件,作用类似于nginx一样

提前准备环境:
•至少准备两台Linux虚拟机,每台虚拟机上都要安装mysql数据库
•要保证在windows下通过Navicat能够连接到这两台数据库

①用xshell连接上Linux,并将mycat的安装上传到 /root下

在这里插入图片描述

②解压

tar -zxvf 包名
在这里插入图片描述

③cd到mycat中看一下目录结构

在这里插入图片描述
bin:执行程序
carlet:放mycat使用到的插件的
conf:配置文件
lib:库
logs:日志

④cd到bin里面执行命令运行mycat

./mycart start 启动mycat
linux下安装mycat_第1张图片

⑤开放mycat使用的端口 8066

firewall-cmd --zone=public --add-port=8066/tcp –permanent
重启
systemctl restart firewalld.service

⑥同Navicat连接mycat

linux下安装mycat_第2张图片
账号密码默认都是test
要注意的是端口号是8066,账号密码都是test

你可能感兴趣的:(mysql,数据库,java,linux)