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