02-MySQL 实战 基础
2022-03-22 13:55:25 4 举报
AI智能生成
以思维导图的形式,汇总 【MySQL 实战基础】相关的面试点
作者其他创作
大纲/内容
基础语法
基本概念
什么是元组, 码, 候选码, 主码, 外码, 主属性, 非主属性?
数据库的三大范式?
主键和外键有什么区别?
什么是存储过程?有哪些优缺点?
超键、候选键、主键、外键分别是什么?
存储引擎
支持哪些存储引擎?
MyISAM 和 InnoDB 的区别有哪些
数据类型
varchar和char的区别?
MySQL中int(10)和char(10)和varchar(10)的区别?
列 约束有哪几种?
数值类型
整型
浮点型
定点数
字符串类型
char, varchar
blob, text
binary, varbinary
日期时间类型
枚举和集合
字符集
什么是字符集
常见字符集
ASCII、GB2312、GBK、UTF-8.
MySQL
UTF-8、GB2312、GBK、BIG5
默认 UTF-8
字段设计规范
优先选择符合存储需要的最小的数据类型
避免使用 TEXT,BLOB 数据类型,最常见的 TEXT 类型可以存储 64k 的数据
字段为什么要设置成not null?
避免使用 ENUM 类型
使用 TIMESTAMP(4 个字节) 或 DATETIME 类型 (8 个字节) 存储时间
同财务相关的金额类数据必须使用 decimal 类型
整体设计
数据库设计通常分为哪几步?
概念
场景
MySQL数据库cpu飙升到500%的话如何进行处理?
SQL语句执行的很慢原因是什么?
大表操作
原则:超 100 万行的批量写操作,要分批多次进行操作
何批量删除大量数据?
百万级数据如何删除?
大表数据查询如何进行优化?
如何迁移历史数据
online DDL
理论
Online DDL的过程
DML、 DDL 、DQL
drop、delete和truncate
子主题 1
为什么给小表加字段也会出事故 MDL
分支主题
实战
一张大表怎么更改表的数据结构,字段,用alter会有什么问题,怎么解决呢,有什么好的方案,双写的话会有什么问题,还有其他方案么
onlineDDL 之前检查效率问题
开源框架 gh-ost
使用说明
分支主题
小表更改数据结构
怎么加?
如果你要变更的表是一个热点表,虽然数据量不大,但是上面的请求很频繁,而你不得不加个字段,你该怎么做呢?
一些问题
online DDL 会有哪些问题?
SQL优化
索引
如何创建/删除索引?
创建索引原则
最左前缀索引?
联合索引第一个字段用范围不会走索引
覆盖索引
索引下推?
like KK% 一般情况都会走索引
为什么范围查找Mysql没有用索引下推优化?
各种索引的区别
主键vs非主键
唯一vs普通
覆盖索引
普通索引和唯一索引该怎么选择
索引选择异常和处理
索引选择原理
1、基数
是什么?
如何查看
优化器是怎么得到的?
2、重新统计索引信息
1、强制选择索引
2、修改语句使之走索引
3、新建索引
不走索引情况
1、条件字段函数操作?
2、隐式类型转换?
3、隐式字符编码转换?
怎么给字符串字段加索引?
Expalin
id列
type列
key_len列
rows列
ref列
Extra
锁
锁优化建议
死锁
死锁和死锁检测
什么是数据库的乐观锁和悲观锁,如何实现?
慢查询
慢查询日志
优化慢查询
LIMIT 优化
超大分页怎么处理?
常用优化方案
优化 LIMIT 10000,10
UNION
原理
union执行流程?
实战
是什么?
UNION和UNION ALL的区别?
WHERE
Join 优化
执行流程
Index Nested-Loop Join
Block Nested-Loop Join
Simple Nested-Loop Join
Join实现
实战
如果有两个大小不同的表做 join,应该用哪个表做驱动表呢?
我们 DBA 不让使用 join,使用 join 有什么问题呢?
Exlpain
Left Join 和Inner Join的区别
count
原理
实战
count(字段)<count(主键 id)<count(1)≈count(*),所以我建议你,尽量使用 count(*)
临时表
是什么?什么时候会使用到临时表,什么时候删除临时表?
内存临时表?磁盘临时表
为什么临时表可以重名?
drop、delete和truncate
in和exists优化
区别
group by 优化?
group by 执行流程?
group by 实现原理?
order by 优化
执行流程
全字段排序
临时文件
Using filesort
缺点
rowid 排序
全字段排序 VS rowid 排序
主键?
自增主键为什么不是连续的?
有没有什么场景适合用业务字段直接做主键的呢?
为什么通常用自增主检做索引?
主键一般用自增ID还是UUID?
自增值改变的时机?为什么 MySQL 在事务回滚的时候不能回收自增 id?
0 条评论
下一页