MySQL面试知识点总结:连接、存储过程、事务和性能优化

需积分: 0 0 下载量 179 浏览量 更新于2023-12-31 收藏 1.59MB DOCX 举报
MySQL面试知识点总结: 在MySQL的面试中,面试官通常会考察以下一些知识点: 1. 数据库的三大范式: - 第一范式(1NF):要求关系数据库中的每一列都是原子性的,不可再分。 - 第二范式(2NF):要求非主键属性完全依赖于主键属性,一个表只能说明一个事物。 - 第三范式(3NF):要求每列都与主键有直接关系,不存在传递依赖,任何非主属性不依赖于其他非主属性。 2. 内连接与外连接的区别: - 内连接(Inner Join):只显示符合连接条件的记录,即返回两个表中能够匹配的结果。 - 外连接(Outer Join):分为左外连接(Left Join)、右外连接(Right Join)和全外连接(Full Join)。 - 左外连接:以左表为基准,返回左表的全部记录以及右表符合连接条件的记录,找不到匹配的用NULL补齐。 - 右外连接:以右表为基准,返回右表的全部记录以及左表符合连接条件的记录,找不到匹配的用NULL补齐。 - 全外连接:返回左右表的全部记录,找不到匹配的用NULL补齐。 3. 存储过程的概念以及优缺点: - 存储过程是一组预编译的SQL语句集,可以作为一个单元来执行。 - 优点: - 提高数据库性能:减少网络传输次数,减少SQL语句的解析和优化时间。 - 提高安全性:可以设置合适的权限来限制对存储过程的访问。 - 简化开发(封装复杂逻辑):将复杂的业务逻辑封装在存储过程中,减少应用层的代码量。 - 缺点: - 不容易调试和维护:存储过程的调试和维护比较困难。 - 存储过程的语法和特性因数据库而异:不同的数据库可能具有不同的存储过程语法和特性,需要进行适配。 4. 数据库事务正确执行的四个基本要素(事务的四个属性): - 原子性(Atomicity):事务是一个不可分割的工作单元,要么全部执行成功,要么全部不执行。 - 一致性(Consistency):事务执行前后数据库的状态保持一致。 - 隔离性(Isolation):事务之间相互隔离,每个事务都应该感知不到其他正在执行的事务。 - 持久性(Durability):事务一旦提交,对数据库中的数据改变是永久性的,即使系统发生故障也不会丢失。 5. 并发事务带来的问题: - 脏读(Dirty Read):一个事务读取了另一个未提交的事务的数据。 - 不可重复读(Non-repeatable Read):一个事务内多次读取同一数据,但在事务执行期间,另一个事务修改了该数据,导致多次读取的结果不一致。 - 幻读(Phantom Read):一个事务在读取某个范围的记录时,另一个事务插入了一些符合该范围的记录,导致第一个事务多次读取时的记录数不一致。 MySQL的面试方式通常包括以下几种: 1. 场景题,手写SQL:面试官会给出一个具体场景,要求应聘者写出相应的SQL查询语句来解决问题。 2. MySQL的相关底层原理:包括存储引擎、索引、锁、事务等等。面试官可能会问到具体的原理,以及在某些情况下的应用和优化方法。 3. 查询性能优化:考察应聘者对于MySQL查询性能优化的理解和实践经验,比如如何优化查询语句、如何设计合适的索引等。 总的来说,MySQL的面试中,除了基本概念和语法外,还需要了解MySQL的底层原理和性能优化技巧。同时,对于事务和并发控制也是需要重点掌握的内容。