MySQL
文章平均质量分 75
记录数据库的相关知识
木星mx
这个作者很懒,什么都没留下…
展开
-
count()函数的执行效率分析
count()函数应该怎么用?这篇文章可以帮助到你原创 2022-05-06 22:16:00 · 1119 阅读 · 1 评论 -
数据明明不多,为什么表占用很大
学习心得原创 2022-05-05 22:14:11 · 2485 阅读 · 0 评论 -
MySQL刷页的时机
在上一篇文章《MySQL的日志系统》中,介绍了redo log的作用。由于内存中的数据不稳定,为了数据安全,必须保证每次修改都能持久化到硬盘中,但是对于硬盘中的记录进行修改需要随机IO,效率非常低。为了解决这个问题,InnoDB引入了redo log,记录每次修改的页及具体修改的数据,对redo log的写是顺序写,比起随机IO要快上许多。InnoDB会在合适的时机再将这些修改后的数据真正持久化到硬盘中的数据库表中,这个合适的时机就是本文要探讨的问题了1. 合适的时机redo log写不下了。由于原创 2022-05-04 22:03:08 · 744 阅读 · 0 评论 -
唯一索引和普通索引应该怎么选?
1、查询对比假设有一个表T,有索引字段idx,执行下面的语句:select * from T where idx = 5;对于唯一索引,首先会根据B+Tree根节点进行搜索,定位到idx = 5这一条记录所在页并读入内存,由于字段值唯一,因此不需要对下一条记录进行判断,直接返回即可;对于普通索引,在拿到第一条idx = 5的记录后,还需要对后续记录进行判断,直到idx != 5对比两者的消耗,虽然普通索引需要对后续的记录进行判断,但由于读入的是一整个数据页,大部分情况下后续需要判断的记录也原创 2022-05-01 23:07:29 · 478 阅读 · 0 评论 -
快照在MVCC里是怎么工作的?
1、可重复读是怎么实现的?这是一道高频面试题,大多数人接触这个问题时都会被告知是在事务开始时,基于当前数据创建了一个临时视图,后面的读操作都是在这个视图上进行的。但这只是个笼统的说法或者说一个形象的比喻,没有涉及到视图的存在方式和实现原理,是应付不了面试官的。想要回答这个问题,就必须了解MVCC的工作机制2、MVCC维护快照视图的方法MVCC又叫多版本控制机制,顾名思义,它是用来控制多个版本的数据的。在MVCC的模型中,每一行数据都是有不同的版本的,事务根据数据的版本号可以确定哪个版本对当前事务是可原创 2022-04-29 19:03:16 · 379 阅读 · 0 评论 -
为什么有时候MySQL会放弃索引而选择全表扫描?MySQL之联合索引和覆盖索引
介绍MySQL联合索引和覆盖索引的联系及特点原创 2022-04-28 16:30:59 · 2144 阅读 · 0 评论 -
MySQL日志系统作用及同步问题
1、MySQL的日志分类MySQL的结构大体可以分成Server层和存储引擎层,Server层负责语法分析和逻辑处理,而存储引擎则负责数据的读取与写入。而日志也相对可以分两种,其中Server层的日志是固定的,而存储引擎有多种,有的存储引擎不具备日志,本次探讨的是使用Innodb存储引擎时的日志使用情况。binlog:又名归档日志,它是Server层的日志,用于记录逻辑修改,具体是记录修改了那一条记录的哪些字段;一共有两种模式,statement 格式的话是记sql语句, row格式会记录行的内容,记原创 2022-04-26 18:50:26 · 1016 阅读 · 0 评论 -
MySQL中的行锁
实验mysql行锁的加锁规则,版本为5.7.36原创 2022-04-19 21:57:57 · 8027 阅读 · 3 评论 -
sql运行问题
错误信息:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_f原创 2021-12-27 17:21:20 · 411 阅读 · 0 评论