MySQL原理算法
文章平均质量分 92
# MySQL原理算法# MySQL原理算法
淡定波007
技术永无止境,争取每天写点东西...
展开
-
MySQL 8.0.19 instant add column,亿级数据秒速增加字段
一、MySQL DDL 的方法MySQL 在大型表上的 DDL 会带来耗时较久、负载较高、额外空间占用、MDL、主从同步延时等情况。需要特别引起重视,而MySQL 的 DDL 有很多种方法。MySQL 本身自带三种方法,分别是:copy、inplace、instant。copy 算法为最古老的算法,在 MySQL 5.5 及以下为默认算法。从 MySQL 5.6 开始,引入了 inplace 算法并且默认使用。inplace 算法还包含两种类型:rebuild-table 和 not-rebuil原创 2021-04-21 20:23:04 · 2506 阅读 · 0 评论 -
详解MySQL数据库原生的数据复制方式:异步复制、半同步复制与全同步复制
一、MYSQL复制架构衍生史在2000年,MySQL 3.23.15版本引入了Replication。Replication作为一种准实时同步方式,得到广泛应用。这个时候的Replicaton的实现涉及到两个线程,一个在Master,一个在Slave。Slave的I/O和SQL功能是作为一个线程,从Master获取到event后直接apply,没有relay log。这种方式使得读取event的速度会被Slave replay速度拖慢,当主备存在较大延迟时候,会导致大量binary log没有备份到Sla原创 2021-04-20 14:13:36 · 1203 阅读 · 0 评论 -
超详细的MySQL数据库事件--定时任务总结
概述之前头条由于没有分类了,不做维护了,所以会把一些偏汇总的文章迁移到CSDN上。这里也简单总结一下mysql如何用事件来实现定时任务。一、事件概述在MySQL 5.1中新增了一个特色功能事件调度器(Event Scheduler),简称事件。事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,触发器就启动了,而原创 2021-04-18 21:46:10 · 5316 阅读 · 1 评论 -
一文看懂B TREE和B+TREE数据结构实现过程及数据存储结构
概述今天主要从数据结构网址来看数据库中BTREE和B+TREE数据结构实现过程,仅供参考。数据结构:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html一、B tree数据结构实现过程这里有一个陌生区关于 Max. Degree,这个你可以理解为阶,也可以理解为度,即B+ 树的阶数(一个节点存储的键的数量)例如现在这个值设置的是 4,那么在一个节点中最多就可以存储 3 条数据,设置为 5那就可以最多放 4 条记录。1、原创 2021-04-17 23:29:01 · 2373 阅读 · 0 评论 -
Oracle、MySQL、SqlServer、PG数据库merge into语法实现总结
概述多表关联查询的时候会用到临时表插入数据,然后再用select查行查询,在往临时表里插入数据的时候,我们经常会用到判断如果临时表里有了这部分数据我们就要更新数据,如果临时表里没有这部分数据我们就要插入,这个时候可以怎么去实现呢?下面介绍各类型数据库实现的大致方式。一、存储过程实现各类型数据库都可以通过存储过程实现,因为是共性问题,所以就放前面了,这里以mysql数据库的存储过程为例。1、环境准备--建表create table t1(id bigint(10),name varcha原创 2021-04-18 21:34:47 · 6376 阅读 · 0 评论 -
Oracle、MySQL、sqlserver、PG数据库分页实现方案总结
概述今天主要总结一下Oracle、MySQL、sqlserver、PG数据库在分页上的一些实现方案及对比,仅供参考。一、Oracle分页实现oracle的分页一共有三种方式,但在Oracle中实现分页的方法主要是用ROWNUM关键字和用ROWID关键字两种。Rownum 和 Rowid是Oracle数据库所特有的,通过他们可以查询到指定行数范围内的数据记录。1、根据rowid来分Oracle使用rowid数据类型存储行地址,rowid是物理存在的,实际存在的一个列,是一种数据类型。 基于64为编原创 2021-04-12 14:47:57 · 2096 阅读 · 0 评论 -
oracle、mysql、sqlserver、pg数据库去重实现方案总结
概述今天主要介绍一下Oracle、MySQL、sqlserver、pg数据库在删除重复数据时是怎么实现的。这里用实例来说明。一、Oracle数据库去重1、环境准备可以看到“ALLEN”和“SMITH”这两个人的数据重复了,现在要求表中name重复的数据只保留一行,其他的删除。CREATE TABLE hwb( id int, name varchar(10));INSERT INTO hwb VALUES(1, 'TOM');INSERT INTO hwb VALUES(2原创 2021-04-12 14:03:53 · 723 阅读 · 0 评论 -
一文看懂mysql数据库事务隔离级别
概述我们都知道除了MySQL默认采用RR隔离级别之外,其它几大数据库都是采用RC隔离级别。那为啥mysql要这样设置呢?其实是MySQL为了规避一个数据复制场景中的缺陷,而选择 Repeatable Read 作为默认隔离级别。不过不同数据库实现方式还是不太一样。Oracle仅仅实现了RC 和SERIALIZABLE隔离级别。默认采用RC隔离级别,解决了脏读。但是允许不可重复读和幻读。其SERIALIZABLE则解决了脏读、不可重复读、幻读。MySQL的实现:MySQL默认采用RR隔离级别,SQL原创 2021-03-31 14:41:51 · 521 阅读 · 0 评论