广告
返回顶部
首页 > 资讯 > 数据库 >MySql 知识点之事务、索引、锁原理与用法解析
  • 395
分享到

MySql 知识点之事务、索引、锁原理与用法解析

2024-04-02 19:04:59 395人浏览 安东尼
摘要

本文实例讲述了Mysql 知识点之事务、索引、锁原理与用法。分享给大家供大家参考,具体如下: 事务 事务概念 事务就是一组原子性的sql查询,或者说一个独立的工作单元。如果数据库引擎执行一组操作语句

本文实例讲述了Mysql 知识点之事务索引原理与用法。分享给大家供大家参考,具体如下:

事务

  • 事务概念

事务就是一组原子性的sql查询,或者说一个独立的工作单元。如果数据库引擎执行一组操作语句,那么久执行所有的操作,如果其中有任何一条崩溃或其他原因无法执行,所有语句将不会执行。也就是说事务内的语句,要么全部执行成功,要么全部执行失败。

  • 事务特性ACID
    • 原子性(atomicity)

    一个事务被视为最小工作单元,不可拆分,整个事务所有的操作要么全部提交成功,要么全部失败回滚,不可只执行部分。

    • 一致性(consistency)

    数据库从一个一致性的状态转换到另外一个一致性的状态。数据库某个状态下符合所有的完整性约束的状态。

    • 隔离性(isolation)

    通常来说,一个事务所做的修改在最终提交前,对其他事务是不可见的。此时应该保证各个事务要进行隔离,事务之间不可相互干扰。

    • 持久性(durability)

    一旦事务提交,所有的修改会永久保存到数据库中。此时即使系统崩溃,修改的数据也不会丢失。

  • 事务的隔离级别
    • READ UNCOMMITTED(未提交读)

    事务中的修改,即使没有提交,对其他事务也是可见的,事务可以读取未提交的数据,造成脏读,也会造成不可重复。

    • READ COMMITTED(提交读)

    大多数数据库的默认级别是READ COMMITTED(mysql默认REPEATABLE READ),该级别事务解决了脏读,但是会出现不可重复读,因为两次执行同样的查询,查询结果不一样。

    • REPEATABLE READ(可重复读)

    该级别解决了脏读,保证可重复读,但是理论上,可重复读隔离级别还是无法解决幻读,所谓幻读,指的是党某个事物在读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录。InnoDB和XtraDB存储引擎通过多版本并发控制MVVC解决了幻读的问题。

    • SERIALIZABLE(可串行化)

    可串行化是隔离最高级,它强制了事务串行执行,完全避免了幻读,简单来说SERIALIZABLE会在读取的每一行加锁,所以会导致大量的等待超时和锁争用的问题,实际开发中很少使用。

索引

  • 索引概念

索引是存储引擎用户快速找到记录的一种数据结构,举例


SELECT userName FROM user WHERE userId = 1;

您可能感兴趣的文档:

--结束END--

本文标题: MySql 知识点之事务、索引、锁原理与用法解析

本文链接: https://www.lsjlt.com/news/51258.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySql 知识点之事务、索引、锁原理与用法解析
    本文实例讲述了MySql 知识点之事务、索引、锁原理与用法。分享给大家供大家参考,具体如下: 事务 事务概念 事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎执行一组操作语句...
    99+
    2022-10-18
  • MySQL数据库优化之索引实现原理与用法分析
    本文实例讲述了MySQL数据库优化之索引实现原理与用法。分享给大家供大家参考,具体如下: 索引 什么是索引 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作