mysql
文章平均质量分 71
zhenghehehe
这个作者很懒,什么都没留下…
展开
-
MYSQL:MVCC多版本并发控制机制
mvcc是通过undo日志版本链与read view机制来实现的 每个表都有两个隐藏字段隐藏字段trx_id和roll_pointer 事物id和指针 事务开启后 执行的insert update delete才会开启一个事务id 在可重复读和读已提交模式下read view机制不同 可重复读:开启事务之后 执行第一次查询获取的read view 一直使用这一个 一直到事务结束查询结果也不会发生变化 读已提交:开启事务之后 每次执行查询获取新的read view read view规则 ...原创 2021-11-17 16:47:40 · 594 阅读 · 0 评论 -
SQL底层执行原理
查询缓存: 每次将查询语句作为key,结果作为value来存储起来,类似于map结构 比较鸡肋,适合于万年不变的数据。 .Qcache_hits:表示有多少次命中缓存。我们主要可以通过该值来验证我们的查询缓存的效果。数字越大,缓存效果越理想。 .(cache_free blooks:.表示查询缓存中目前还有多少剩余的blocks,如果该值显示较大,则说明查询缓存中的内存碎片过多了,可能在一定的时间进行整理。Ccache_free menory:查询缓存的内存大小,通过这个参数可以很清晰的知...原创 2021-10-28 13:52:28 · 191 阅读 · 0 评论 -
explain
使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 在select语句之前增加explain 关键字,MySQL会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL注意:如果from中包含子查询,仍会执行该子查询,将结果放入临时表中 EXPLAIN select * from table 变种 1)EXPLAIN EXTENDED select * from table显示filtered 2) EXPLAIN PARTI...原创 2021-10-14 17:42:31 · 65 阅读 · 0 评论 -
mysql数据结构和算法
索引是帮助mysql高效获取数据的排好序的数据结构 为什么数据结构不是二叉树? 因为mysql数据存储在硬盘中,每次插入数据都会读写硬盘数据,二叉树原则是右边比父节点大,左边比父节点小,如果索引建立在自增ID上,查找ID为10w的数据,会查找10w次,查询效率慢。 为什么数据结构不使用红黑树? 红黑树又叫平衡二叉树,是一种二叉树的扩展,在数据量大的情况下依旧无法承载索引所需要提供的查询效率,从根节点会一直找到对应的叶子节点。 B-Tree 叶节点具有相同的深度,叶节点的指针为空 所有索引元素不原创 2021-10-12 16:44:20 · 119 阅读 · 0 评论