摘要: 为什么String是不可变的 字符串常量池 因为jvm设计了字符串常量池,将字符串缓存到字符串常量池。如果字符串是可变的,这样的缓存就变得效率低下了。 线程安全问题 如果字符串是可变的,假设有很多变量指向同一个字符串,如果这个字符串发生变化,从abc变为123,那么所有的变量指向的值发生变化,如果有 阅读全文
posted @ 2023-09-21 16:05 xiuer211 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 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) 编辑
摘要: RDB相关问题 RDB 做快照时会阻塞线程吗? rdb提供两种命令来生成rdb文件,一个是save,一个是bgsave,save会阻塞线程,bgsave不会阻塞,可以通过save 参数一 参数二 设置rdb生成的时机,例如 save 60 1 a56爆大奖在线娱乐在60秒内有修改一次数据,就会生成rdb RDB 在 阅读全文
posted @ 2023-09-12 17:13 xiuer211 阅读(15) 评论(0) 推荐(0) 编辑
摘要: Redis 持久化和aof Redis 如何实现数据不丢失? 有三种方式实行持久化 aof,将执行成功的写命令保存到aof文件中,如果aof文件过大会发生aof重写 rdb,保存内存数据的快照 混合模式,同时使用aof和rdb,提高性能 为什么aof要先执行命令再保存命令 不用检查命令合法,不会阻塞 阅读全文
posted @ 2023-09-12 17:12 xiuer211 阅读(6) 评论(0) 推荐(0) 编辑
摘要: Redis 过期删除与内存淘汰 Redis 使用的过期删除策略是什么? redis将有过期时间的key带上过期时间的时间戳保存到一个字典中。 主要分为两大类: 一个是惰性删除,不会主动检查key是否过期,cpu使用到的时候先检查是否过期,过期了删除,没有过期返回 一个是定期删除,会定期检查key是否 阅读全文
posted @ 2023-09-12 17:12 xiuer211 阅读(10) 评论(0) 推荐(0) 编辑