![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 65
深入理解mysql
有温度的代码
我本微末凡尘,却也心向天空
展开
-
为什么唯一索引能保证数据唯一?
加唯一索引可以保证数据并发写入时数据唯一,而且最省事省心。数据库通过引入一层buffer pool内存来提升读写速度,普通索引可以利用change buffer提高数据插入的性能。唯一索引会绕过change buffer,确保把磁盘数据读到内存后再判断数据是否存在,不存在才能插入数据,否则报错,以此来保证数据是唯一的。更改隔离级别为串行化,也能实现并发写入时数据唯一。原创 2024-07-13 10:08:46 · 298 阅读 · 0 评论 -
Mysql前奏
点击上方关注 “设为“星标”,和你一起掌握更多数据库知识。转载 2023-05-06 00:15:00 · 1745 阅读 · 0 评论 -
mysql索引下推
如果你去网上搜很多人举例子这样建索引,然后告诉你这就是索引下推的时候,你可以尽情的喷他了,我们说索引下推一定是在联合索引的情况下,根据联合索引本身就有的数据直接做一次过滤,而不用再进行多次无用的回表再到Server层进行过滤,这一点你要很明确才行。对比这两个流程就会很明显的发现,使用ICP之后我们就是简单的通过联合索引中本来就有的数据直接过滤了,不需要再查到一堆无用的数据去Server层进行过滤,这样的话减少了回表的次数和返回的数据,IO次数减少了,对性能有很好的提升。你会发现,我靠,怎么还有索引下推?原创 2023-05-01 01:00:00 · 1743 阅读 · 0 评论 -
Mysql中Nested-Loop Join原理
join 主要有 Nested Loop、Hash Join、Merge Join 这三种方式,我们这里只讲最普遍的,也是最好的理解的 Nested Loop,Nested Loop 翻译过来就是嵌套循环的意思,那什么又是嵌套循环呢?嵌套大家应该都能理解,就是一层套一层;那循环呢,你可以理解成是 for 循环。原创 2023-04-27 13:19:54 · 1379 阅读 · 0 评论 -
sql查询是否存在从count改为limit
多次REVIEW代码时,发现如现现象:业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及代码写法如下。SQL不再使用count,而是改用LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了 业务代码中直接判断是否非空即可。原创 2023-04-27 08:55:13 · 1732 阅读 · 0 评论