Mysql优化 Mysql索引失效 Mysql 唯一索引和主键索引
Mysql 优化
- 对索引字段函数操作,可能会破坏索引的有序性,所以MySql优化器会放弃走树搜索
对索引字段计算Mysql也会放弃走树搜索
select * from tradelog where id+1 = 10000;
- 隐式类型转换,隐式字符编码类型转换
普通索引和唯一索引
查询
唯一索引保证了唯一性 所以在查询的时候找到目标就返回
非唯一索引 在找到目标后 继续向后找 直到遇到不相等的值位置
新增
唯一索引 在新增时需要判断是否满足唯一性约束
普通索引 找到位置后直接插入
修改
数据页不在内存中
唯一索引更新的数据不在内存中 需要将数据页读入内存然后再更新 更新时 需要检查唯一性约束
二级索引待更新的数据不在内存中 写入change buffer 写入 redo log 等下次查询到这条数据的时候 redo log 合并到数据页中
change buffer
change buffer适用于写多读少
对于写完数据马上读取 因为会触发merge 反而额外多了很多操作
关闭Innodb change buffer innodb_change_buffering = none
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)