9 小小工匠

尚未进行身份认证

我要认证

show me the code ,change the world

等级
TA的排名 85

MySQL - 锁机制初探

文章目录Pre锁的分类InnoDB 中的锁行锁InnoDB 行锁的三种算法实现表锁InnoDB 自增锁InnoDB 锁关系矩阵InnoDB 锁问题排查思路PreMySQL - 解读MySQL事务与锁机制MySQL - 共享锁和排它锁初探MySQL - 无索引行锁升级为表锁MySQL - 锁等待及死锁初探锁的分类在 MySQL 中有三种级别的锁:页级锁、表级锁、行级锁表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 会发生在:MyISAM、memor

2020-08-11 21:12:08

MySQL - 并发事务问题及解决方案

文章目录Pre脏读不可重复读幻读SolutionsPreMySQL - 多版本控制 MVCC 机制初探中我们初步了解了 MVCC 的原理及其实现。 随着数据库并发事务处理能力的增强,数据库资源的利用率也会大大提高,从而提高了数据库系统的事务吞吐量,可以支持更多的用户并发访问。但并发事务处理也会带来一些问题,如:脏读、不可重复读、幻读等等脏读一个事务正在对一条记录做修改,在这个事务完成并提交前,这条记录的数据就处于不一致状态;这时,另一个事务也来读取同一条记录,如果不加控制,第二个事务读取了

2020-08-10 20:49:47

MySQL - 多版本控制 MVCC 机制初探

文章目录MVCC原理快照读与当前读MVCC 多版本实现MVCC原理MySQL InnoDB 存储引擎,实现的是基于多版本的并发控制协议——MVCC,而不是基于锁的并发控制。MVCC 最大的好处是读不加锁,读写不冲突。在读多写少的 OLTP(On-Line Transaction Processing)应用中,读写不冲突是非常重要的,极大的提高了系统的并发性能。快照读与当前读在 MVCC 并发控制中,读操作可以分为两类: 快照读(Snapshot Read)与当前读 (Current Read)。

2020-08-10 19:45:22

MySQL - 解读MySQL事务与锁机制

文章目录事务及其特性一致性原子性隔离性持久性并发事务控制单版本控制-锁多版本控制-MVCC原子性背后的技术持久性背后的技术隔离性背后的技术一致性背后的技术MVCC原理快照读与当前读MVCC 多版本实现事务及其特性大家都知道 ACID (原子性、一致性、隔离性和持久性)一个逻辑工作单元要成为事务,在关系型数据库管理系统中,必须满足 4 个特性原子性 : 事务的所有操作,要么全部完成,要么全部不完成,不会结束在某个中间环节一致性 : 事务开始之前和事务结束之后,数据库的完整性限制

2020-08-10 00:37:11

MySQL - 存储引擎初探

文章目录存储引擎概述存储引擎概述存储引擎是 MySQL 中具体与文件打交道的子系统,它是根据 MySQL AB 公司提供的文件访问层抽象接口定制的一种文件访问机制,这种机制就叫作存储引擎 。常用的存储引擎:有古老的 MyISAM、支持事务的 InnoDB、内存类型的 Memory、归档类型的 Archive、列式存储的 Infobright,以及一些新兴的存储引擎,以 RocksDB 为底层基础的 MyRocks 和 RocksDB,和以分形树索引组织存储的 TokuDB, 以及国产的分布式存储引

2020-08-09 22:44:30

MySQL - 体系结构初探

文章目录数据库MySQL 数据库的体系结构数据库根据数据库的类型或者功能或者数据库的发展方向,可以把数据库大致分成两类关系型数据库非关系性数据库,或者叫 SQL 和 NoSQL当然了关系型数据库又可以分为传统的关系型数据库和 NewSQLMySQL 数据库的体系结构...

2020-08-09 21:50:37

MySQL- In 和 Exists的优化案例讲解

文章目录Demo Tablein的逻辑优化原则exists的逻辑Demo TableCREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_a` (`a`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;create table

2020-08-08 23:20:11

MySQL - Join关联查询优化 --- NLJ及BNL 算法初探

mysql的表关联常见有两种算法Nested-Loop Join 算法Block Nested-Loop Join 算法

2020-08-08 16:47:17

MySQL - 分页查询优化的两个案例解析

文章目录Table日常场景Table还是我们那个老表CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄', `position` varchar(20) NOT NULL DEFAULT '' COMMENT

2020-08-08 09:10:31

MySQL - order by和 group by 优化初探

文章目录DB VersionTable案例一DB Versionmysql> select version();+-----------+| version() |+-----------+| 5.7.28 |+-----------+1 row in setmysql> TableCREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) N

2020-08-03 17:09:03

MySQL - 使用trace工具来窥探MySQL是如何选择执行计划的

文章目录Pre演示Demotrace工具使用Trace结论分析Pre有的时候,明明某个字段有索引,那我们一般认为走索引好一些,结果mysql走了全表扫描 , 那怎么看mysql是怎么选择的呢? 来 今天来看一看MySQL是如何循着合适的执行计划的?演示Demo还是那个老表 employeesCREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DE

2020-08-03 01:18:42

MySQL - 索引下推 Index Condition Pushdown 初探

文章目录PreICP索引下推的含义范围查找为啥不行?PreMySQL - 索引优化案例实操 中 关于 【Case 3 : like KK% 一般情况都会走索引】 ,我们来详细聊一聊ICP我们说like KK% 一般情况下会走索引,这是为何呢? 结合B+索引树, like KK% 能保证有序吗?其实MySQL对like KK% 这种情况使用到了索引下推优化 Index Condition Pushdown,ICP索引下推的含义CREATE TABLE `employe

2020-08-03 00:08:32

MySQL - 索引优化案例实操

文章目录DB VersionTableDB Versionmysql> select version();+------------+| version() |+------------+| 5.7.29-log |+------------+1 row in set默认隔离级别 RR 可重复读TableCREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar

2020-08-02 22:57:31

MySQL - 共享锁和排它锁初探

文章目录共享锁 vs 排他锁SELECT ... FOR UPDATE 排它锁SELECT ... LOCK IN SHARE MODE 共享锁共享锁 vs 排他锁锁定某一行还可以用lock in share mode(共享锁) 和for update(排它锁)SELECT … FOR UPDATE 排它锁对所在行加上了一把排它锁 x锁【实验步骤】session1session2begin 模拟开启事务select * from countr

2020-08-02 20:29:44

MySQL - 无索引行锁升级为表锁

文章目录示例SELECT ... LOCK IN SHARE MODE & SELECT ... FOR UPDATE示例mysql> desc country;+-------------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-------------+---

2020-07-31 19:31:19

MySQL - 锁等待及死锁初探

版本信息mysql> select version();+-----------+| version() |+-----------+| 5.7.28 |+-----------+1 row in setmysql> MySQL 行锁分析mysql> show status like'innodb_row_lock%';+-------------------------------+--------+| Variable_name .

2020-07-31 15:14:05

MySQL - 践行索引优化

文章目录PreTable DemoPreMySQL - Explain深度剖析Table DemoCREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄', `position` varchar(20) NOT

2020-07-21 23:15:46

MySQL - Explain深度剖析

文章目录官方文档Explain介绍测试数据官方文档https://dev.mysql.com/doc/refman/5.7/en/explain-output.htmlExplain介绍使用EXPLAIN关键字可以模拟优化器执行SQL语句,分查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL。如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中 。测试数据

2020-07-20 23:08:53

MySQL - MySQL不同存储引擎下索引的实现

文章目录PreMyISAM索引实现非聚簇(非聚集)索引索引原理图InnoDB索引实现聚簇(聚集)索引索引原理图为什么非主键索引结构叶子节点存储的是主键值?(一致性和节省存储空间)PreMySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,我们这里主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。MyISAM索引实现非聚簇(非聚集)索引我们建立一个myIsam存储引擎的表,看磁盘上的文件存储如下我这个是8.0的MYSQL, 5.7版本 不是sdi结尾的文

2020-07-19 17:08:42

MySQL - 剖析MySQL索引底层数据结构

文章目录PrePre什么是索引?通俗的说就是为了提高效率专门设计的一种 排好序的数据结构。怎么理解呢?举个例子哈如上数据 ,假设有个SQLselect * from t where col2 = 22 ;

2020-07-18 16:51:14

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 精彩红人
    精彩红人
    发布高质量Blink获得高赞和评论,进入精彩栏目即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 博客之星-入围
    博客之星-入围
    授予每年博客之星评选结果第21-200名的用户
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享达人
    分享达人
    成功上传6个资源即可获取