![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 85
ayu_programer
不积硅步,无以至千里
展开
-
MYSQL篇--锁机制高频面试题
常规回答:死锁它其实是两个或者多个事务在同一个资源上相互占用,同时并请求锁定对方的资源,从而导致恶性循环的现象程序再并发存取多个表的时候,尽量让他们以相同的顺序来访问表在同一个事务中,尽可能做到一次锁定所需要的所有资源,来避免死锁问题对于比较容易产生死锁的部分,可以尝试升级锁的颗粒度,比如使用表级锁,或者分布式事务锁,或者使用乐观锁间隙锁 是 Innodb 在 RR(可重复读) 隔离级别 下为了解决 幻读问题 时引入的锁机制。原创 2024-01-11 23:23:25 · 1557 阅读 · 0 评论 -
MYSQL篇--事务机制高频面试题
四大特性也就是原子性,一致性,隔离性,持久性首先我们看原子性说白了就是当前事务的操作要么同时成功,要么同时失败,而原子性其实是由undo log日志来保证的(这里简单介绍下undo log,undo log他其实是一种用于撤销回退的日志,也就是说在事务没提交之前 mysql会先记录更新前的数据到undo log日志文件中,当事务回滚时,可以用undo log来进行数据回滚,其实说白了undolog就是用执行的反向sql语句来进行回滚)接着看隔离性。原创 2024-01-10 23:34:36 · 1212 阅读 · 0 评论 -
MYSQL篇--索引高频面试题
1最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、 3 and d = 4如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整2 =和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式。原创 2024-01-08 23:09:15 · 1372 阅读 · 0 评论 -
MYSQL篇--sql优化高频面试题
其实对于性能比较低的sql语句定位,最重要的也是最有效的方法其实还是看sql的执行计划,而对于mysql来说 它其实也是提供了explain这样的命令可以便于查询sql的执行计划,并且通过执行计划 我们能够看到sql的执行情况,包括是否使用索引,使用了什么样的索引,以及使用索引的一些相关信息对于执行计划来说 它里面有几个非常关键的字段,比如说有,这个字段就表示是否用了索引,如果没用索引,key字段就为null;原创 2024-01-07 22:26:52 · 3490 阅读 · 0 评论 -
索引失效场景及原理剖析
今天给大家介绍了 6 种会发生索引失效的情况:1.当我们使用左或者左右模糊匹配的时候,也就是 like %xx 或者 like %xx%这两种方式都会造成索引失效;2.当我们在查询条件中对索引列使用函数,就会导致索引失效。3.当我们在查询条件中对索引列进行表达式计算,也是无法走索引的。4.MySQL 在遇到字符串和数字比较的时候,会自动把字符串转为数字,然后再进行比较。转载 2022-10-07 19:26:35 · 561 阅读 · 0 评论 -
大厂面试题:聊聊索引设计的原则以及索引失效场景有哪些
在学习设计索引的原则之前需要了解到 Mysql针对主键索引会维护一个B+树,也称之为聚簇索引。针对非主键(一般都是建立的联合索引)会对索引字段依次排序,然后从第一个字段值开始比较,如果相同就针对下一个字段值进行比较,依次类推。另外一点就是聚簇索引的B+树保存的是一行记录的所有信息,而非聚簇索引仅仅只会保存索引字段值和主键字段值。接着我们可以回归正题首先看第一个问题一、设计索引的原则是什么?1.主键索引首先索引中最常见的是主键索引,对于主键索引需要注意的就是设计主键索引时一定要是自增的,不建议使用U原创 2021-07-12 21:29:14 · 904 阅读 · 0 评论 -
大厂面试题:bin log,redo log,undo log的区别
一、binlog1.什么是binlog?binlog 其实说白了就是记录数据库表结构和表表数据的变更,(比如 update/insert/delete/truncate),它不会记录select,因为select没有变化2.binlog长啥样?记录着每条变更的sql语句,还有txid–事务id[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jlaOQpsh-1626001953452)(C:\Users\Administrator\AppData\Roaming\Ty原创 2021-07-11 19:16:08 · 5064 阅读 · 1 评论 -
分析下Mysql子查询的各种情况及执行计划
文章目录前言sql场景举例sql 1sql 2sql 3前言之前已经学习了单表查询语句和多表关联于的执行原理,也熟悉了在生成具体执行计划的时候,是如何根据成本计算去选择最优执行计划的,今天再来分析下Mysql子查询的各种情况及执行计划sql场景举例sql 1select * from t1 where x1 = (select x1 from t2 where id =xxx)这个sql语句执行的时候,其实会被拆分为两部分,第一个步骤就是先执行子查询,也即是 sele.原创 2021-06-13 18:24:48 · 359 阅读 · 1 评论