当前位置: 首页 > news >正文

JavaWeb学习打卡-Day2-Mysql索引、事务

Mysql 索引

什么是索引
  • 索引(index)是帮助数据库高效获取数据数据结构。索引的作用就相当于书的目录。
优势
  • 提高数据查询的效率,减少 IO 次数。
  • 通过索引对数据进行排序,降低数据排序的成本,降低CPU消耗。
  • 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
缺点
  • 索引会占用存储空间。
  • 创建和维护索引需要耗费许多时间,降低了增删改的效率。
结构
  • MySQL数据库支持的索引结构有很多,如:Hash索引、B+Tree索引、Full-Text索引等。
  • 我们平常所说的索引,如果没有特别指明,都是指默认的 B+Tree 结构组织的索引。
  • B+Tree (多路平衡搜索树)
    • 每一个节点,可以存储多个key(有n个key,就有n个指针)。
    • 所有的数据都存储在叶子节点,非叶子节点仅用于索引数据。
    • 叶子节点之间形成了双向链表,便于数据的排序及区间范围查询。
      B+Tree
注意事项
  • 主键字段在建表时,会自动创建主键索引。
  • 添加唯一约束时,数据库实际上会添加唯一索引。
未完待续…

Mysql 事务

什么是事务
  • 事务是逻辑上一组操作的集合,它是一个不可分割的工作单位。
  • 事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
作用
  • 简单来说,数据库事务可以保证多个对数据库的操作(也就是 SQL 语句)构成一个逻辑上的整体。构成这个逻辑上的整体的这些数据库操作遵循:要么全部执行成功,要么全部不执行 。
    # 开启一个事务
    START TRANSACTION;
    # 多条 SQL 语句
    SQL1;
    SQL2;
    ...
    ## 提交事务
    COMMIT;
    
ACID 特性
  • 原子性(Atomicity):事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用。
  • 一致性(Consistency):执行事务前后,数据保持一致。例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的。
  • 隔离性(Isolation):并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的
  • 持久性(Durability):一个事务被提交之后,它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
  • 只有保证了事务的持久性、原子性、隔离性之后,一致性才能得到保障。也就是说 A、I、D 是手段,C 是目的!
注意事项
  • 默认MySQL的事务是自动提交的,也就是说,当执行一条DML语句,MySQL会立即隐式的提交事务。
未完待续…
http://www.xdnf.cn/news/107497.html

相关文章:

  • 浅试MCP:spring ai使用mcp调用deepseek的API接口
  • IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等
  • element-ui transfer 组件源码分享
  • 永磁同步电机控制算法--零d轴电流IF控制
  • 幂等性设计保障系统可靠性和数据一致性
  • 顺序表专题
  • 结合地理数据处理
  • 数据流量采集系统的实现
  • 为什么Spring中@Bean注解默认创建单例Bean
  • TORL:解锁大模型推理新境界,强化学习与工具融合的创新变革
  • 将 MySQL 8 主从复制延迟优化到极致
  • cgdb的基础使用教程
  • 制造业数字化转型标杆解析:从冀凯机电到君乐宝的启示
  • Java类加载器(ClassLoader)及其相关类 简介
  • 【C++】AVL树
  • 《从卷积核到数字解码:CNN 手写数字识别实战解析》
  • 蚊子的搜索距离可达60公里:对一些特殊气味有所偏爱
  • 短说社区V5.2.1正式版发布|修复已知问题
  • 品牌名凭空消失?3步破解亚马逊前台标题隐藏危机
  • 在Linux驱动开发中使用DeepSeek的方法
  • 智能指针(shared_ptr)之二
  • 18487.1-2015-解读笔记五-交流充电之停止充电
  • 详解 synchronized 关键字【通俗易懂】
  • 前端常见问题
  • 西门子S7-200SMART 控制Profinet闭环步进MD-4250-PN (1)电机及专栏介绍
  • 基于百度地图 MCP Server规划规划一次青岛到北京旅行的详细行程实践
  • Vue3集成百度实时语音识别
  • 【Redis】集合类型Set 常用命令详解
  • ZLMediaKit支持JT1078实时音视频
  • 新手村:正则化