MySQL面试题解析:索引、查询优化和数据库架构

需积分: 1 0 下载量 20 浏览量 更新于2024-08-04 收藏 39KB TXT 举报
MySQL 基础知识点总结 MySQL 是一种关系型数据库管理系统,广泛应用于各种 Web 应用程序。下面是 MySQL 基础知识点总结: 一、关系型数据库和非关系型数据库的区别 关系型数据库(RDBMS)和非关系型数据库(NoSQL)是两种不同的数据库类型。关系型数据库采用关系模型来组织数据,具有易于理解、易于维护、支持复杂查询等优点。非关系型数据库不需要经过 SQL 层的解析,读写效率高,基于键值对,读写性能高,易于扩展。 关系型数据库的优点: * 易于理解,因为它采用了关系模型来组织数据 * 可以保持数据的一致性 * 数据更新的开销比较小 * 支持复杂查询(带 where 子句的查询) 非关系型数据库的优点: * 无需经过 SQL 层的解析,读写效率高 * 基于键值对,读写性能高,易于扩展 * 可以支持多种类型数据的存储,如图片、文档等等 * 扩展性强,可以分为内存性数据库以及文档型数据库等 二、MySQL 语句执行的步骤 MySQL 语句执行的步骤包括: 1. 客户端请求 2. 连接器(验证用户身份,给予权限) 3. 查询缓存(存在缓存则直接返回,不存在则执行后续操作) 4. 分析器(对 SQL 进行词法分析和语法分析操作) 5. 优化器(主要对执行的 SQL 优化选择最优的执行方案方法) 6. 执行器(执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口) 7. 去引擎层获取数据返回(如果开启查询缓存则会缓存查询结果) 三、MySQL 使用索引的原因 索引的出现,就是为了提高数据查询的效率,就像书的目录一样。对于数据库的表而言,索引其实就是它的“目录”。索引可以帮助引擎层避免排序和临时表,将随机 IO 变为顺序 IO,加速表和表之间的连接。 四、索引的三种常见底层数据结构 MySQL 中索引的三种常见底层数据结构是哈希表、有序数组和搜索树。 * 哈希表适用于等值查询的场景,不适合范围查询。 * 有序数组索引只适用于静态存储引擎,等值和范围查询性能好,但更新数据成本高。 * N 叉树由于读写上的性能优点以及适配磁盘访问模式,广泛应用在数据库引擎中。 五、索引的常见类型 根据叶子节点的内容,索引类型分为主键索引和非主键索引。主键索引的叶子节点存的整行数据。