被问到Mysql自增主键为啥不是连续的,我又懵了

面试官:mysql自增主键用过吧?小菜:用过,建表时指定自动递增就行,然后插入数据就可以不用指定主键的值了面试官:不错,那你知道Mysql自增主键是严格递增的吗?小菜:肯定是递增的呀,诶,好像不对,也有见过不是连续的面试官:那你知道为什么会出现不连续的呢?小菜:emmm......这个岗位可能不是很适合我面试官:那今天就面到这里,还记得进来的路吧......一、自增主键自增主键采用数字型,占用空间

- 阅读全文 -

Redis与Mysql双写如何保证一致性?

前言又是redis,又是mysql的,还有双写,一致性,乍一看,好像很高级的样子,这也是大厂比较热门的面试题。当然不仅是面试吧,实际开发中,这也是一个非常常见的场景。这道题抛开redis和mysql,其实就是在问缓存和数据库在双写的场景下,是如何保证数据一致性的?表急,跟着我的思路一起来捋一捋这个问题。说方案之前,先说说一致性和几种经典的缓存模式一致性一致性一般指分布式系统中,多个节点的数据的值是

- 阅读全文 -

你不得不知道的Mysql间隙锁

前言巴纳姆效应:人很容易相信一个笼统的一般性的人格描述,并认为他特别适合自己并准确的揭示了自己的人格特点,即使内容空洞。注:这真的是一篇很重要的文章,这不是心理暗示思考问题InnoDB 中的加锁操作如果没有使用到索引,会怎样?在RR事务隔离级别下,在事务A里读取某个范围内的记录,这时事务B在该范围里插入了新的记录,事务A再次读取该范围的记录就会产生幻行。就算我们给范围内的所有记录都加上行锁,也无法

- 阅读全文 -

Mysql | explain 执行计划详解

explain的作用查看sql的执行计划,帮助我们分析mysql是如何解析sql语句的查看表的加载顺序查看sql的查询类型哪些索引可能被使用,哪些索引实际被使用表之间的引用关系一个表中有多少行被优化器查询其他的额外信息执行计划字段列名说明id执行编号,标识select所属的列。如果语句中没有子查询或关联查询,只有唯一的select,每行都将显示1。否则,内层的select语句会按顺序编号,对应其在

- 阅读全文 -

聊不完的Mysql优化

Mysql优化是一个万年不变的话题,难道是因为mysql太烂了,所以需要不断的优化?当然不是了,无数的开发者都在用,怎么可能烂。废话不多说,直接总结百万级别数据库的优化方案,哈哈,你数据库要是只有几万几十万的数据貌似是不需要怎么优化的。sql的软优化不管怎么优化,本质上都是往如何更好的利用索引这个方向靠拢。为啥?可以参考一下我的另一篇文章:索引的数据结构 创建索引 对于查询的优化,最重要的

- 阅读全文 -