Mysql优化 Mysql索引失效 Mysql 唯一索引和主键索引

Mysql 优化

  1. 对索引字段函数操作,可能会破坏索引的有序性,所以MySql优化器会放弃走树搜索
    对索引字段计算Mysql也会放弃走树搜索
select * from tradelog where id+1 = 10000; 
  1. 隐式类型转换,隐式字符编码类型转换

普通索引和唯一索引

查询

唯一索引保证了唯一性 所以在查询的时候找到目标就返回
非唯一索引 在找到目标后 继续向后找 直到遇到不相等的值位置

新增

唯一索引 在新增时需要判断是否满足唯一性约束
普通索引 找到位置后直接插入

修改

数据页不在内存中
唯一索引更新的数据不在内存中 需要将数据页读入内存然后再更新 更新时 需要检查唯一性约束
二级索引待更新的数据不在内存中 写入change buffer 写入 redo log 等下次查询到这条数据的时候 redo log 合并到数据页中

change buffer

change buffer适用于写多读少
对于写完数据马上读取 因为会触发merge 反而额外多了很多操作

关闭Innodb change buffer innodb_change_buffering = none

posted @   Rorchachl  阅读(193)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示