1.MySQL主备切换 readonly 设置对超级(super)权限是无效的,而用于同步更新的线程,就拥有超级权限. 建议在做主备数据库的时候,将备用数据库设置为只读.(反向用readonly来判断节点的角色) 主备的同步是通过 binlog 日志同步,流程: 1).备库上通过 change master 命令,设置主库的 IP.端口.用户名.密码,以及从哪个位置开始请求 binlog,这个位置包含了文件名称和日志偏移量: 2).备库执行 start slave 命令,备库会启动两个线程.其中…
一.mycat的安装 环境准备:准备一台虚拟机192.168.152.128 1. 下载mycat cd /softwarewget http:-linux.tar.gz 2. 解压mycat tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz 3. 剪切mycat到/usr/local目录下 mv /software/mycat /usr/local 4. 启动mycat /usr/local/mycat/bin/myc…
1.分表 当项目上线后,数据将会几何级的增长,当数据很多的时候,读取性能将会下降,更新表数据的时候也需要更新索引,所以我们需要分表,当数据量再大的时候就需要分库了. a.水平拆分:数据分成多个表 b.垂直拆分:字段分成多个表 c.插入/更新/删除数据和查询统计 MyISAM存储引擎有一个MERGE存储引擎,可以将多个表合成一个表,就可以进行这四种操作   InnoDB用alter able可以将变成MyISAM存储引擎,然后使用MERGE引擎 面试题:MERGE存储引擎将N个子表合并,那么在数据…
主从复制集群 概念:主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点. 使用场景: 读写分离:使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作. 数据实时备份:当系统中某个节点发生故障时,可以方便的故障切换. 高可用High Availability 架构扩展:增加多个数据存储节点,将负载分布在多个从节点上,降低单机磁盘I/O访问的频率,提高单个机器的I/O性能. 主从形式: 一主一从 一主多从:提高读性能 多…
1 为什么要分库分表 物理服务机的CPU.内存.存储设备.连接数等资源有限,某个时段大量连接同时执行操作,会导致数据库在处理上遇到性能瓶颈.为了解决这个问题,行业先驱门充分发扬了分而治之的思想,对大库表进行分割, 然后实施更好的控制和管理,同时使用多台机器的CPU.内存.存储,提供更好的性能.而分治有两种实现方式:垂直拆分和水平拆分. 2 垂直拆分(Scale Up 纵向扩展) 垂直拆分分为垂直分库和垂直分表,主要按功能模块拆分,以解决各个库或者各个表之间的资源竞争.比如分为订单库.商品库.用户…
一.数据处理分类 1. 海量数据处理,按照使用场景主要分为两种类型: 联机事务处理(OLTP) 面向交易的处理系统,其基本特征是原始数据可以立即传送到计算机中心进行处理,并在很短的时间内给出处理结果.简单地说,主要是对数据的插入.修改.删除,所以对事物和实时性要求比较高. 联机分析处理(OLAP) 通过多维的方式对数据进行分析.查询和报表,可以同数据挖掘工具.统计分析工具配合使用,增强决策分析功能.简单地说,主要是对海量数据的查询统计分析 2. OLTP和OLAP的比较   OLTP OLAP…
传统的分库分表 原文:http://blog.csdn.net/kobejayandy/article/details/54799579 传统的分库分表都是通过应用层逻辑实现的,对于数据库层面来说,都是普通的表和库. 分库 分库的原因 首先,在单台数据库服务器性能足够的情况下,分库对于数据库性能是没有影响的.在数据库存储上,database只起到一个namespace的作用.database中的表文件存储在一个以database名命名的文件夹中.比如下面的employees数据库: mysql>…
一.数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值.在业务Service来看就是,可用数据库连接少甚至无连接可用.接下来就可以想象了吧(并发量.吞吐量.崩溃). 1.IO瓶颈 第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表. 第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库. 2.CPU瓶颈 第一种:SQL问题,如SQL中包含joi…
1.查数据太多不会把内存用光 InnoDB 的数据是保存在主键索引上,然后索引树分割保存在数据页上,数据页存在内存中/磁盘.change buffer 就是先把修改操作记录,然后读数据的时候,内存没有就从磁盘拿,把 change buffer 的改动应用的从磁盘读取的数据页上,返回给请求.并且此时数据页变成脏页,又会刷脏页. 全盘扫描实际上就是扫描表的主键索引.查到符合条件的就放在结果集,然后返回给客户端. 结果集: 一块内存 net_buffer 写入符合条件的结果,重复获取写入到 net_b…
1.搭建mycat 分片服务器   数据库主机 192.168.4.55 使用db1库存储数据 数据库主机 192.168.4.56 使用db2库存储数据 主机 192.168.4.54 运行mycat服务,逻辑库名称为test,连接用户名为admin,密码123456 在主机 192.168.4.254 访问测试配置 1.1 在54(主机c1)和55(主机c2)上面分别创建db1和db2库 mysql> create database db1;   //c1上面创建db1库 mysql> c…