摘要: count(*) 和 count(1) 有什么区别?哪个性能最好? count(*) 和 count(1)没有区别,因为count(*)会优化为count(0) count(字段)的性能是最差的,因为要遍历一遍,并且还要比较是否是null 结论:count(*)=count(1)>count(字段) 阅读全文
posted @ 2023-09-13 22:32 xiuer211 阅读(20) 评论(0) 推荐(0) 编辑
摘要: MySQL 的数据存放在哪个文件? MySQL 的数据存放在哪个文件? 存放在idb文件中 表空间文件的结构是怎么样的? 段-区-页-行,四个等级 行:保存数据的最小单位 页:mysql按照页读取数据,默认页大小为16KB 区: B+ 树中每一层都是通过双向链表连接起来的,如果是以页为单位来分配存储 阅读全文
posted @ 2023-09-13 22:32 xiuer211 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 说一下索引覆盖,索引下推,回表 索引覆盖 是指在查询过程中,查询的数据都能在二级索引的树中找到,不用根据主键查覆盖索引 索引下推 没有索引下推:执行器发送查询条件给存储引擎查找,存储引擎找到一条之后就返回给执行器,执行器判断当前记录是否符合条件,符合保留,不符合丢弃。重复过程,直到存储引擎结束查找。 阅读全文
posted @ 2023-09-13 22:32 xiuer211 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 索引失效有哪些情况 模糊匹配使用左模糊或者左右模糊匹配 因为索引时按照从第一个字符开始排序,也就是按照前缀排序,左模糊查询的时候,符合查询条件的前缀是无规律的,并不能使用索引。 查询条件中对索引字段进行做了函数,类型转换,计算操作之后 因为索引保存的是原始值,并不是操作之后的数值,但是mysql8. 阅读全文
posted @ 2023-09-13 22:32 xiuer211 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 索引常见面试题 什么是索引? 索引是数据的目录,用来加快数据的搜索,类似书本的目录 使用的好处 加速数据查找 加速数据更新 加速排序 加速连接查询 优化数据库性能 分类 可以分为几个类型 数据结构 b+树索引,通过b+树存储索引,但是非叶子节点保存数据,叶子节点保存数据 hash索引:通过hash计 阅读全文
posted @ 2023-09-13 22:32 xiuer211 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 执行一条 SQL 查询语句,期间发生了什么? 连接器 :建立连接,身份验证 查询缓存:已经在mysql8.0被删除 解析sql 词法分析,解析关键词 语法分析,根据词法分析得出的关键词判断语法是否有问题 建立语法树 执行sql 预处理,检查表名和表字段是否存在,将select *的*转为全部字段 优 阅读全文
posted @ 2023-09-13 22:31 xiuer211 阅读(2) 评论(0) 推荐(0) 编辑