mysql
文章平均质量分 93
小咸鱼的技术窝
独立全栈开发工程师一枚,熟读JDK、SSM、SpringCloud生态源码。
个人产品:www.xxyfy.cn
微信公众号:小咸鱼的技术窝
个人微信:zh114418
展开
-
盘点编写 sql 上的那些骚操作(针对mysql而言)
咋说呢,最近交接了一个XXX统计系统到我手上,点进去系统主页,看了下实现了哪些功能,页面看着很简单就那么几个统计模块,本来想着就那么几张报表的crud来着,看了下代码也还好体量也不大,于是乎美滋滋的随波逐流了,后来出现了一个bug说什么数据统计的不对,想着快速给他改掉,顺着控制层,一路摸索到mapper这,点进xml文件一看,好家伙我尼玛一个统计sql 400多行,故事的正片由此开始!原创 2022-11-11 11:05:09 · 705 阅读 · 0 评论 -
一个小小的乐观锁、悲观锁也能扯这么多
前言:我们一个普通的下单接口通常都包含如下三步操作,如果下单不成功的话将会返回给用户一个提示下单失败。查询库存(select stock from xx where id = xx)扣减更新库存(update xx set stock = stock - 1 where id = xx)生成订单如果是只有一个用户来请求下单接口,那么上述的操作毫无疑问是一定正常的,可是真实环境中可是处处存在并发的,如果此时库存数量为1,在高并发的情况下面用户一、二都查询到了库存,然后都来扣减库存那么会导致库存数量原创 2021-04-19 20:52:26 · 205 阅读 · 0 评论 -
mysql事务隔离级别实现原理全面解读?
先后开启事务一、事务二,事务一中可以查到的数据(id=1),事务二可以查到的数据(id=1) ,然后事务一更新 id =1 的数据,且插入 id =3 的数据,并且提交事务,事务二接着查数据,执行多少遍结果都是只能查到(id=1)的数据。先后开启事务一、事务二,事务一查询 id 为 3 的数据,查到结果如下图一,然后切换事务二查 id 为 3 的数据,查到的结果和下图一一致,紧接着事务一执行下图一中的更新操作,并且提交事务一,事务二接着查 id 为 3 的数据,查到的结果依然和下图一一致。原创 2021-03-23 21:35:20 · 1538 阅读 · 1 评论 -
你真的了解mysql索引吗?还是太年轻
探究一个问题:mysql的innodb引擎下面,索引是个什么数据结构?答:说b树也对,毕竟事实摆在那里。但是b树的结构却又与mysql中索引的特性不相符,这就很奇怪了一方面索引是b树结构,但是又不符合b树的特性。答:严谨点来说索引数据结构应该是b+树,mysql的索引是在b树的基础上面演变过来的。官网中有原话的哦b+树特点(针对普通索引建立的b+树来说)节点是排好序的一个节点可以存多个元素非叶子节点的主键都冗余了一份在叶子节点上面叶子节点间的连接是双向指针故b+树大概长成这样原创 2021-03-20 10:15:57 · 272 阅读 · 1 评论 -
mysql中的各种索引大总结
文章目录为啥不用二叉搜索树?为啥不用平衡二叉(avl)树?为啥不用b-树?为啥用b+树?(重点)索引聚簇索引聚簇索引的缺点大家都知道mysql索引底层使用的是b+树的数据结构,树有这么多种,那为啥就选择b+树呢?那就从为啥使用b+树开始,到分析其原理的思路一步步分析吧。为啥不用二叉搜索树?定义:1:非空左子树的所有键值小于其根结点的键值。2:非空右子树的所有键值大于其根结点的键值。3:左、右子树都是二叉搜索树。就是左节点<根节点<右节点。看下图树太高了。查询效率太低,故不推荐。原创 2020-09-12 13:36:44 · 6576 阅读 · 2 评论