吊打MySQL:21性能优化实践+学习导图+55面试+笔记+20
2022-07-31 本文已影响0人
让我来搞这个bug
面试又被MySQL虐?是不是很扎心呢?(呜呜呜~)好吧,话不多说,直接进入主题,分享一波我整理的干货,让你面试不再被虐,一起吊打MySQL!
image.pngMySQL学习思维导图
01 55道复习必备题+解析
- 一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?
- Mysql 的技术特点是什么?
- Heap 表是什么?
- Mysql 服务器默认端口是什么?
- 与 Oracle 相比,Mysql 有什么优势?
- 如何区分 FLOAT 和 DOUBLE?
- 区分 CHAR_LENGTH 和 LENGTH?
- 请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
- 在 Mysql 中 ENUM 的用法是什么?
- 如何定义 REGEXP?
- CHAR 和 VARCHAR 的区别?
- 列的字符串类型可以是什么?
- 如何获取当前的 Mysql 版本?
- Mysql 中使用什么存储引擎?
- Mysql 驱动程序是什么?
- TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?
- 主键和候选键有什么区别?
- 如何使用 Unix shell 登录 Mysql?
- myisamchk 是用来做什么的?
- MYSQL 数据库服务器性能分析的方法命令有哪些?
- 如何控制 HEAP 表的最大尺寸?
- MyISAM Static 和 MyISAM Dynamic 有什么区别?
- federated 表是什么?
- 如果一个表有一列定义为 TIMESTAMP,将发生什么?
- 列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况?
- 怎样才能找出最后一次插入时分配了哪个自动增量?
- 你怎么看到为表格定义的所有索引?
- LIKE 声明中的%和_是什么意思?
- 如何在 Unix 和 Mysql 时间戳之间进行转换?
- 列对比运算符是什么?
- 我们如何得到受查询影响的行数?
- Mysql 查询是否区分大小写?
- LIKE 和 REGEXP 操作有什么区别?
- BLOB 和 TEXT 有什么区别?
- mysql_fetch_array 和 mysql_fetch_object 的区别是什么?
- 我们如何在 mysql 中运行批处理模式?
- MyISAM 表格将在哪里存储,并且还提供其存储格式?
- Mysql 中有哪些不同的表格?
- ISAM 是什么?
- InnoDB 是什么?
- Mysql 如何优化 DISTINCT?
- 如何输入字符为十六进制数字?
- 如何显示前 50 行?
- 可以使用多少列创建索引?
- NOW()和 CURRENT_DATE()有什么区别?
- 什么样的对象可以使用 CREATE 语句创建?
- Mysql 表中允许有多少个 TRIGGERS?
- 什么是非标准字符串类型?
- 什么是通用 SQL 函数?
- 解释访问控制列表
- MYSQL 支持事务吗?
- mysql 里记录货币用什么字段类型好
- MYSQL 数据表在什么情况下容易损坏?
- mysql 有关权限的表都有哪几个?
- Mysql 中有哪几种锁?
55道复习必备题+解析
02 20个高频知识点
- 事务四大特性(ACID)原子性、一致性、隔离性、持久性?* 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?* MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?* MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?* 查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?* 什么是临时表,临时表什么时候删除?* MySQL B+Tree索引和Hash索引的区别?* sql查询语句确定创建哪种类型的索引?如何优化查询?* 聚集索引和非聚集索引区别?* 有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?* 非关系型数据库和关系型数据库区别,优势比较?* 数据库三范式,根据某个场景设计数据表?* 数据库的读写分离、主从复制,主从复制分析的 7 个问题?* 使用explain优化sql和索引?* MySQL慢查询怎么解决?* 什么是 内连接、外连接、交叉连接、笛卡尔积等?* mysql都有什么锁,死锁判定原理和具体场景,死锁怎么解决?* varchar和char的使用场景?* mysql 高并发环境解决方案?* 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?
20个MysSQL高频知识点
03 21个性能优化最佳实践
- 为查询缓存优化你的查询
- EXPLAIN你的SELECT查询
- 当只要一行数据时使用LIMIT 1
- 为搜索字段建索引
- 在Join表的时候使用相当类型的例,并将其索引
- 千万不要 ORDER BY RAND()
- 避免 SELECT *
- 永远为每张表设置一个 ID
- 使用 ENUM 而不是 VARCHAR
- 从 PROCEDURE ANALYSE() 取得建议
- 尽可能的使用 NOT NULL
- Prepared Statements
- 无缓冲的查询
- 把 IP 地址存成 UNSIGNED INT
- 固定长度的表会更快
- 垂直分割
- 拆分大的 DELETE 或 INSERT 语句
- 越小的列会越快
- 选择正确的存储引擎
- 使用一个对象关系映射器(Object Relational Mapper)
- 小心“永久链接”
21个性能优化最佳实践
04 MySQL技术内幕 InnoDB存储MySQL技术内幕 InnoDB存储引擎引擎
image.pngMySQL技术内幕 InnoDB存储引擎
*有需要小编在文章分享的这些MySQL资料的朋友,+v信:mxx2020666
Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC
[图片上传中...(image.png-ec281d-1659244051377-0)]
Spring全家桶笔记