随笔分类 -  mysql

摘要:一、什么是分布式事务 如今的系统复杂度都较高,为了解耦,很多系统都用了微服务架构,一个服务一套独立的DB,一个业务场景一般要多个服务协调,就会在多个数据库实例执行sql,如何保证各个库的数据一致性,就是分布式事务要解决的问题。分布式事务就是来保证处理不同数据库的业务操作的原子性,要么全执行、要么都不 阅读全文
posted @ 2022-04-04 22:46 hugeQAQ 阅读(370) 评论(0) 推荐(0) 编辑
摘要:一、jion执行流程 select * from t1 straight_join t2 on t1.a = t2.a 假设 两个表a上都有索引,且强制以t1作为驱动表 执行过程: 从t1中读取一行数据R1 去t2的a索引树上找a=R1.a的id t2回表获取R2于R1组成一个结果 重复步骤 sel 阅读全文
posted @ 2022-03-14 22:20 hugeQAQ 阅读(31) 评论(0) 推荐(0) 编辑
摘要:一、group by 执行过程 select a,count(*) as cnt from t group by a 假设a上面没有索引 执行过程: 创建临时表,有两个字段a,cnt 且a为主键 遍历表t,假设记录为R,查看临时表中,是否有a=R.a的记录,没有就新增一条,有就cnt+1 临时表按c 阅读全文
posted @ 2022-03-14 22:05 hugeQAQ 阅读(535) 评论(0) 推荐(0) 编辑
摘要:一、order by 执行流程 select a,b,c from t where a = xxx order by b limit 100 假设a上有索引、b上没有索引(全字段排序) 执行过程: 通过a的索引树,获取到a=xxx的id 通过id从聚簇索引中查询到a,b,c三个字段,放入内存sort 阅读全文
posted @ 2022-03-14 22:04 hugeQAQ 阅读(82) 评论(0) 推荐(0) 编辑
摘要:一、什么是事务 简单点说,就是一堆sql逻辑排列在一起,要么全部执行,要么都不执行。只有InnoDB存储引擎才支持事务(SHOW ENGINES;) 二、如何开启一个事务 show VARIABLES LIKE '%autocommit%' 查看是否已经开启自动提交,如果为YES,那么每执行一条sq 阅读全文
posted @ 2022-03-01 15:33 hugeQAQ 阅读(35) 评论(0) 推荐(0) 编辑
摘要:1、什么是mvcc MVCC(Multi-Vesion Concurrency Control),即多版本并发控制,意思就是一条数据有多个版本,查询的时候,通过一系列操作,能够在不加锁的情况下获取到满足事务隔离级别的数据,提高并发。 2、关键概念 readVeiw-读视图 用来描述哪些版本的数据可见 阅读全文
posted @ 2022-03-01 11:42 hugeQAQ 阅读(121) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示