有同学在一次代码调整中,mysql “insert ignore into” 错误改为 “insert into”,导致线上问题
insert ignore into 印象中我们通常用来处理uk重复插入异常,还有另一个坑,...
汪明鑫
2年前 (2023-07-24) 577浏览 0评论
0喜欢
如果可以使用被驱动表的索引,join还是有优势的,让驱动表走全表扫描,而被驱动表是走树搜索。
否则就是驱动表全表扫 + 被驱动表全表扫,那就不要用join。
使用join的时候,尽量使用小表作为驱动表。
join会借助join buffer做数据关联,join buffer不够...
汪明鑫
3年前 (2022-03-14) 749浏览 0评论
3喜欢
查询过程中访问到的对象才会加锁,而加锁的基本单位是next-key lock(前开后闭);
等值查询上MySQL的优化:索引上的等值查询,如果是唯一索引,next-key lock会退化为行锁,如果不是唯一索引,需要访问到第一个不满足条件的值,此时next-key lock会...
汪明鑫
3年前 (2022-03-01) 896浏览 0评论
0喜欢
每创建一个表,就会基于主键建立一个主键索引,就是一个B+树
每多创建一个索引,就会多生成一个索引树
数据和索引就在一起,因此称为聚集(簇)索引
B+的叶子节点才有数据,可以理解非叶子节点都是起到目录作用
主键索引树和普通索引树的区别就是普通索引树叶子节点是包含主键,...
汪明鑫
3年前 (2022-03-01) 834浏览 0评论
2喜欢
redo log
innodb引擎专有的重做日志
事务持久化,这也是为啥说myisam不支持事务,innodb支持事务
redo log是先落日志再写磁盘,类似基于内存整个小本本,每次事务来了,记个账,选择合适的时机再刷到磁盘里
redo log分为两个阶段: ...
汪明鑫
3年前 (2022-03-01) 736浏览 0评论
0喜欢
有一个场景:每个赛季用户都有自己的积分,积分前100的有一个榜单top100
榜单展示按积分由大到小
这样会有个问题,积分相同的谁排前谁排后,比如100名和101名积分相同怎么整?
上了榜单多有排面
因此相同积分的,谁先达到该积分谁在前面 update_time
即我们的排序策...
汪明鑫
5年前 (2020-05-29) 874浏览 0评论
0喜欢
伪代码:
Person personFromDb = personMapper.selectPerson(person.getUserId);
if(personFromDb == null){
int rst...
汪明鑫
5年前 (2020-05-07) 773浏览 0评论
0喜欢
首先来聊一下索引的分类[按索引的数据结构分]:
分类
特性
B+tree 索引
具体的结构下文会重点讲解,此处提一下的是,同样是B-tree 索引,不同的存储引擎使用也是有所差异的,例如,MyISAM 使用前缀压缩技术使得索引更小,但InnoDB 则...
曹绍军
5年前 (2020-02-22) 1224浏览 0评论
1喜欢
该篇文章罗列了一些面试里面会问到的一些高频mysql问题。
索引:
1 讲索引的时候经常提到I/O密集型的查询会特殊一些,不明白I/O 密集型的聚体影响。
2 为什么要最左匹配原则?【索引的使用注意】
3 索引是如何工作得?
4 索引有哪些?各自特点啥?
5 索引的...
曹绍军
5年前 (2020-02-21) 959浏览 3评论
0喜欢
定长字符串 vs 变长字符串
varchar存放变长字符串,char存放定长字符串
The CHAR and VARCHAR types are declared with a length that indicates the maximum number o...
汪明鑫
5年前 (2019-12-23) 908浏览 0评论
0喜欢