mysql集群

三 表操作

懵懂的女人 提交于 2020-02-06 07:15:10
一 存储引擎介绍   一、什么是存储引擎   二、MySQL支持的存储引擎   三、使用存储引擎 二 表介绍、创建及查询 三 数据类型   一、类型介绍   二、数值类型   三、日期类型   四、字符串类型   五、枚举类型与集合类型 四 表完整性约束   一、约束简介   二、not null与default   三、unique   四、primary key   五、auto_increment   六、foreign key 五 修改表ALTER TABLE 六 复制表与删除表 一 存储引擎介绍 一、什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型,处理表格用excel,处理图片用png等 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎。 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方 法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和 操作此表的类型) 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql 数据库提供了多种存储引擎

mysql集群与主从复制

冷暖自知 提交于 2020-02-06 02:45:55
mysql的读写分离是通过主从复制来实现的,那么为什么要读写分离呢? 随着用户量的增多,数据库的性能往往会成为一个系统的瓶颈所在,一般系统的“读”压力远远大于“写”压力,所以可以通过数据库的读写分离来提高系统的性能。让主数据库负责“写”操作,从数据库负责“读”操作,从数据库可以部署多个来提高“读”的速度。所以,读写分离可以分担mysql的压力,提供系统的性能和吞吐量 那么主从复制的原理是什么? 1)首先,mysql主数据库在事务提交时会把所有对数据的操作都写入二进制文件binlog中 2)从数据库读取到binlog中的记录,根据这个记录重做数据库操作,通过复制达到数据一致 但是主数据库和从数据库间总会有延迟,如果刚刚保存的数据你就要马上能够读取到,这个时候可以让这次查询去主数据库中执行 接下来实现一个主从复制的小案例 由于本项目的这些服务都是docker的镜像,所以mysql我也想通过docker来安装,这里使用的是5.7版本 docker pull mysql:5.7 首先要创建外部挂载点来挂载容器中的文件 sudo mkdir -p /usr/local/mysql/data sudo mkdir -p /usr/local/mysql/log sudo mkdir -p /usr/local/mysql/conf sudo chmod 775 -R /usr/local

MySQL高可用方案——双主

我的未来我决定 提交于 2020-02-05 18:06:21
MySQL的高可用方案有很多种,双主、MHA、MMM等等,这里只是写下最简单的双主这种高可用方案。 一、配置MySQL互为主从 1、环境准备 系统 IP 主机名 服务 Centos 7.5 192.168.20.2 mysql01 MySQL+keepalived Centos 7.5 192.168.20.3 mysql02 MySQL+keepalived 注:MySQL已部署完成,可参考博文 Centos部署MySQL 5.7 进行部署。 2、开启二进制日志及中继日志 #主机mysql01配置文件如下: [root@mysql01 ~]# cat /etc/my.cnf [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data port=3306 server_id=1 #server_id必须唯一 socket=/usr/local/mysql/mysql.sock log-error=/usr/local/mysql/data/mysqld.err log-bin=/usr/local/mysql/data/log_bin #指定二进制日志文件 relay-log=/usr/local/mysql/data/relay-bin #指定中继日志 relay-log-index=relay-bin

数据库 -- 存储引擎介绍

孤人 提交于 2020-02-05 06:13:48
mysql引擎介绍 1,概念   mysql5.6支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、FEDERATED、MRG_MYISAM、ARCHIVE、PERFORMANCE_SCHEMA。其中NDB和InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 mysql支持的存储引擎 MySQL服务器采用了多层设计和独立模块,插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中,图中的Pluggable Storage Engines部分。采用MySQL服务器体系结构,由于在存储级别上(也就是Pluggable Storage Engines)提供了一致和简单的应用模型和API,应用程序编程人员和DBA可不再考虑所有的底层实施细节。因此,尽管不同的存储引擎具有不同的能力,应用程序是与之分离的。存储引擎就司职与文件系统打交道了。 并发性:某些应用程序比其他应用程序具有很多的颗粒级锁定要求(如行级锁定)。 事务支持:并非所有的应用程序都需要事务,但对的确需要事务的应用程序来说,有着定义良好的需求,如ACID兼容等。 引用完整性:通过DDL定义的外键,服务器需要强制保持关联数据库的引用完整性。 物理存储:它包括各种各样的事项,从表和索引的总的页大小,到存储数据所需的格式,到物理磁盘。 索引支持

从小型网站到超大规模网站的MySQL参考架构

本小妞迷上赌 提交于 2020-02-05 04:47:24
Oracle发布《 面向大规模可伸缩网站基础设施的MySQL参考架构 》白皮书,针对将MySQL用作数据存储的不同类型和不同规模的网站给出了推荐的拓扑结构。 根据分别提供4类服务——用户和会话管理、电子商务、分析类应用 (多结构数据)和CMS(元数据)——的网站的规模和可用性要求(如下表所示),这份白皮书给出了4个参考架构。 请注意,这里给出的指导方针只是基本建议,实际应用中需要根据读写模式、负载平衡和所用的缓存机制等因素进行调整。 小型(Small)网站参考架构 这一参考架构可用于上述4类网站的所有小型实现。可以使用MySQL Replication来制作数据的副本以支持备份和分析。 中型(Medium)网站参考架构 在这种情况下,推荐针对不同类型的活动选择独立的基础设施,考虑每个MySQL服务器最多支持8个应用服务器,如果因伸缩性需求应用服务器数量增加,则添加更多的MySQL从服务器。 为满足会话管理网站和电子商务网站的高可用性要求,可以使用 Linux心跳(Heartbeat) 和半同步复制。CMS网站通常对读操作的向外扩展有更高要求,假定每个MySQL从服务器最多可以处理3000个并发用户,白皮书建议为每个MySQL主服务器添加20-30个从服务器。CMS系统可将数据保存在一个SAN中,或者保存在连接到该服务器的分布式设备中。

Mycat(Windows环境)

二次信任 提交于 2020-02-04 14:46:38
Mycat 是SQL集群中间件,基于阿里开源的Cobar产品而研发,继承了Cobar的稳定性、可靠性、优秀的架构和性能 首先在安装Mycat之前,需要安装JDK1.7以上,可以在cmd环境下输入 java -version 查看本地安装的java版本 安装JDK后,还需要安装Mysql(因为我本地环境安装的是Mysql,所以用Mysql做测试) 1. 下载Mycat 链接: https://pan.baidu.com/s/1L9TK3Vo2PTxS2WKdvjL4CQ 提取码: rrrp 2. 解压 下载成功后,解压到本地,目录结构如下: 3.配置 server.xml Mycat的配置文件,设置账号、参数等 schema.xml Mycat对应的物理数据库和数据库表的配置 rule.xml Mycat分片(分库分表)规则 .server.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:server SYSTEM "server.dtd"> <mycat:server xmlns:mycat="http://io.mycat/"> <system> <property name="defaultSqlParser">druidparser</property> <property name=

Mysql 高可用集群 ------ MHA

◇◆丶佛笑我妖孽 提交于 2020-02-04 11:53:34
文章目录 一、MHA 简介 二、部署 MHA 第一步:三台主从服务器安装 mysql 第二步:修改 mysql 的主配置文件:/etc/my.cnf ,注意三个服务器的 server-id 不能一样 第三步:三个服务器启动 mysql 服务 第四步:配置 Mysql 主从同步(一主两从) 第五步:安装 MHA 第六步:启动 MHA 一、MHA 简介: MHA(Master High Availability) (1)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 (2)该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以单独部署在一个独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时

30_MHA集群概述 、 部署MHA集群 测试配置

十年热恋 提交于 2020-02-04 09:47:56
版本:5.7.28 1.准备MHA集群环境 准备6台虚拟机,并按照本节规划配置好IP参数 在这些虚拟机之间实现SSH免密登录 在相应节点上安装好MHA相关的软件包 使用6台RHEL 7虚拟机,如图-1所示。准备集群环境,安装依赖包,授权用户,配置ssh密钥对认证登陆,所有节点之间互相以root秘钥对认证登录,管理主机以root密钥对认证登录所有数据节点主机,配置mha集群。 1.1 修改主机名,配置IP msyql{50..57} 192.168.4.{50..57} 1.2 安装包(51-55) ]# tar -xvf mha56.tar.gz ]# cd mha ]# yum -y install perl-*.rpm 1.3 在管理主机上安装mha_node 和 mha-manager包(56操作) ]# yum -y install perl-DBD-mysql perl-DBI ]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm 1.4 配置ssh密钥对认证登陆 所有节点之间可以互相以ssh密钥对方式认证登陆(以51为例) ]# ssh-keygen ]# for i in {50..57} > do > ssh-copy-id 192.168.4.$i > done ]# cat /etc/hosts 127.0.0.1

canal同步mysql至elasticsearch中

泄露秘密 提交于 2020-02-04 06:38:23
环境准备 zookeeper集群 elasticsearch-6.8.6 canal admin-1.1.4 canal deployer-1.1.4 canal adapter-1.1.4 关于elasticsearch版本要求具体可自行百度,另需准备postman创建es索引,获取canal网址: https://github.com/alibaba/canal/ 搭建zookeeper集群 在这里直接使用docker-compose创建 version : '3.1' services : zoo1 : image : zookeeper restart : always hostname : zoo1 ports : - 2181 : 2181 environment : ZOO_MY_ID : 1 ZOO_SERVERS : server.1=0.0.0.0 : 2888 : 3888;2181 server.2=zoo2 : 2888 : 3888;2181 server.3=zoo3 : 2888 : 3888;2181 volumes : - / : /opt/compose - volumes/zk - volumes/zoo1 zoo2 : image : zookeeper restart : always hostname : zoo2 ports : -

MySQL

a 夏天 提交于 2020-02-02 09:30:47
一、索引 B+ Tree 原理 MySQL 索引 索引优化 索引的优点 索引的使用条件 二、查询性能优化 使用 Explain 进行分析 优化数据访问 重构查询方式 三、存储引擎 InnoDB MyISAM 比较 四、数据类型 整型 浮点数 字符串 时间和日期 五、切分 水平切分 垂直切分 Sharding 策略 Sharding 存在的问题 六、复制 主从复制 读写分离 参考资料 一、索引 B+ Tree 原理 1. 数据结构 B Tree 指的是 Balance Tree,也就是平衡树。平衡树是一颗查找树,并且所有叶子节点位于同一层。 B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具有 B Tree 的平衡性,并且通过顺序访问指针来提高区间查询的性能。 在 B+ Tree 中,一个节点中的 key 从左到右非递减排列,如果某个指针的左右相邻 key 分别是 key i 和 key i+1 ,且不为 null,则该指针指向节点的所有 key 大于等于 key i 且小于等于 key i+1 。 2. 操作 进行查找操作时,首先在根节点进行二分查找,找到一个 key 所在的指针,然后递归地在指针所指向的节点进行查找。直到查找到叶子节点,然后在叶子节点上进行二分查找,找出 key 所对应的 data。 插入删除操作会破坏平衡树的平衡性,因此在插入删除操作之后