mysql
文章平均质量分 80
butt168
这个作者很懒,什么都没留下…
展开
-
浅谈mysql的mvcc机制
这里写目录标题前言mvccreadviewRead Committed隔离级别定义RR定义前言mvccMVCC(Mutil-Version Concurrency Control),就是多版本并发控制。简单来说,每条数据其实都有两个隐藏字段,一个是trx_id,一个是roll_pointer,trx_id就是最近一次更新这条数据的事务id,roll_pointer就是指向更新这个事务之前生成的undo log(这里不展开叙述)下面举个栗子:事务A在之前插入了一行数据,值是A,事务已提交。会出现原创 2021-10-06 23:04:04 · 161 阅读 · 0 评论 -
浅谈mysql的执行计划是何方神圣
前言平时我们优化sql,通过explain,分析得到的执行计划研究透彻,知道每个执行计划在底层是如何执行的,那么再进行相关的调优就轻而易举了。所谓的执行计划,落实到底层,无非就是先访问哪个表,用哪个索引还是全表扫描,拿到数据之后如何去聚簇索引回表,是否要基于临时磁盘文件做分组聚合或者排等序等等基本介绍接下来我们分析一下执行计划里包含的各个字段都是什么意思字段名意义id每个select都会对应一个id,一个复杂的sql里有多个select,那么有可能出现多条执行计划sele原创 2021-07-11 00:25:43 · 162 阅读 · 0 评论 -
浅谈mysql的成本及如何选择执行计划
这里写目录标题前言什么是‘成本’怎么计算全表扫描索引查询总结前言在实际使用过程中,或许会遇到一个问题,在执行单表查询或者多表关联查询,似乎有多重执行计划可以选择,使用索引A?还是索引B?还是都不用,直接上全表扫描?到底使用哪种方式,今天我们就来探讨一下什么是‘成本’跑一个SQL语句,一般成本是两块从磁盘读数据到内存就是IO成本,而且MySQL里都是一页一页读的,读一页的成本的约定为1.0对数据进行运算,验证是否符合条件,耗费CPU资源的,属于CPU成本,一般约定读取和检测一条数据是否符合条件的原创 2021-07-03 12:22:43 · 259 阅读 · 0 评论 -
浅谈如何设计索引
这里写目录标题前言如何设计索引设计原则保证sql中尽量多的字段能用上索引尽量使用那些基数比较大的字段使用前缀索引索引字段不使用函数主键使用自增的前言我们在设计索引时,通常应该考虑哪些因素,给哪些字段建立索引,如何建立索引,建立好索引后应该如何使用才是最合适的,下面篇幅会简单介绍下我的经验(文字比较多哈,但也会穿插一些栗子哦)如何设计索引在开发角度来说,接到一个需求,针对业务需求建立好一张表的结构之后,就知道这个表有哪些字段,每个字段是什么类型的,会包含哪些数据。我们要考虑第一点,就是未来我们对表进行原创 2021-06-19 23:47:20 · 694 阅读 · 0 评论