博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySql中锁与索引的注意点
阅读量:5885 次
发布时间:2019-06-19

本文共 562 字,大约阅读时间需要 1 分钟。

1.索引:

聚集索引(主键索引)

聚集索引(非主键索引)

覆盖索引多字段索引)

 

2.锁:

 

种类:读锁(共享锁)、写锁(排他锁)、更新锁、乐观锁、悲观锁

级别:页级、表级、行级

3.MySql中锁与索引的关系

 

  MyISAM 操作数据都是使用表级锁,MyISAM总是一次性获得所需的全部锁,要么全部满足,要么全部等待。所以不会产生死锁,但是由于每操作一条记录就要锁定整个表,导致性能较低,并发不高。

  InnoDB 与 MyISAM 的最大不同有两点:一是 InnoDB 支持事务;二是 InnoDB 采用了行级锁。也就是你需要修改哪行,就可以只锁定哪行。

  Mysql中,行级锁并不是直接锁记录,而是锁索引。InnoDB 行锁是通过给索引项加锁实现的,索引分为主键索引和非主键索引两种,如果一条sql 语句操作了主键索引,Mysql 就会锁定这条主键索引;如果一条语句操作了非主键索引,MySQL会先锁定该非主键索引,再锁定相关的主键索引。如果没有索引,InnoDB 会通过隐藏的聚簇索引来对记录加锁。也就是说:如果不通过索引条件检索数据,那么InnoDB将对表中所有数据加锁,实际效果跟表级锁一样。

转载于:https://www.cnblogs.com/dw504723130/p/10805906.html

你可能感兴趣的文章
亚马逊一口气发布了9款机器学习产品
查看>>
全面异步化:淘宝反应式架构升级探索
查看>>
与Brian Goetz聊Java的数据类
查看>>
远程桌面网关Apache Guacamole 发布1.0.0版本\n
查看>>
前百度资深科学家技术分享:大规模机器学习与AutoML
查看>>
GraphQL到底怎么用?看看这个例子就知道了
查看>>
ASP.NET Core 3.0项目开始“瘦身”
查看>>
Windows Server已可安装Docker,Azure开始支持Mesosphere
查看>>
敏捷现状10周年调查
查看>>
GitLab揭示DevOps价值和挑战的新调查研究
查看>>
Netflix:当你按下“播放”的时候发生了什么?
查看>>
他们10+年的管理经验或许正是你突破瓶颈的关键
查看>>
微软Azure容器服务要关停,你想好怎么迁移了吗?
查看>>
IDC报告:欧洲区块链支出8亿美元,排在首位
查看>>
Linux 4.1内核热补丁成功实践
查看>>
使用Prometheus和Grafana实现SLO
查看>>
Netty和RPC框架线程模型分析
查看>>
Java枚举增强,提供更强的类型支持
查看>>
Effective C++ 3.资源管理
查看>>
有赞透明多级缓存解决方案(TMC)设计思路
查看>>