mysql集群

MySQL数据库初识

青春壹個敷衍的年華 提交于 2019-11-27 18:49:35
二 MySQL介绍       1.mysql版本     双授权版本:社区版(完全免费,功能也够nb了)和商业版(更好,功能更多更强大一些,但是收费,VIP,有售后服务,也会参考和吸收社区版的一些nb的功能,安全性和稳定性都是最好的,大几十万),一般NB的开源软件都是双授权的     每个版本又分四个版本依次进行发布:       Alpha版:一般只在开发公司内部使用,不对外公开,测试、自我检查的版本       Beta版:一般是开发完也测试完的版本,一般不会出现比较大的性能bug(一般我们不用,阿里、去哪儿会使用这个版本,有些新功能,内部有高手能调,也能评估新功能的性能)       RC版:根据Beta版测试之后收集到一些bug等在进行完善的一个版本       GA版:软件正式发布的版本,没有特别的需求一定要使用GA版,有些公司追求新功能会使用Beta版,这是个例。    2.MySQL的产品线: (mysql是C++写的,oracle 9i版本之前是C语言写的,之后主要是java)     最早期,mysql是按照3.x--4.x--5.x等来开发的,但是为了提高MySQL的竞争优势,以及提高性能、降低开发维护成本等原因,同时,更方便企业用户更精准的选择合适的版本产品用于自己的企业生产环境中,MySQL在发展到5.1系列版本之后,重新规划为三条产品线。     第一条

Nosql

那年仲夏 提交于 2019-11-27 15:58:43
单机MySQL的美好时代 在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。 在那个时候,更多的都是静态网页,动态交互类型的网站不多 初期架构 | center DAL,(Data Access Layer)。其功能主要是负责数据库的访问。简单地说就是实现对数据表的Select(查询)、Insert(插入)、Update(更新)、Delete(删除)等操作。 上述架构下,我们来看看数据存储的瓶颈是什么? 1、数据量的总大小 一个机器放不下时。(表要占空间,表的索引要占空间) 2、数据的索引(B+ Tree树)一个机器的内存放不下时库 3、访问量(读写混合)一个实例不能承受,(读写一个库) 真正意义上的库应该是主从复制,读写分离,而mysql等数据库只能自己从自己的库中读与写,也就是自己和自己玩。 如果满足了上述1 or 3个,则需要进化.. Memcached(缓存,java上还有一个ehcache)+MySQL+垂直拆分 后来,随着访问量的上升,几乎大部分使用MySQL架构的网站在数据库上都开始出现了性能问题,web程序不再仅仅专注在功能上,同时也在追求性能。程序员们开始大量的使用缓存技术来缓解数据库的压力, 优化数据库的结构和索引 。开始比较流行的是通过文件缓存来缓解数据库压力,但是当访问量继续增大的时候,多台web机器通过文件缓存不能共享

MySQL相关

梦想与她 提交于 2019-11-27 15:58:40
一、SELECT语句的执行顺序 from->on->join->where->group by->聚集函数->having->计算表达式->select->distinct->order by->top 二、存储过程 存储过程是一个可编程的函数,它在数据库中创建并保存。优点有: 1、存储过程能实现较快的执行速度 2、存储过程允许标准组件式编程。 3、存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 4、存储过程可被作为一种安全机制来充分利用。 5、存储过程能够减少网络流量 存储过程和函数的异同点 相同点:存储过程和函数都是为了可重复的执行操作数据库的sql 语句的集合。 不同点: 1、标识符不同,函数的标识符是function,存储过程是proceduce。 2、函数中有返回值,且必须有返回值,而过程没有返回值,但是可以通过设置参数类型(in,out)来实现多个参数或者返回值。 3、函数使用select 调用,存储过程需要使用call 调用。 三、事务的特性 1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。 2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。 3、隔离性(Isolation):事务的执行不受其他事务的干扰

【MySQL】存储引擎 -- 2019-08-17 02:28:42

放肆的年华 提交于 2019-11-27 14:21:16
原文: http://blog.gqylpy.com/gqy/245 " 目录 #. MySQL支持的存储引擎 1. InnoDB 2. MyISAM 3. NDB 4. Memory 5. Infobright 6. NTSE 7. BLACKHOLE MySQL中的库即文件夹,表即文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制.(如:处理文本用txt类型,处理表格用excel, 处理图片 用png等) 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎. PS:存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库 中数据 的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) 在Oracle和SQL Server等数据库中只有一种存储引擎,所有数据库存储管理机制都是一样的,而MySQL数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 ![在这里插入图片描述](http://blog.gqylpy.com/media/ai/2019-03/f065e887-be54-4608-a236-c400c1478427.png) SQL解释器

【MySQL】存储引擎 -- 2019-08-17 02:21:30

徘徊边缘 提交于 2019-11-27 14:20:21
原文: http://blog.gqylpy.com/gqy/245 " 目录 #. MySQL支持的存储引擎 1. InnoDB 2. MyISAM 3. NDB 4. Memory 5. Infobright 6. NTSE 7. BLACKHOLE MySQL中的库即文件夹,表即文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制.(如:处理文本用txt类型,处理表格用excel, 处理图片 用png等) 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎. PS:存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库 中数据 的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) 在Oracle和SQL Server等数据库中只有一种存储引擎,所有数据库存储管理机制都是一样的,而MySQL数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 ![在这里插入图片描述](http://blog.gqylpy.com/media/ai/2019-03/f065e887-be54-4608-a236-c400c1478427.png) SQL解释器

TiDB 压力测试报告

孤人 提交于 2019-11-27 14:06:01
TiDB 压力测试报告 (转载自公众号DBATech) 一、测试环境 1、tidb 集群架构: 测试使用最基本的TiDB架构。即 3个tidb-server节点+ 3个tikv节点 + 3个pd节点。 2、tidb集群的部署环境(混合部署): 192.168.xx.A 1*server +1*PD +1*tikv 192.168.xx.B 1*server +1*PD +1*tikv 192.168.xx.C 1*server +1*PD+1*tikv IDC机器环境: 0S :CentOS7 CPU :Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz *24 RAM :48GB DISK :SSD, 480GB RAID0 TiDB 重要配置参数 以下这些参数都是会对tidb造成性能影响的参数。设置尽量折中。较少对性能的影响。 tidb-server节点的设置: [log] level = "warn" [prepared-plan-cache] enabled = true log-level = "warning" [raftstore] sync-log = false tikv节点的设置: log-level = "warning" [rocksdb.defaultcf] [rocksdb.writecf] block-cache

mysql简介

醉酒当歌 提交于 2019-11-27 13:43:05
简介 •由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。 MySQL 是一种 开源的 且最流行的关系型数据库管理系统之一, 在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件 MySQL Router用于取代MySQL Proxy,建议MySQL Router与应用程序部署在一台机器。 应用程序像访问MySQL一样访问MySQL Proxy,由MySQL Proxy将数据转发给后端的MySQL。 支持各种操作系统 SQL语言的主要特点 •1) SQL语言类似于英语的自然语言,语言简洁,易学易用,初学者经过短期培训就可以使用SQL存取数据。 •2) SQL语言是一种非过程语言,只要用户提出"干什么",至于"怎么干"则由RDBMS来解决,向用户隐蔽数据的存取路径。 •3) SQL语言是一种面向集合的语言,操作的对象和结果都是关系。 •4) SQL语言既可独立使用,又可嵌入到宿主语言中使用,具有自含型和宿主型两种特点。 •5) SQL语言具有查询、操作、定义和控制四种语言一体化的特点 存储引擎机制   MySQL提供一个抽象层,允许不同的存储应请使用相同的API对表进行访问。该接口通过一个被称为Handler的抽象类来实现

MySQL高可用架构-MHA环境部署记录

穿精又带淫゛_ 提交于 2019-11-27 11:32:14
一、MHA介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是日本的一位 MySQL专家采用Perl语言编写的一个脚本管理工具,该工具仅适用于MySQLReplication(二层)环境,目的在于维持Master主库的高可用性。是一套优秀的作为MySQL高可用性 环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上 保证数据的一致性,以达到真正意义上的高可用。 MHA是自动的master故障转移和Slave提升的软件包.它是基于标准的MySQL复制(异步/半同步).该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。 1)MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Manager会定时探测集群中的node节点,当发现master 出现故障的时候,它可以自动将具有最新数据的slave提升为新的master

mysql高可用架构 -> MHA部署-04

假装没事ソ 提交于 2019-11-27 11:31:43
MHA架构图 本次MHA的部署基于GTID复制成功构建,普通主从复制也可以构建MHA架构。 下载所需的软件包 mkdir /server/tools -p //创建存放包的目录 [root@db01 tools]# ll total 5136 -rw-r--r-- 1 root root 4963681 Oct 26 15:39 Atlas-2.2.1.el6.x86_64.rpm -rw-r--r-- 1 root root 87119 Oct 26 15:39 mha4mysql-manager-0.56-0.el6.noarch.rpm -rw-r--r-- 1 root root 113914 Oct 26 15:39 mha4mysql-manager-0.56.tar.gz -rw-r--r-- 1 root root 36326 Oct 26 15:39 mha4mysql-node-0.56-0.el6.noarch.rpm -rw-r--r-- 1 root root 50172 Oct 26 15:39 mha4mysql-node-0.56.tar.gz   下载地址:https://github.com/yoshinorim/mha4mysql-manager/wiki/Downloads 安装依赖包(所有节点) yum install perl-DBD

MHA 高可用架构部署

久未见 提交于 2019-11-27 11:30:42
一, MHA 介绍     MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。   该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点) 。MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。   在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据