mysql查缺补漏

news/2025/2/12 22:08:04/

好文推荐:

数据库】快速理解脏读、不可重复读、幻读-CSDN博客

再探幻读!什么是幻读?为什么会产生幻读,MySQL中是怎么解决幻读的?-CSDN博客

引擎

mysql默认引擎:innodb

1.支持行锁
2.支持事务
3.支持外键

索引

索引之b+tree和b-tree

b+tree:数据都在叶子结点,叶子节点通过链表连在一起

为什么使用b+树:

1.相比于二叉树,高度大大减小,每一层高度意味着io读写,性能大大降低
2.相比于b树,因为非叶子节点只存储索引,每一页可以存更多的索引,降低高度
3.可范围查询

从上一节中的B-Tree结构图中可以看到每个节点中不仅包含数据的key值,还有data值。而每一个页的存储空间是有限的,如果data数据较大时将会导致每个节点(即一个页)能存储的key的数量很小,当存储的数据量很大时同样会导致B-Tree的深度较大,增大查询时的磁盘I/O次数,进而影响查询效率。在B+Tree中,所有数据记录节点都是按照键值大小顺序存放在同一层的叶子节点上,而非叶子节点上只存储key值信息,这样可以大大加大每个节点存储的key值数量,降低B+Tree的高度。

聚集索引:索引和数据存在一起,叶子节点存的是该行数据

二级索引:索引和数据分开存储,叶子节点存储的是主键

select * from where name = "Anc",需要现在二级索引的b+shu找到其主键,然后在聚集索引找到该id下的该行数据,称为回表查询

建立(username,password)联合索引,这样覆盖索引,不用回表查询

尽量使用联合索引,而不是单列索引,因为联合索引很多时候可以覆盖索引,不用回表查询

MyISAM 仅仅支持表级锁(table-level locking),一锁就锁整张表,这在并发写的情况下性非常差。InnoDB 不光支持表级锁(table-level locking),还支持行级锁(row-level locking),默认为行级锁。

行级锁的粒度更小,仅对相关的记录上锁即可(对一行或者多行记录加锁),所以对于并发写入操作来说, InnoDB 的性能更高。

表级锁:对整张表进行加锁,并发下效率极低,myisam和innodb都支持

行级锁:

MySQL 中锁定粒度最小的一种锁,是 针对索引字段加的锁 ,只针对当每行数据进行加锁。 其加锁粒度最小,并发度高,但加锁的开销也最大,加锁慢,会出现死锁。

 


http://www.ppmy.cn/news/1571536.html

相关文章

Redis中的某一热点数据缓存过期了,此时有大量请求访问怎么办?

1、提前设置热点数据永不过期 2、分布式中用redis分布式锁(锁可以在多个 JVM 实例之间协调)、单体中用synchronized(锁只在同一个 JVM 内有效) 编写服务类 import com.redisson.api.RLock; import com.redisson.api.RedissonCli…

Docker 系列之 docker-compose 容器编排详解

文章目录 前言一、Docker-compose简介二、Docker-compose 的安装三、Docker-compose卸载四、Docker-compose常用命令4.1 Docker-compose命令格式4.2 docker-compose up4.3 docker-compose ps4.4 docker-compose stop4.5 docker-compose -h4.6 docker-compose down4.7 docker-co…

Vue 3 嵌套请求与数据重组:挑战与应对

Vue 3 嵌套请求与数据重组:挑战与应对 在实际前端开发中,我们经常会遇到需要处理嵌套请求的场景。例如,一个页面需要展示多个模块的数据,而每个模块的数据又需要通过不同的接口请求获取。此外,我们可能还需要对请求返…

如何使用Xcode进行iOS应用开发?

iOS应用开发是现代移动应用开发领域的重要组成部分,而Xcode作为Apple官方推荐的集成开发环境(IDE),为开发者提供了开发、调试、测试和部署iOS应用所需的一切工具。如果你是一名刚入门的iOS开发者,或者你准备开始开发自…

webpack配置之---入口

entry 单入口 由于一般的单页面项目只有一个入口,也就是单入口,单入口的配置方式有以下三种方式,如果有遗漏的欢迎补充 1、字符串方式 以下这几行代码解释: entry:本项目的入口文件 output:本项目打包…

【AI学习】关于 DeepSeek-R1的几个流程图

遇见关于DeepSeek-R1的几个流程图,清晰易懂形象直观,记录于此。 流程图一 来自文章《Understanding Reasoning LLMs》, 文章链接:https://magazine.sebastianraschka.com/p/understanding-reasoning-llms?continueFlagaf07b1a0…

996引擎-问题处理:三职业改单职业

996引擎-问题处理:三职业改单职业 问题解决方案顺便补充点单性别设置补充:可视化配置表参考资料问题 目前的版本: 引擎版本号:2024.8.7.0 三端配套客户端:3.40.9 传统PC客户端:23.12.07 配套数据库:64_24.8.7.0此版本需要通过可视化配置表

android隐藏虚拟按键recents button

通过android sdk工具monitor定位recents button id并全局搜索SystemUI模块,找到定义位置,然后根据逻辑找到相关功能的方法进行逻辑修改。 Index: vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml--- vendor/mediatek/propri…