合集-MySQL

摘要:在SQL中,是否需要将子查询设置为AS temp或其他别名,取决于子查询的具体用途和上下文。以下是一些常见的场景,帮助你判断何时需要使用别名,何时不需要: 1. 作为表的子查询(需要别名): 需要别名的情况:当子查询直接用于FROM子句中,作为一个虚拟表使用时,必须为子查询设置一个别名。这是因为SQ 阅读全文
posted @ 2024-08-13 00:21 Duancf 阅读(14) 评论(0) 推荐(0) 编辑
摘要:第一阶段:写入redolog文件,并把redolog的提交状态设置为prepare状态 第二阶段:写入binlog文件,完成之后,把redolog的提交状态设置为commit 为什么两阶段提交能保证一致性 如果第一阶段写redolog的时候崩溃,什么都没写入,这个事务就丢失了 如果第二阶段写入bin 阅读全文
posted @ 2024-08-19 19:02 Duancf 阅读(20) 评论(0) 推荐(0) 编辑
摘要:Mysql redolog的刷盘时机 mysql正常关闭的时候 redolog buffer写入超过一半的时候 事务提交的时候 0每次提交事务,redolog留在buffer中不写入磁盘 1每次提交事务,redolog写入磁盘 2每次提交事务,redolog写入操作系统的文件缓存页面 后台线程每隔一 阅读全文
posted @ 2024-08-19 19:25 Duancf 阅读(32) 评论(0) 推荐(0) 编辑
摘要:执行一条 select 语句,期间发生了什么? 学习 SQL 的时候,大家肯定第一个先学到的就是 select 查询语句了,比如下面这句查询语句: // 在 product 表中,查询 id = 1 的记录 select * from product where id = 1; 但是有没有想过,My 阅读全文
posted @ 2024-08-22 17:05 Duancf 阅读(86) 评论(0) 推荐(0) 编辑
摘要:MySQL中一个B+树能存储多少数据 MySQL中InnoDB页的大小默认是16k。也可以自己进行设置。(计算机在存储数据的时候,最小存储单元是扇区,一个扇区的大小是 512 字节,而文件系统(例如 XFS/EXT4)最小单元是块,一个块的大小是 4KB。 InnoDB 引擎存储数据的时候,是以页为 阅读全文
posted @ 2024-09-04 22:53 Duancf 阅读(70) 评论(0) 推荐(0) 编辑
摘要:![image](https://img2024.cnblogs.com/blog/1533409/202409/1533409-20240906222156759-2134473423.png) 阅读全文
posted @ 2024-09-06 22:21 Duancf 阅读(1) 评论(0) 推荐(0) 编辑
摘要:慢查询可能的原因 SQL 没加索引 很多时候,我们的慢查询,都是因为没有加索引。如果没有加索引的话,会导致全表扫描的。因此,应考虑在 where 的条件列,建立索引,尽量避免全表扫描。 反例: select * from user_info where name ='捡田螺的小男孩公众号' ; 正例 阅读全文
posted @ 2024-09-07 20:48 Duancf 阅读(23) 评论(0) 推荐(0) 编辑
摘要:临键锁 阅读全文
posted @ 2024-09-07 20:11 Duancf 阅读(3) 评论(0) 推荐(0) 编辑
摘要:字节面试题 在可重复隔离级别下,这种情况会发生什么? 答案:死锁 下面我们用一个具体的例子来展示: 首先我们有一张这样的表 下面我们来执行一些语句, 可以看到结果输出了,检测到发生了死锁 Deadlock found when trying to get lock; try restarting t 阅读全文
posted @ 2024-09-09 22:24 Duancf 阅读(7) 评论(0) 推荐(0) 编辑
摘要:为什么主键索引最好是有序递增的 移动元素。如果主键不是有序递增的,比如一个叶子结点的存储范围是1-10现在已经存储了2-9,现在我们想要插入数据1就必须要把2-9的数据向后移动。 更多的IO。如果主键不是有序递增的,我们可能需要经常访问那些很久之前访问过的节点,甚至是已经被刷回磁盘的页,这样会造成很 阅读全文
posted @ 2024-09-10 13:49 Duancf 阅读(126) 评论(0) 推荐(0) 编辑
摘要:https://www.codedump.info/post/20220807-weekly-23/#概论 阅读全文
posted @ 2024-09-10 20:28 Duancf 阅读(5) 评论(0) 推荐(0) 编辑
摘要:在 MySQL 中,存储的编码格式与读取的编码格式是可以不同的。如果你的表中存储的是 UTF-8 编码的数据,但客户端想要以 GBK 编码来读取数据,可以通过调整 MySQL 的字符集设置来实现。以下是几种常见的解决方案: 1. 设置客户端连接的字符集 MySQL 提供了在客户端和服务器之间指定字符 阅读全文
posted @ 2024-09-17 22:31 Duancf 阅读(274) 评论(0) 推荐(0) 编辑
摘要:limit深分页为什么会变慢? 先看下表结构: CREATE TABLE account ( id int(11) NOT NULL AUTO_INCREMENT COMMENT '主键Id', name varchar(255) DEFAULT NULL COMMENT '账户名', balanc 阅读全文
posted @ 2024-09-17 21:53 Duancf 阅读(37) 评论(0) 推荐(0) 编辑
摘要:使用版本号 在 MySQL 中,可以通过使用版本号(Version)来实现乐观锁。一种常见的实现方式是在表中增加一个版本号字段,每次更新数据时,都需要比对版本号。如果版本号一致,表示可以进行更新操作,否则表示其他事务已经修改了数据,需要进行相应的处理。 下面是一个简单的示例,演示如何在 MySQL 阅读全文
posted @ 2024-09-17 13:51 Duancf 阅读(86) 评论(0) 推荐(0) 编辑
摘要:简单嵌套循环算法:SNLJ (simple-nested-loop-join) 当我们的join连接字段没有建立索引或者索引失效,并且数据量较小的情况下,可能会使用此算法优化查询,本质上就是循环匹配,连接比如有A表,B表,两个表JOIN的话会拿着A表的连表条件一条一条在B表循环,匹配A表和B表相同的 阅读全文
posted @ 2024-10-01 16:53 Duancf 阅读(15) 评论(0) 推荐(0) 编辑
摘要:数据的位置可能发生改变,例如在页分裂,数据插入的时候,如果存储的是数据的位置,那么要经常修改叶子结点的值来保证数据位置的正确性。 主键不会因为数据的插入而改变,比较稳定,所以我们选择存储主键 优化查询,如果要查的数据就是主键,那就可以直接查到,否则还需要解析数据的过程。 阅读全文
posted @ 2024-10-01 17:04 Duancf 阅读(15) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示