数据库
DILIGENT203
这个作者很懒,什么都没留下…
展开
-
redis zset 的实现,基于链表的二分查找 -- 跳跃表源码解析
1. 引言二分查找是一个非常简单而实用的算法,其算法基本思想是在一个有序数组中查找某个元素时,通过对比数组中间位置元素与目标元素来淘汰数组中一半的元素,达到高效查找元素的算法目标。但是,二分查找是一个基于数组存储结构的算法,众所周知,数组是一个随机访问的性能卓越,但随机插入、删除元素的性能就比较差,只有 O(n) 时间复杂度,因此上述二分查找算法也存在原始数据不易增删的问...原创 2019-10-29 14:41:07 · 625 阅读 · 0 评论 -
怎么避免从删库到跑路 -- 详解 mysql binlog 的配置与使用
1. 引言使用数据库的时候,我们每个操作都十分小心,尤其是不能直接在数据库上执行 update、delete 等操作,否则万一忘记加全 where 条件,可能就会造成无法挽回的结果。有一句十分流行的调侃 – “从删库到跑路”就很形象的说明了误操作后的结果,那么如果你真的不小心执行了删库操作,真的就无法挽回了吗?当然不会了,通常对于线...原创 2019-09-09 19:38:42 · 467 阅读 · 0 评论 -
mysql 异常情况下的事务安全 -- 详解 mysql redolog
1. 引言上一篇文章中,我们介绍了 mysql 的二进制日志 binlog,他为数据的同步、恢复和回滚提供了非常便利的支持。怎么避免从删库到跑路 – 详解 mysql binlog 的配置与使用无论我们使用的是什么存储引擎,只要通过配置开启,mysql 都会记录 binlog。在工程存储项目...原创 2019-09-09 19:44:07 · 2725 阅读 · 0 评论 -
史上最详尽,一文讲透 MVCC 实现原理
1. 引言上一篇文章中,我们介绍了 mysql 的 crash safe 机制,也是 ACID 中原子性的实现 – redolog 的原理和配置方法。mysql 异常情况下的事务安全 – 详解 mysql redolog本文,我们来介绍&nbs...原创 2019-09-11 22:45:41 · 18491 阅读 · 23 评论 -
SQL 某状态耗时过多的优化
1. 引言此前的文章中,我们介绍了 mysql 最常用的存储引擎 – innodb 的性能优化。主要围绕参数、索引设置等方面进行。Mysql Innodb 性能优化事实上,在实际使用中,最为常见的性能问题大多是不合理的使用方式,即 sql 语句的问题引起的,因此与参数、索引优化相比,直接优化和修改&n...原创 2019-09-11 22:46:45 · 352 阅读 · 0 评论 -
MySQL 锁机制(上) -- 全局锁与表级锁
1. 引言数据库作为多用户共享的资源中心,总是存在着竞争条件,显然,加锁是最为简单的一种保证竞争条件安全性的措施。那么,mysql 锁是如何实现的,又有哪些分类?本文将为您详细讲述。2. mysql 中锁的分类mysql 中的锁可以按照多个维度进行分类。2.1. 按照工作原理分按照实现和工作原理,mysql 的锁可以分为:共享锁(S&nbs...原创 2019-09-18 19:46:09 · 513 阅读 · 0 评论 -
MySQL 锁机制(下) -- 细说 InnoDB 行锁(记录锁、间隙锁与临键锁)
1. 引言上一篇文章中,我们介绍了 MySQL 中最基本的锁机制:共享锁(S 锁 – Shared Locks)排它锁(X 锁 – Exclusive Locks)意向共享锁(IS 锁 – Intention Shared Locks)意...原创 2019-09-21 21:05:33 · 1824 阅读 · 2 评论 -
详解 MySQL 执行计划 -- Explain
1. 引言此前我们介绍过 MySQL Innodb 性能优化的相关内容:Mysql Innodb 性能优化其中提到了执行计划 Explain 的使用,那么,究竟 explain 命令的结果中每一项数据都表示了什么意思呢?本文我们就来详细说明一下。2. explain 与优化器优化遇到&n...原创 2019-09-26 19:51:16 · 329 阅读 · 0 评论