MySQL笔记(一)索引

MySQL索引相关


记录一下MySQL优化相关的信息

索引
MyISAM 存储引擎采用的是非聚簇索引 , 什么是非聚簇索引?就是 索引和数据分成了两个文件存储
INNODB 存储引擎采用的是聚簇索引,也就是索引和数据在同一个文件里面, 通过索引可以直接找到数据,如果建立了辅助索引的话查找数据相对于MySAM 会慢一点

EXPLAIN 解释SQL

最左前缀法则

导致索引失效的地方
计算: + - * / != <> is null ,is not null , or
函数:sum , rund 等
手动/自动类型转换的问题

锁升级
如果在修改的时候条件使用不当 会造成锁由行级锁,升级成表级别锁。

idname
1张三
2李四
3赵五

例如 事务1执行 update tablexxx set name = ‘王二’ where id =1 or 2 会导致表锁
此时 事务2执行 update tablexxx set name = ‘王二’ where id =3 这个时候如果事务1一直不提交的话 事务2会一直等待锁,直到超时为止。

间隙锁

idname
1张三
5李四
7赵五

事务A
update tablexxx set name = ‘王二’ where id >1 and id<6
这个时候会对ID 1-6 范围内的数据加上间隙锁

这个时候 事务B 如果想插入ID 为2 的数据 需要等待事务A 结束才可以。

如果数据库性能很低可以试试查看下锁的时间
show status like ‘innodb_row_lock%’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blazzer

[]~( ̄▽ ̄)~*,干一杯!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值