
Mysql
文章平均质量分 77
古柏树下
努力吧少年
展开
-
记SQL插入emoji成功,但是程序插入失败问题
Cause: java.sql.SQLException: Incorrect string value: emoji入库失败,但是字符集设置已经为utf8mb4,控制台sql插入成功但是程序插入失败。到底是任性的泯灭,还是道德沦的沦丧,请和我一起看下去。原创 2022-12-07 15:46:54 · 809 阅读 · 1 评论 -
锁竞争导致的慢sql分析
这是由于两次更新user表过程中,使用了一个事务A,导致事务B来获取db行锁的时候,被事务A阻塞。但在被事务A阻塞前,已经获取到了redis锁,所以导致事务A在获取第二次更新的redis锁的时候被阻塞,造成了死锁。声明式事务使用很简单,可以自动帮我们进行事务的开启、提交以及回滚等操作,但是事务的颗粒度是整个方法,无法进行精细化控制。由于这里事务里面嵌套了redis锁,并且涉及到更新表,可能会有死锁的情况。最终导致,redis锁超时,日志方面体现为慢sql,因为事务B的sql等待了三秒才拿到锁。原创 2022-11-16 14:05:09 · 729 阅读 · 0 评论 -
你插入MySQL的数据真的存到表里了么?
现在有这么一个问题:当你执行一条insert语句之后,插入的数据就已经保存在磁盘中了么?答案是不一定 ,那是为什么呢?首先来了解一下MySQL在InnoDB存储引擎中,数据是怎么存储的。1. InnoDB数据存储单元同大多数数据库一样,InnoDB有页(Page)的概念(也可以称为块),页是InnoDB磁盘管理的最小单位。在InnoDB存储引擎中,默认每个页的大小为16 KB。而从InnoD...原创 2020-04-28 09:19:54 · 1336 阅读 · 0 评论 -
什么是索引下推
概述索引条件下推优化(Index Condition Pushdown (ICP) )是MySQL5.6添加的,用于优化数据查询。不使用索引条件下推优化时存储引擎通过索引检索到数据,然后返回给MySQL服务器,服务器然后判断数据是否符合条件。当使用索引条件下推优化时,如果存在某些被索引的列的判断条件时,MySQL服务器将这一部分判断条件传递给存储引擎,然后由存储引擎通过判断索引是否符合MySQ...原创 2019-12-10 10:27:08 · 37097 阅读 · 19 评论