前言:
不卖关子,直奔主题!文章内容概括“高频面试真题+学习笔记文档及书籍+性能优化21个最佳实践文档+学习路线”。
一,数据库历年高频真题梳理
- 1、MySQL 中有哪几种锁?
- 2、MySQL 中有哪些不同的表格?
- 3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别
- 4、MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
- 5、CHAR 和 VARCHAR 的区别?
- 6、主键和候选键有什么区别?
- 7、myisamchk 是用来做什么的?
- 8、如果一个表有一列定义为 TIMESTAMP,将发生什么?
- 9、你怎么看到为表格定义的所有索引?
- 10、LIKE 声明中的%和_是什么意思?
- 11、列对比运算符是什么?
- 12、BLOB 和 TEXT 有什么区别?
- 13、MySQL_fetch_array 和 MySQL_fetch_object 的区别是什么?
- 14、MyISAM 表格将在哪里存储,并且还提供其存储格式?
- 15、MySQL 如何优化 DISTINCT?
- 16、如何显示前 50 行?
- 17、可以使用多少列创建索引?
- 18、NOW()和 CURRENT_DATE()有什么区别?
- 19、什么是非标准字符串类型?
- 20、什么是通用 SQL 函数?
- 21、MySQL 支持事务吗?
- 22、MySQL 里记录货币用什么字段类型好
- 23、MySQL 有关权限的表都有哪几个?
- 24、列的字符串类型可以是什么?
- 25、MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
- 26、锁的优化策略
- 27、索引的底层实现原理和优化
- 28、什么情况下设置了索引但无法使用
- 29、实践中如何优化 MySQL
- 30、优化数据库的方法
- 31、简单描述 MySQL 中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)
- 32、数据库中的事务是什么?
- 33、SQL 注入漏洞产生的原因?如何防止?
- 34、为表中的字段选择合适得数据类型
- 35、存储时期
- 36、对于关系型数据库而言,索引是相当重要的概念,请回答有关索引的几个问题:
- 37、解释 MySQL 外连接、内连接与自连接的区别
- 38、Myql 中的事务回滚机制概述
- 39、SQL 语言包括哪几部分?每部分都有哪些操作关键字?
- 40、完整性约束包括哪些?
- 41、什么是锁?
- 42、什么叫视图?游标是什么?
- 43、什么是存储过程?用什么来调用?
- 44、如何通俗地理解三个范式?
- 45、什么是基本表?什么是视图?
- 46、试述视图的优点?
- 47、 NULL 是什么意思
- 48、主键、外键和索引的区别?
- 49、你可以用什么来确保表格里的字段只接受特定范围里的值?
- 50、说说对 SQL 语句优化有哪些方法?(选择几条)
二,数据库学习笔记及书籍
- 1、事务四大特性(ACID)原子性、一致性、隔离性、持久性?
- 2、事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?
- 3、MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?
- 4、MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?
- 5、查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?
- 6、什么是临时表,临时表什么时候删除?
- 7、MySQL B+Tree索引和Hash索引的区别?
- 8、sql查询语句确定创建哪种类型的索引?如何优化查询?
- 9、聚集索引和非聚集索引区别?
- 10、有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?
- 11、非关系型数据库和关系型数据库区别,优势比较?
- 12、数据库三范式,根据某个场景设计数据表?
- 13、数据库的读写分离、主从复制,主从复制分析的 7 个问题?
- 14、使用explain优化sql和索引?
- 15、MySQL慢查询怎么解决?
- 16、什么是 内连接、外连接、交叉连接、笛卡尔积等?
- 17、mysql都有什么锁,死锁判定原理和具体场景,死锁怎么解决?
- 18、varchar和char的使用场景?
- 19、mysql 高并发环境解决方案?
- 20、数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?
MySQL学习高频知识点
MySQL学习路线图(xmind)
MySQL学习书籍:MySQL+技术内幕:InnoDB存储引擎-3.pdf
三, 数据库性能优化
- 1、为查询缓存优化你的查询
- 2、EXPLAIN你的SELECT查询
- 3、当只要一行数据时使用LIMIT 1
- 4、为搜索字段建索引
- 5、在Join表的时候使用相当类型的例,并将其索引
- 6、千万不要 ORDER BY RAND()
- 7、避免 SELECT *
- 8、永远为每张表设置一个 ID
- 9、使用 ENUM 而不是 VARCHAR
- 10、从 PROCEDURE ANALYSE() 取得建议
- 11、尽可能的使用 NOT NULL
- 12、Prepared Statements
- 13、无缓冲的查询
- 14、把 IP 地址存成 UNSIGNED INT
- 15、固定长度的表会更快
- 16、垂直分割
- 17、拆分大的 DELETE 或 INSERT 语句
- 18、越小的列会越快
- 19、选择正确的存储引擎
- 20、使用一个对象关系映射器(Object Relational Mapper)
- 21、小心“永久链接”
MySQ性能优化21个最佳实践
MySQL优化问题学习路线图(xmind)
今天关于备战秋招之MySQL就分享这么多,如果你对文中提到的各种数据库学习资料感兴趣,可以点赞+关注后,“加我小助理VX”即可免费领取这些数据库学习资料,让我们一起备战秋招吧!