MyCat数据库中间件
文章平均质量分 80
熊猫-IT
V :it-xiongmao,源码获取,学习交流,技术支持!
展开
-
Mysql专题-面试总结
1. InnoDB、MyISAM存储引擎对比InnoDB 支持事务,MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一;InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败;InnoDB 是聚簇索引,MyISAM 是非聚簇索引。聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到原创 2020-12-22 09:38:19 · 244 阅读 · 0 评论 -
Mysql专题-SQL优化
1.大批量插入数据1.1.环境准备以相同的表结构创建 表 tb_user_1 和 tb_user_2CREATE TABLE `tb_user_1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(45) NOT NULL, `password` varchar(96) NOT NULL, `name` varchar(45) NOT NULL, `birthday` datetime DEFAULT NULL,原创 2020-12-19 22:35:23 · 243 阅读 · 1 评论 -
Mysql专题-EXPLAIN
1.简述使用 EXPLAIN 关键字可以模拟服务层的 Optimizer 优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的。分析你的查询语句或是表结构的性能瓶颈。通过 EXPLAIN 能获取到的信息表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被物理查询语法:EXPLAIN + SQL语句2.测试环境搭建建表语句 :CREATE TABLE `t_role` ( `id` varchar原创 2020-12-19 15:38:15 · 198 阅读 · 1 评论 -
Mysql专题-SQL优化
1.引入在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多 SQL 语句开始逐渐显露出性能问题,对生产的影响也越来越大,此时这些有问题的 SQL 语句就成为整个系统性能的瓶颈,因此我们必须要对它们进行优化,本章将详细介绍在 MySQL 中优化 SQL 语句的方法。当面对一个有 SQL 性能问题的数据库时,我们应该从何处入手来进行系统的分析,使得能够尽快定位问题 SQL 并尽快解决问题。查看 SQL 执行频率原创 2020-12-19 10:38:44 · 222 阅读 · 1 评论 -
Mysql专题-数据类型
1.Mysql数据类型主要包括以下五大类:整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT浮点数类型:FLOAT、DOUBLE、DECIMAL字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB日期类型:Date、DateTime、TimeStamp、Time、Year其他数据类型:BINARY、VA原创 2020-12-17 23:44:50 · 229 阅读 · 0 评论 -
Mysql专题-存储引擎
1.Mysql的体系结构概览整个MySQL Server由以下组成 :Connection Pool :连接池组件Management Services & Utilities :管理服务和工具组件SQL Interface :SQL接口组件Parser :查询分析器组件Optimizer :优化器组件Caches & Buffers :缓冲池组件Pluggable Storage Engines :存储引擎File System :文件系统1.1.连接层最上层是原创 2020-12-17 23:31:11 · 217 阅读 · 0 评论 -
Mysql专题-索引
1.索引概述MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的示意图所示:左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应原创 2020-12-16 23:14:44 · 296 阅读 · 0 评论 -
MyCat专题(十三)-MyCat分片规则之程序指定分片
1.简介实现方式:根据指定的分片字段以及分片规则,截取分片字段的字符串子串,根据字符串的子串(必须是数字)计算分区号(由调用方传递参数,显示指定分区号),例如,id=0-zhangsan,其中 id 是从 startIndex = 0,size=1,即截取的子串是0(数字) ,0 就是获取的分区,如果大于分区数,则分配到 defaultPartition 分区中。优点:可以在运行阶段,由应用自...原创 2020-03-09 21:04:02 · 555 阅读 · 0 评论 -
MyCat专题(十二)-MyCat分片规则之自定义范围分片
1.实现思路实现方式:范围分片,就是我们自己根据某个字段的数值范围来确定这些数据到底存放在哪一个分片上,不过需要我们提前规划好分片字段某个范围属于哪个分片。切分规则根据文件(autopartition-long.txt)配置的范围来进行切片,根据配置的分片字段取值范围,然后把这一范围的所有数据都插入到该分片。举个例子:比如将id在0-500W的数据分片在第一个节点上面,将id在500W-100...原创 2020-03-09 16:11:50 · 673 阅读 · 0 评论 -
MyCat专题(十一)-MyCat分片规则之取模分片
1.简介除了上一章总结的枚举分片之外,MyCat中还有一种比较常见的分片 - 取模分片规则,本节将总结如何实现取模分片。2.实现方式实现方式:切分规则根据配置中输入的数值n。此种分片规则将数据分成n份(通常dn节点也为n),从而将数据均匀的分布于各个节点上。优点:可以很好的分散数据库写的压力,比较适合于单点查询的情景。缺点:不方便扩展;当出现了范围查询,此时需要MyCat去合并结果,特别...原创 2020-03-09 15:39:50 · 449 阅读 · 0 评论 -
MyCat专题(十)-MyCat分片规则之枚举分片
1.简介在MyCat中,有许多分片规则,比如枚举分片、取模分片、范围分片、一致性hash分片等等,每一种分片规则都需要根据项目中具体的业务已经数据量来决定,所以说没有哪一种分片规则很好,哪一种分片规则就不好,都是依业务来定。本文将对其中一种,也是比较简答的分片规则 - 枚举分片进行简单的介绍,并通过一个示例说明其用法以及规则。2.实现方式按照partition-hash-int-enum.t...原创 2020-03-09 13:04:53 · 360 阅读 · 0 评论 -
MyCat专题(九)-MyCat全局序列之本地时间戳方式
1.简介上一篇文件主要讲解了在MyCat中如何实现数据库方式的全局序列,除了上面讲过的本地文件方式以及数据库方式,其实还可以使用本地时间戳方式生成全局唯一序列作为主键,本文将总结时间戳方式实现全局序列作为主键。2.时间戳方式实现方式:ID = 64 位二进制 [42(毫秒)+5(机器 ID)+5(业务编码)+12(重复累加) ]换算成十进制为 18 位数的 long 类型,每毫秒可以并发...原创 2020-03-09 12:09:46 · 608 阅读 · 0 评论 -
MyCat专题(八)-MyCat全局序列之数据库方式
1.简介上一篇文件介绍了MyCat全局序列的本地文件方式,由于 MyCat 重新发布后,配置文件中的 sequence 会恢复到初始值(当这台机器宕机时会出现,序列文件丢失,造成序列冲突问题),所以在实际项目中并不会采用本地文件生成序列,更多是采用数据库的方式,本文就将对如何在MyCat中使用数据库实现全局序列主键唯一。2.数据库方式基本思想实现方式:在数据库中建立一张表MYCAT_SEQU...原创 2020-03-08 23:04:02 · 271 阅读 · 0 评论 -
MyCat专题(七)-MyCat全局序列之本地文件方式
1.简介在使用MyCat分库分表之后,如果还是使用MySql中的主键自增的话,已经无法保证这个自增主键在MySql集群中的唯一性了,为了实现全局唯一主键,MyCat提供了好几种方式实现全局唯一主键,分别有:本地文件方式数据库方式时间戳方式分布式 ZK ID生成器ZK递增ID 生成本文将对本地文件方式进行简单的说明,并通过一个示例描述其使用方法。2.本地文件方式此方式 MyCat...原创 2020-03-08 19:42:55 · 292 阅读 · 0 评论 -
MyCat专题(六)-MyCat分库分表
1.简介分库:将原本一个数据库中的数据,拆分到多个数据库进行保存,然后我们通过访问一个数据库,在MyCat中成为逻辑库。分表:如果一个数据表的数据量已经超过千万,那么查询速度会比较慢,这时候可以考虑进行分表操作,将一个表的数据保存到多个表中,这样可以控制单表的数据量。2.作用分库分表的作用可以通过下表对比可见:分库分表前分库分表后并发情况MySql单机部署,扛不住...原创 2020-03-08 18:32:52 · 462 阅读 · 0 评论 -
MyCat专题(五)-MyCat基于MySQL实现主从切换
1.简介主从切换:顾名思义,就是MySQL写节点出现宕机后,会自动切换到备用节点(也就是把从机也配置成writeHost),这样的话,第一个writeHost故障后,会自动切换到第二个,第二个故障后自动切换到第三个…以此类推;如果当是1主3从模式,可以把第1个从节点配置为writeHost2,第2个和第3个从节点则配置为writeHost1的readHost;一般情况下,都会结合读写分离一起...原创 2020-03-08 12:31:01 · 2392 阅读 · 4 评论 -
MyCat专题(四)-MyCat基于MySQL实现读写分离
1.引言读写分离:顾名思义,就是将插入、更新、删除等事务性的操作分发到主数据库master上,而将读请求分发到从数据库slave上,利用mysql主从同步,从数据库服务器将同步更新本机数据,这样就保证了两个数据库中数据一致性。读写分离有几种实现方式,可以在应用层配置多个数据源,根据业务需求访问不同的数据,指定对应的策略,也可以使用动态切换数据源方式实现,也可以借助数据库中间件的方式实现,myc...原创 2020-03-08 12:05:13 · 421 阅读 · 0 评论 -
MySQL数据同步,出现Slave_SQL_Running:no和slave_io_running:no问题的解决方法
1.问题描述当我们配置好MySQL主主同步时,是可以实现主主同步,但是重启机器后或者其他原因导致MySQL无法同步了。2.Slave两个关键进程mysql replication 中slave机器上有两个关键的进程,死一个都不行,一个是slave_sql_running,一个是Slave_IO_Running,一个负责与主机的io通信,一个负责自己的slave mysql进程。3.如果是S...原创 2020-03-08 09:18:22 · 319 阅读 · 0 评论 -
MyCat专题(三)-MyCat基础入门
1.MyCat概述Mycat 是数据库中间件数据库中间件: 连接java应用程序和数据库中间件: 是一类连接软件组件和应用的计算机软件, 以便于软件各部件之间的沟通。2.MyCat的前世今生2013年阿里的Cobar在某大型项目中使用过程中发现存在一些比较严重的问题,于是第一代改良版——Mycat诞生。Mycat开源以后,一些Cobar的用户参与了Mycat的开发,最终Mycat发...原创 2020-03-05 00:05:17 · 423 阅读 · 0 评论 -
MyCat专题(二)-Mysql主从复制(MySQL Replication)
1.MySQL主从复制概念MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。2.MySQL中复制的优点包括横向扩展解决方案 - 在多个从站之间分配负载以提高性能。在此环境中...原创 2020-03-06 15:01:03 · 453 阅读 · 0 评论 -
MyCat专题(一)-CentOS7在线安装MySql
1.环境准备准备三台centos7服务器:主机名IP地址CentOS1192.168.70.129CentOS2192.168.70.128CentOS1192.168.70.130centos7修改hostname[root@centos7 ~]$ hostnamectl set-hostname CentOS1 # 使用这个命令会...原创 2020-03-06 12:28:34 · 274 阅读 · 0 评论