随笔分类 - MySQL
摘要:一、MySQL数据库主从同步延迟 要了解MySQL数据库主从同步延迟原理,我们先从MySQL的数据库主从复制原理说起: MySQL的主从复制都是单线程的操作,主库对所有DDL和DML产生的日志写进binlog,由于binlog是顺序写,所以效率很高。 Slave的IO Thread线程从主库中bin
阅读全文
摘要:一、存储引擎层面丢失数据 由于在实际项目中,我们往往使用支持事务的InnoDB存储引擎。我们分析InnoDB存储引擎数据丢失: 从上篇的文章《MySQL事务提交过程(一)》和《MySQL事务提交过程(二)》中知道,MySQL默认情况下是开启内部的XA事务和事务的实现方式是基于redo log和und
阅读全文
摘要:If you specify ON DUPLICATE KEY UPDATE, and a row is inserted that would cause a duplicate value in a UNIQUE index or PRIMARY KEY, MySQL performs an U
阅读全文
摘要:上一篇文章《MySQL索引》介绍了索引的基本内容。本篇文章来说说MySQL索引原理。 MySQL索引原理 ##索引目的 我们为什么要建索引,原因很简单索引可以提高查询效率,可以类比图书中目录。这里就不再赘述索引的优势,请自行查阅资料。 ##索引原理 除了图书的目录,我们在生活中会经常发现类似的事情,
阅读全文
摘要:上一篇文章我们介绍了在关闭binlog的情况下,事务提交的大概流程。之所以关闭binlog,是因为开启binlog后事务提交流程会变成两阶段提交,这里的两阶段提交并不涉及分布式事务,当然mysql把它称之为内部xa事务(Distributed Transactions),与之对应的还有一个外部xa事
阅读全文
摘要:MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中。今天我们来讨论下事务的提交过程。 MySQL体系结构 由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交,通过两阶段提交,来保证存储引擎和二进制日志的一致。 本文仅讨论binlog未打卡状态下的提交流程,
阅读全文
摘要:前言: 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎
阅读全文
摘要:前言 前面我们提到MySQL的加锁,锁是作用于索引的。那么本篇文章说下索引。 聚簇索引(Clustered Indexes) InnoDB存储引擎的数据组织方式,是聚簇索引表:完整的记录,存储在主键索引中,通过主键索引,就可以获取记录所有的列. 每个InnoDB的表有一个特殊的索引称之为聚簇索引,每
阅读全文
摘要:一、业界主要产品 1)商业版数据库:MySQL Proxy,提供MySQL协议接口(非JDBC),主从结构,可以负载平衡,读写分离,failover等,lua语法复杂,不支持大数据量的分库分表; 2)Amoeba,支持分数据库实例,每个数据相同的表,不支持事务;类似MySQL Proxy,设计上抛弃
阅读全文
posted @ 2016-01-27 20:38
三石雨
摘要:前面几篇文章说道MySQL数据库的高可用方案主从复制、主从复制的延迟产生原因、延迟检测及延迟解决方案(并未从根本上解决),这种主从复制方案保证数据的冗余的同时可以做读写分离来分担系统压力但是并非是高可用方案,因为主从节点中主节点仍然是单点的,一旦主节点宕机会导致应用中写失败。双主复制虽然很好的避免主
阅读全文
摘要:上篇文章《分布式数据存储 - MySQL主从复制》,我们说到MySQL主从复制很好的保障了从库,读的高可用性。so,问题来了: 1、针对主库,写的高可用性又是如何做到高可用性? 2、如果需要对Master进行维护或宕机,为了不影响写服务,我们可能会将Slave节点提升为Master来提供写服务。当M
阅读全文
摘要:前言 一、主从复制过程 MySQL的主从复制能力是通过三个线程来实现的,两个在Slave端的I/O和SQL两个线程,还有一个在Master端I/O线程: Binlog dump thread:Master端创建该线程来响应Slave端I/O线程的请求,向Slave端发送二进制内容。Binlog du
阅读全文

浙公网安备 33010602011771号