
Mysql
文章平均质量分 95
一白丁
道阻且长,行则将至
展开
-
MySQL集群架构(三):分库分表
分库分表前言拆分方式垂直拆分垂直拆分优点垂直拆分缺点水平拆分水平拆分优点水平拆分缺点主键策略UUIDCOMB(UUID变种)SNOWFLAKE数据库ID表Redis生成ID分片分片概念分片策略基于范围分片哈希取模分片一致性哈希分片扩容方案停机扩容平滑扩容总结前言之前介绍了mysql集群中的高可用双主模式,本节将介绍缓解数据库压力的分库分表策略。互联网系统需要处理大量用户的请求。比如微信日活用户破10亿,海量的用户每天产生海量的数量;美团外卖,每天都是几千万的订单,那这些系统的用户表、订单表、交易流水表原创 2021-01-05 21:14:45 · 1353 阅读 · 0 评论 -
MySQL集群架构(二):双主模式
双主模式前言适用场景MMM架构MMM故障处理机制MMM监控机制MHA架构MHA故障处理机制MHA优点主备切换主备延迟问题可靠性优先可用性优先总结前言之前介绍了主从模式,本节将介绍双主模式适用场景很多企业刚开始都是使用MySQL主从模式,一主多从、读写分离等。但是单主如果发生单点故障,从库切换成主库还需要作改动。因此,如果是双主或者多主,就会增加MySQL入口,提升了主库的可用性。因此随着业务的发展,数据库架构可以由主从模式演变为双主模式。双主模式是指两台服务器互为主从,任何一台服务器数据变更,都会通原创 2021-01-05 20:44:54 · 2745 阅读 · 0 评论 -
MySQL集群架构(一):主从模式
前言本节开始介绍mysql的集群架构设计与主从模式集群架构设计架构设计理念在集群架构设计时,主要遵从下面三个维度可用性扩展性一致性可用性设计站点高可用,冗余站点服务高可用,冗余服务数据高可用,冗余数据保证高可用的方法是冗余。但是数据冗余带来的问题是数据一致性问题。实现高可用的方案有以下几种架构模式:主从模式-简单灵活,能满足多种需求。比较主流的用法,但是写操作高可用需要自行处理双主模式互为主从,有双主双写、双主单写两种方式,建议使用双主单写扩展性设计扩展性主原创 2021-01-05 20:13:03 · 2423 阅读 · 0 评论 -
mysql事务与锁(二)精谈Mysql的锁
精谈Mysql的锁前言锁分类行锁原理实战悲观锁表级锁共享锁(行级锁-读锁)排他锁(行级锁-写锁)乐观锁乐观锁实现原理乐观锁案例死锁与解决方案表锁死锁产生原因解决方案行级锁死锁产生原因1解决方案产生原因2解决方案共享锁转换为排他锁产生原因解决方案死锁排查总结前言本节讲介绍mysql中的锁相关知识锁分类在 MySQL中锁有很多不同的分类从操作的粒度可分为表级锁:每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低。应用在MyISAM、InnoDB、BDB 等存储引擎中行级锁:每次原创 2021-01-05 18:31:41 · 123 阅读 · 0 评论 -
MySQL索引(二):精谈mysql索引分析与查询优化
精谈mysql索引分析与查询优化前言索引分析善用EXPLAIN回表查询覆盖索引最左前缀原则LIKE查询NULL查询索引与排序查询优化慢查询定位慢查询优化索引和慢查询提高索引过滤性慢查询原因总结分页查询优化一般性分页分页优化方案总结前言上节介绍了mysql 的索引的类型和查询原理,这节主要介绍下mysql的索引分析与优化。索引分析善用EXPLAINMySQL 提供了一个 EXPLAIN 命令,它可以对 SELECT 语句进行分析,并输出 SELECT 执行的详细信息,供开发人员有针对性的优化。例如:原创 2021-01-05 16:40:20 · 143 阅读 · 0 评论 -
MySQL索引(一):精谈mysql索引原理
精谈mysql索引原理前言索引类型索引原理二分查找法Hash结构B+Tree结构B-Tree结构B+Tree结构聚簇索引和辅助索引总结前言本节将介绍mysql的索引信息和其原理。索引类型索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下:从索引存储结构划分:B Tree索引Hash索引-R Tree索引FULLTEXT全文索引查询操作在数据量比较少时,可以使用like模糊查询,但是对于大量的文本数据检索,效率很低。如果使用全文索引,查询速度会原创 2021-01-05 15:51:13 · 195 阅读 · 0 评论 -
MySQLInnoDB存储引擎(三):精谈mysql存储日志
精谈mysql存储日志前言Undo Log介绍作用Redo Log和BinlogRedo Log日志介绍Redo Log工作原理Redo Log写入机制Redo Log相关配置参数Binlog日志Binlog记录模式Binlog文件结构Binlog写入机制Binlog文件操作Redo Log和Binlog区别总结前言上节介绍完了innodb的工作线程模型和文件结构,本节将介绍一下存储引擎的日志组件。Undo Log介绍Undo:意为撤销或取消,以撤销操作为目的,返回指定某个状态的操作。Undo原创 2021-01-05 15:09:29 · 190 阅读 · 0 评论 -
MySQLInnoDB存储引擎(二):精谈innodb的线程模型与数据文件
精谈innodb的线程模型与数据文件前言InnoDB线程模型InnoDB数据文件InnoDB文件存储结构总结前言上节介绍了innodb的存储结构与版本间的差异,本节将介绍innodb的线程模型和数据文件InnoDB线程模型IO Thread在InnoDB中使用了大量的AIO(Async IO)来做读写处理,这样可以极大提高数据库的性能。在InnoDB1.0版本之前共有4个IO Thread,分别是write,read,insert buffer和log thread,后来版本将read thr原创 2021-01-05 14:37:25 · 339 阅读 · 0 评论 -
MySQLInnoDB存储引擎(一):精谈innodb的存储结构
精谈innodb的存储结构前言MySQL存储引擎InnoDB和MyISAM对比InnoDB存储结构InnoDB内存结构Buffer PoolChange BufferAdaptive Hash IndexLog BufferInnoDB磁盘结构表空间(Tablespaces)数据字典(InnoDB Data Dictionary)双写缓冲区(Doublewrite Buffer)重做日志(Redo Log)撤销日志(Undo Logs)新版本结构演变总结前言虽然写者写过一期关于innodb的储存结构和b原创 2021-01-05 12:18:27 · 314 阅读 · 0 评论 -
Mysql的架构设计与运行机制
Mysql的架构设计与运行机制前言MySQL应用架构演变MySQL体系架构MySQL运行机制总结前言mysql作为互联网如今最主流的数据库,相信不少读者已在项目中使用,所以本文将介绍一下mysql的演变以及架构设计。MySQL应用架构演变应用架构升级来源于互联网源源不断的数据量的暴增,这也很容易理解,和如今互联网产品应对流量增长采用的扩缩容方案一样。架构V1.0 - 单机单库一个简单的小型网站或者应用背后的架构可以非常简单, 数据存储只需要一个MySQL Instance就能满足数据读取和写原创 2021-01-05 10:27:30 · 203 阅读 · 0 评论 -
mysql事务与锁(一)精谈Mysql事务
浅谈Mysql事务事务介绍事务的四个特性(ACID)mysql的事务锁事务介绍事务全称叫数据库事务,是数据库并发控制时的基本单位,它是一个操作集合,这些操作要么不执行,要么都执行,不可分割。例如我们的转账这个业务,就需要进行数据库事务的处理。事务的四个特性(ACID)一致性 事务必须使数据库从一个一致性状态变换到另外一个一致性状态。原子性 指事务是一个不可分割的工作单位,事务中的操作...原创 2020-02-18 17:53:25 · 222 阅读 · 0 评论 -
MysqlInnoDB存储引擎数据结构
MysqlInnoDB存储引擎数据结构磁盘存储的局部性原则Innodb的存储结构行记录Compact 行记录行溢出页溢出索引磁盘存储的局部性原则先来看一个基础查询语句select * from a where c > 1;分析一下sql的实现过程,按照通常理解,首先会找到c = 1的这条数据放到内存里,然后由cpu拿到c =1的这个值与c > 1的条件进行比较运算,然后逐条筛...原创 2020-02-04 21:39:17 · 945 阅读 · 0 评论