3.4.1.1 schema标签1). schema 定义逻辑库schema 标签用于定义 MyCat实例中的逻辑库 , 一个MyCat实例中, 可以有多个逻辑库 , 可以通过 schema 标签来划分不同的逻辑库。MyCat中的逻辑库的概念,等同于MySQL中的database概念, 需要操作某个逻辑库下的表时, 也需要切换逻辑库(use xxx)。核心属
......
360
0
0
2022-11-23
3.3.4 测试3.3.4.1 启动配置完毕后,先启动涉及到的3台分片服务器,然后启动MyCat服务器。切换到Mycat的安装目录,执行如下指令,启动Mycat:#启动
bin/mycat start
#停止
bin/mycat stop
Mycat启动之后,占用端口号 8066。启动完毕之后,可以查看logs目录下的启动日志,查看Mycat是否启动
......
367
0
0
2022-11-23
3.3.3 配置1). schema.xml在schema.xml中配置逻辑库、逻辑表、数据节点、节点主机等相关信息。具体的配置如下:<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="htt
......
380
0
0
2022-11-23
3.2.2 下载下载地址:http://dl.mycat.org.cn/3.2.3 安装Mycat是采用java语言开发的开源的数据库中间件,支持Windows和Linux运行环境,下面介绍MyCat的Linux中的环境搭建。我们需要在准备好的服务器中安装如下软件。MySQLJDKMycat具体的安装步骤:参考资料中提供的 《MyCat安装文档》即可,里面有
......
340
0
0
2022-11-23
2. 垂直分表垂直分表:以字段为依据,根据字段属性将不同字段拆分到不同表中。特点:每个表的结构都不一样。每个表的数据也不一样,一般通过一列(主键/外键)关联。所有表的并集是全量数据。3.1.4 水平拆分1. 水平分库水平分库:以字段为依据,按照一定策略,将一个库的数据拆分到多个库中。特点:每个库的表结构都一样。每个库的数据都不一样。所有库的并集是全量数据。2
......
392
0
0
2022-11-23
2.3.4 测试1. 在主库 192.168.200.200 上创建数据库、表,并插入数据create database db01;
use db01;
create table tb_user(
id int(11) primary key not null auto_increment,
name varchar(50) not null,
s
......
344
0
0
2022-11-23
2.3.3 从库配置1. 修改配置文件 /etc/my.cnf#mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 2^32-1,和主库不一样即可
server-id=2
#是否只读,1 代表只读, 0 代表读写
read-only=1
2. 重新启动MySQL服务systemctl restart mysqld
3. 登录mysql,
......
316
0
0
2022-11-23
2. 主从复制2.1 概述主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。MySQL 复制的优点主要包含以下三个方面:主库出现问题,可以快速切换到从
......
357
0
0
2022-11-23
1.2.4 删除对于比较繁忙的业务系统,每天生成的binlog数据巨大,如果长时间不清除,将会占用大量磁盘空间。可以通过以下几种方式清理日志:也可以在mysql的配置文件中配置二进制日志的过期时间,设置了之后,二进制日志过期会自动删除。show variables like '%binlog_expire_logs_seconds%';
1.3 查询日志查
......
339
0
0
2022-11-23
1. 日志1.1 错误日志错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。该日志是默认开启的,默认存放目录 /var/log/,默认的日志文件名为 mysqld.log 。查看日志位置:show variable
......
362
0
0
2022-11-23
控制事务一1). 查看/设置事务提交方式2). 提交事务3). 回滚事务注意:上述的这种方式,我们是修改了事务的自动提交行为, 把默认的自动提交修改为了手动提交, 此时我们执行的DML语句都不会提交, 需要手动的执行commit进行提交。控制事务二1). 开启事务START TRANSACTION 或 BEGIN ;
2). 提交事务COMMIT;
3)
......
373
0
0
2022-11-23
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。就比如: 张三给李四转账1000块钱,张三银行账户的钱减少1000,而李四银行账户的钱要增加1000。这一组操作就必须在一个事务的范围内,要么都成功,要么都失败。正常情况: 转账这个操作, 需要分为以下这么三步来
......
349
0
0
2022-11-23
2.7 索引设计原则1). 针对于数据量较大,且查询比较频繁的表建立索引。2). 针对于常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引。3). 尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高。4). 如果是字符串类型的字段,字段的长度较长,可以针对于字段的特点,建立前缀索引。
......
357
0
0
2022-11-23
2.6.7 前缀索引当字段类型为字符串(varchar,text,longtext等)时,有时候需要索引很长的字符串,这会让索引变得很大,查询时,浪费大量的磁盘IO, 影响查询效率。此时可以只将字符串的一部分前缀,建立索引,这样可以大大节约索引空间,从而提高索引效率。1). 语法create index idx_xxxx on table_name(colu
......
312
0
0
2022-11-23
2.6.6 覆盖索引尽量使用覆盖索引,减少select *。那么什么是覆盖索引呢?覆盖索引是指 查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到 。接下来,我们来看一组SQL的执行计划,看看执行计划的差别,然后再来具体做一个解析。explain select id, profession from tb_user where profession
......
349
0
0
2022-11-23