有了这篇,面试官问MySQL,再也不虚了!(三)

目录

一、误删数据后除了跑路,还能怎么办?

1.1、误删行

1.2、误删库 / 表

1.3、延迟复制备库

1.4、预防误删库 / 表的方法

1.5、rm 删除数据

二、为什么还有kill不掉的语句?

2.1、直接在客户端通过 Ctrl+C 命令,是不是就可以直接终止线程呢?

2.2、两个关于客户端的误解

第一个误解是:如果库里面的表特别多,连接就会很慢。

三、我查这么多数据,会不会把数据库内存打爆?

3.1、全表扫描对 server 层的影响

3.2、全表扫描对 InnoDB 的影响

四、到底可不可以使用join?

4.1、Index Nested-Loop Join

4.2、Simple Nested-Loop Join

4.3、Block Nested-Loop Join

4.4、能不能使用 join 语句?如果要使用 join,应该选择大表做驱动表还是选择小表做驱动表?

五、join语句怎么优化?

5.1、Multi-Range Read 优化

5.2、Batched Key Access

5.3、BNL 算法的性能问题

5.4、BNL 转 BKA

5.5、扩展 -hash join

六、为什么临时表可以重名?

6.1、临时表的特性

6.2、临时表的应用

6.3、为什么临时表可以重名?

6.4、临时表和主备复制

七、什么时候会使用内部临时表?

7.1、union 执行流程

7.2、group by 执行流程

7.3、group by 优化方法 -- 索引

7.4、group by 优化方法 -- 直接排序

八、都说InnoDB好,那还要不要使用Memory引擎?

8.1、内存表的数据组织结构

8.2、hash 索引和 B-Tree 索引

8.3、为什么不建议在生产环境上使用内存表

8.3.1、内存表的锁

8.3.2、数据持久性问题

九、自增主键为什么不是连续的?

9.1、自增值保存在哪儿?

9.2、自增值修改机制

9.3、自增值的修改时机

9.4、自增值为什么不能回退

9.5、自增锁的优化

十、 怎么最快地复制一张表?

10.1、mysqldump 方法

10.2、导出 CSV 文件

10.3、物理拷贝方法

十一、grant之后要跟着flush privileges吗?

11.1、全局权限

11.2、db 权限

11.3、表权限和列权限

11.4、使用 flush privileges 的场景

十二、自增id用完怎么办?

12.1、表定义自增值 id

12.2、InnoDB 系统自增 row_id

12.3、Xid

12.4、Innodb trx_id

12.5、thread_id

补充一、亲身经历过的误删数据事件吧,你用了什么方法来恢复数据呢?

补充二、如果一个事务被 kill 之后,持续处于回滚状态,从恢复速度的角度看,你是应该重启等它执行结束,还是应该强行重启整个 MySQL 进程?

补充三、如果客户端由于压力过大,迟迟不能接收数据,会对服务端造成什么严重的影响?

补充四、如果让你来设计表索引,来支持 join 语句,你会加哪些索引呢?

补充五、可以使用 alter table 语法修改临时表的表名,而不能使用 rename 语法的原因?

补充六、两个 group by 语句都用了 order by null,为什么使用内存临时表得到的语句结果里,0 这个值在最后一行;而使用磁盘临时表得到的结果里,0 这个值在第一行?

补充七、内存表的备库重启之后会导致备库的内存表数据被清空,进而导致主备同步停止,如何解决?

补充八、为什么需要local ?如果写到 binlog 中的命令不带 local,会出现什么问题?


写在前面:

最近学习了大佬的MySQL课程,很有深度,解开了我很多疑点,值得去研究学习,这里整理记录下。 当然这里面需要一些前置知识储备,详见:

二叉树、红黑树、B树、B+树 合集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙滩de流沙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值