MySQL索引事务

【MySQL系列】MySQL索引事务 MySQL数据库 索引和事务部分的内容~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 阅读详情

1.索引

索引的作用类似书籍目录,可以用于快速定位,检索数据

可以对数据库表的某列或者某几列创建索引

索引针对查询操作引入的优化手段,但生成索引也会占用更多的空间

对于插入/删除/修改频率高的表不适用索引

使用场景

数据量大,经常对这些列进行条件查询

2.查看/创建/删除索引

创建主键约束,唯一约束,外键约束时,会自动创建对应列的索引

查看索引

show index from 表名;

 

创建索引

create index 索引名 on 表名(字段名);

 

删除索引

drop index 索引名 on 表名;

2.事务

问题:转账 如果执行一半程序崩溃/数据库崩溃...

开发中经常会涉及到一些需要'一气呵成'完成一些操作的场景

事务可以把多个sql打包成一个整体,确保这些sql语句要么全部执行,要么"一个不执行"(翻新回滚).引入事务可以避免上述问题

使用

1)开启事务:start transaction;

2)执行多条sql语句

3)回滚或提交 rollback/commit  rollback(全部失败) commit(全部成功)

回滚依据日志记录事物的关键操作实现

 

start transaction;

update accout set money=money-2000 where name = '阿里巴巴';

update accout set money=money+2000 where name = '四十大盗';

commit;

 

事务特性

1)原子性 回滚的方式 保证这一组操作都能执行正确或者全部执行失败恢复如初

2)一致性:事务执行之前和执行之后要合理

3)持久性:事务做出的修改在硬盘上持久保存,重启服务器,事务执行的修改仍然有效

4)隔离性:数据库并发执行多个事务会出先一些问题,并发(一个服务器给多个客户端提供服务)

数据库服务器执行效率高就要提高并发程度,但可能会导致数据出现错误的情况

a.脏读问题

一个事务A在写数据的过程中.事务B读取了同一个数据,接下来事务A修改了数据,导致事务B之前读到的数据是一个无效的数据(脏数据)

解决:针对写操作加锁,事务A确认写完后事务B在读(并发性降低了,隔离性提高,效率降低,数据准确性提高)

b.不可重复读

并发执行事务过程中,事务A在内部多次读取同一个数据的时候,出现不同的情况,例(上述问题中,事务B读取数据的时候,事务A(加了写数据锁)修改数据又再次提交,事务A在事务B读的时候写),一个事务内部两次读,结果不一样,

解决:给读操作加锁,(约定事务B读的时候,事务A不能修改)(并发性进一步降低了,隔离性进一步提高,效率进一步降低,数据准确性进一步提高)

c.幻读

事务B执行两次读取操作,数据内容没改变,但是结果集变了(事务B读取m文件时,事务A不能修改m文件,但是事务A在写n文件,事务B结果发现n文件)

解决:保持绝对的串行执行事务,完全没有并发,事务B在读的时候,事务A什么也不干,隔离性最高,数据最准确

可以在mysql配置文件中,修改数据库的隔离级别,适应不同场景的需求

read uncommitted(读未提交) 并发程度最高

read committed(读已提交) 引入写加锁

repeatable read(可重复读) 引入写加锁和读加锁

serializable(串行化) 

MySQL事务和索引 阅读详情

相关推荐

面试中常考的数学题——截木棍、圆上取点、赛马、红蓝墨水,测试毒药、坐到正确座位问题

文章目录1.将一根木棒截成三段,问能够组成三角形的概率;2.在圆上任取三点,问能够组成锐角、直角、钝角三角形的概率;3.共有25匹马,找出最快的3匹,只有5个赛道,每次比赛只能得到5匹马的速度排序,最少需要多少次比赛;4 有两瓶红蓝墨水,体积一样,现在从红墨水中舀一勺加入蓝墨水中,搅拌均匀后,在从蓝墨水中舀一勺加到红墨水中,试问这两瓶墨水哪瓶纯度更高。 1.将一根木棒截成三段,问能够组成三角形的概率; 来源:https://blog.youkuaiyun.com/weixin_41245919/article/deta

weixin_41558411的博客 4904

MySQL 索引和事务

索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址。在数据十分庞大的时候,索引可以大大加快查询的速度。这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据。索引的作用类似于图书的目录,可以根据目录中的页码快速找到所需的内容。当数据保存在磁盘类存储介质上时,它是作为数据块存放。这些数据块是被当作一个整体来访问的,这样可以保证操作的原子性。

2501_91344566的博客 1267

深度强化学习-D3QN算法原理与代码

Dueling Double Deep Q Network(D3QN)算法结合了Double DQN和Dueling DQN算法的思想,进一步提升了算法的性能。如果对Doubel DQN和Dueling DQN算法还不太了解的话,可以参考我的这两篇博文:深度强化学习-Doubel DQN算法原理与代码和深度强化学习-Dueling DQN算法原理与代码,分别详细讲述了这两个算法的原理以及代码实现。本文就带领大家了解一下D3QN算法,代码链接见下方。 代码:https://github.com/indigo

weixin_46133643的博客 2万+

【MySQL】 MySQL索引事务

索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现MySQL 索引是一种数据结构,用于加快数据库查询的速度和性能。MySQL 索引的建立对于 MySQL 的高效运行是很重要的,索引可以大大提高MySQL 的检索速度。创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为WHERE 子句的条件)。实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。索引虽然能够提高查询性能,但也需要注意以下几

m0_71731682的博客 1743

xHCI驱动学习(1) 核心数据结构

虽然Linux内核拥有C语言构建的身体,但它骨子里散发的是面向对象的气质,这一个个的对象就是struct。面对一个内核模块的时候,首先要找出关键的struct和它们之间的关系,才能摸清代码的骨骼脉络。今天来理清USB xHCI相关的数据结构类型usb_hcd、xhci_hcd、hc_driver和全局变量xhci_pci_driver、xhci_hc_driver、xhci_pci_hc_driver之间的关系。

1万+

Telegram Bot Api使用教程

其中token为你的机器人token,method为telegram给定的方法,在获取群组chat_id那一步就使用了telegram的其中一个方法(getUpdates),其他方法后面会介绍。telegram发送消息的方式类似与钉钉机器人,都是向一个api发送http请求,而且对于同一个APItelegram支持GET和POST两种请求方式.请求的api格式如下。通常来说我们都需要让机器人在一个群组里工作,所以首先我们需要将机器人添加到我们指定的群组,在群组里发送随意消息并@这个机器人,比如...

豫迷糊的码上生活 1万+

MySQL索引和事务

索引与事务是 MySQL 性能与数据可靠性的核心支柱。通过掌握高级索引优化技巧、事务处理机制及性能监控方法,开发者能够设计出高效、稳定的数据库系统。随着数据库技术的发展,未来索引结构(如列式索引、自适应索引)和分布式事务方案将进一步提升系统的扩展性与可用性。在实际开发中,需结合业务场景不断实践与优化,充分发挥 MySQL 的强大能力。

2501_91112123的博客 1143

CAN收发器选型避坑指南:TJA1051T与TJA1051T/3的硬件兼容性问题实录

本文详细解析了CAN收发器TJA1051T与TJA1051T/3的硬件兼容性问题,通过实测数据和故障案例揭示了VIO引脚的关键差异及其对系统的影响。提供从选型到验证的完整防坑方案,帮助开发者避免常见设计错误,确保CAN总线通信的稳定性。

weixin_42715608的博客 457

【MYSQL】索引和事务

本文主要介绍MySQL中的索引和事务,介绍索引的作用和使用,以及背后的数据结构,同时,介绍事务的概念,使用,特性以及带了的三个问题和隔离性级别。

爱编程爱运动的博客 4039

CCC数字钥匙3.0标准解读(22)

介绍设备制造商服务器和车辆制造商服务器之间的通信协议.

weixin_41738640的博客 1748

从零实现深度学习框架——自动求导神器计算图

本文介绍自动求导神器——计算图,从本篇文章开始介绍一个自定义的求导工具。

日积月累,天道酬勤 4198

MySQL 索引事务

数据库使用 select 查询的时候先遍历表把当前的行给带到条件中,看条件是否成立条件成立,这样的行就保留,不成立就 跳过如果表非常大,这样的遍历成本就比较高了至少是 O(N)数据库把数据存储在硬盘上,每次读取一个数据,都需要读取硬盘,这个开销本身是很大的索引属于针对 查询操作 引入的优化手段,可以通过索引来加快查询的速度,避免针对表进行遍历索引是能提高查询速度,但是也有代价占用更多的空间,生成索引是需要一系列的数据结构,以及一系列的额外的数据,来存储到硬盘空间中。

WR1207的博客 1347

人工智能数据治理——解读AI时代数据治理白皮书 2025【附全文阅读】

摘要:该白皮书面向企业数字化负责人及AI项目推进人员,探讨AI时代数据治理的战略升级。提出"好数据+好数据知识"双基石理念,强调数据需满足"三高"标准(高精度、一致性、时效性)并构建语义知识库。构建四层治理框架,包括数据采集处理、合规安全、知识库建设及质量改进,并介绍AI赋能治理的新范式,如智能ETL和治理Agent体系。同时分析"软件+AI+好数据"的应用模式,为企业实现智能数据治理提供实践指导。(149字)

cdfunlove的博客 633

MySQL的索引与事务

MySQL的索引与事务

chenchenchencl的博客 4080

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【MySQL】MySQL索引与事务

索引属于是针对查询操作引入的优化手段。可以通过索引来加快查询的速度,避免针对表进行遍历。数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。索引所起的作用类似书籍目录,可用于快速定位、检索数据。索引是通过一定的数据结构来实现的。哪些数据结构能加快查询的速度,B+树,为数据库量身定做的数据结构。事务的本质就是把多个sql语句给打包成一个整体,要么全部执行成功,要么全部执行失败。而不会出现"执行一半"这样的中间状态。

小黑屋的黑小子的博客 2375

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【Mysql】事务与索引

多条sql语句,要么全部成功,要么全部失败。

2301_79456272的博客 1175

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【MySQL】MySQL索引事务

索引:(1)对于插入、删除数据频率高的表,不适用索引(2)对于某列修改频率高的,该列不适用索引(3)通过某列或某几列的条件查询频率高的,可以对这些列创建索引事务...

2402_85428625的博客 2677

【MySQL】索引与事务

什么是事务?事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部执行成功,要么全部执行失败。这一特性称为事务的原子性。为什么需要事务呢(事务的应用场景有哪些)?假设有以下场景:小明去楼下某个超市购买生活用品,这些东西价值总共200元,正常情况下数据库应该执行两条SQL语句,一条让小明的账户余额 -200,一条让超市老板的账户余额 +200,但假如小明在输入支付密码进行扣款操作时出现了网络异常,就可能出现SQL没有完全执行,导致小明已经显示扣款了但超市老板却没有收到付款的情况。

一直往前走。 1999

【MySQL】索引事务

索引事务

2402_84815218的博客 1507

mysql索引和事务

索引与事务是 MySQL 核心技术,索引优化查询效率,事务保障数据一致性。本文从概念、场景、实操到优化全面拆解,助力精准应用二者解决业务问题。索引是一个排序的列表,存储着值和对应数据的物理地址就像图书目录一样,通过索引可以快速定位数据,无需扫描整个表类似C语言链表的指针机制,直接指向数据存储位置总结:对作查询条件的列,建立有序目录(索引),加快查找速度比如:select * from user where sid=1;就是对sid建立索引索引与事务是 MySQL 高性能与高可靠的基石。

m0_51025466的博客 850

5.MySQL索引事务

本文章主要讲解了数据库中什么是索引和事务,他们的作用是什么。索引通俗来说就是单个或者多个表进行关联,在我们查找数据时提供帮助(节约时间成本),而事务的出现则是为了我们数据库一系列的捆绑操作必须同时实现的要求,要么这些操作同时实现,要么这些操作都不实现(其内部逻辑为如果执行n个操作,而操作n未执行那么一直返回,直到返回到执行操作前)。

xinhang10的博客 4484
上一篇: MySQL表的增删改查(2)
下一篇: MySQL JDBC编程
奈葵
博客等级 码龄4年 245粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值