mysql高级
文章平均质量分 73
MYSQL锁和存储引擎以及sql优化
程序员大航子
现就职于抖音集团 | 在南方发展的不正经东北人 | 互联网苟且偷生的JAVA开发 | 面试人数超200人 | 关注我不迷路
展开
-
MVCC是怎么一回事
首先,我们要知道MVVC是什么?我们都知道Mysql有四种事务隔离级别,读未提交、读已提交、可重复读和串行化,默认的是可重复读。所谓的事务隔离级别,其实就是不同事物在各自独立运行的时候所受其他事务的影响程度。读未提交:就是可以读取到其他事务还没有提交的数据。读已提交:就是可以读取到对方已经提交的数据。可重复读:就是在一个事务中,主要第一次读取出来的是一个数值,那么无论其他事务怎么修改,之后读取的还是这个数值。串行化:就是就算有新增的记录,你读取的还是不变(所谓幻读)。那么这是怎么实现的呢,串行化原创 2021-06-11 09:50:11 · 820 阅读 · 3 评论 -
Mysql - 聚簇索引和辅助索引
聚簇索引和辅助索引聚簇索引:数据是存放在叶子节点上。辅助索引:叶子节点上是不存放真实数据的,而是存放聚簇索引的索引值。首先说明一下,聚簇索引和辅助索引都是B+树的结构,区别就是叶子节点上是否存放真实的数据。那么为什么有这个区分呢。其实也很好理解,我们都知道,Mysql中的每一个索引都是一颗B+树来存储的,如果我每一颗B+树的叶子节点上面都存储数据的话,这个空间的要求是不是很大呢?当然,也可以所有的索引都不存储真实的数据,都存储指向真实数据的索引,这是MyISAM存储引擎的做法。在Innodb存储引擎原创 2021-06-07 12:26:50 · 2565 阅读 · 3 评论 -
Mysql的存储结构 - B+树
一次真实的美团面试经历那么,我们来看一次笔者的一次真实美团面试,面试官关于Mysql的数据结构的提问。面试官:Mysql的底层数据结构有了解过么?帅航:有,是B+树。面试官:为什么是B+树呢,刚才说到HashMap用的哈希表,红黑树查询效率都挺高的,为什么Mysql不用呢?帅航:哈希表的一次查询是很快,但是范围查询就很搓了;至于红黑树的话,由于二叉树的特性,数据量太大的情况下,树会很高,由于数据是存储在磁盘上的,这样与磁盘的IO会很频繁,是不可以接受的。所以选择B+树。面试官:那树高的原创 2021-06-07 00:39:15 · 5898 阅读 · 3 评论 -
mysql大数据量limit很慢问题解决
转载本文章请标明作者和出处本文出自《爱喝纯净水的南荣牧歌》开始行动,你已经成功一半了,献给正在奋斗的我们缘起最近公司在做一个项目,数据库选型为mysql8.0版本,做性能测试的时候王数据的业务表中导入了1088W的数据,然后通过添加索引等手段来进行性能优化,到最后发现当大分页查询的时候,系统慢的一批。具体有多慢,,,我查第10870000页数据的时候竟然要40多秒。SELECT id, device_id, device_name, group_name, group_id , regi.原创 2020-09-08 17:22:45 · 2469 阅读 · 4 评论 -
Mysql高级 | 【一】存储引擎和SQL的读取顺序
转载本文章请标明作者和出处本文出自《Darwin的程序空间》努力终将得到回报,你要始终坚信这一点文章目录Mysql整体分层存储引擎概念查看存储引擎查看当前使用的存储引擎MyISAM和InnoDB的区别SQL读取的顺序Mysql整体分层连接层与客户端进行连接的服务主要完成一些类似连接的处理,授权认证及相关的安全方案服务层提供和新的服务功能会对sql进行一些优化所...原创 2020-03-10 00:21:25 · 370 阅读 · 1 评论