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

对于《MySQL 实战45讲》的理解

一.理论

  1. 一条SQL执行过程
    • 连接器
    • 分析器
    • 优化器
    • 执行器
  2. 索引
    索引的出现其实就是为了提高数据查询的效率,就像书的目录一样
    • 常见索引数据结构(每碰到一个新数据库,我们需要先关注它的数据模型,这样才能从理论上分析出这个数据库的适用场景)
      • 哈希表
        • 适用于只有等值查询的场景,比如 Memcached 及其他一些 NoSQL 引擎
      • 有序数组
        • 适用于等值查询和范围查询场景中,只适用于静态存储引擎
      • 搜索树
      • 跳表
      • LSM 树
    • 常见索引
      基于非主键索引的查询需要多扫描一棵索引树,应用中应该尽量使用主键查询
      • 主键索引的叶子节点存的是整行数据。在 InnoDB 里,主键索引也被称为聚簇索引(clustered index)。
      • 非主键索引的叶子节点内容是主键的值。在 InnoDB 里,非主键索引也被称为二级索引(secondary index)
      • 唯一索引:唯一索引可以创建多个且能为空(只能一次),主键索引不能为空
    • 索引优化
      • 覆盖索引
        由于覆盖索引可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是一个常用的性能优化手段。
      • 最左前缀原则
        第一原则是,如果通过调整顺序,可以少维护一个索引,那么这个顺序往往就是需要优先考虑采用的。
      • 索引下推
  3. 事务(ACID)
    • 特性
      • 原子性(Atomicity)
      • 一致性(Consistency)
      • 隔离性(Isolation)
        这4种隔离级别,并行性能依次降低,安全性依次提高
        • 读未提交(read uncommitted)
          一个事务还没提交时,它做的变更就能被别的事务看到
        • 读提交(read committed)
          一个事务提交之后,它做的变更才会被其他事务看到
        • 可重复读(repeatable read)
          一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。
        • 串行化(serializable )
          对于同一行记录,“写”会加“写锁”,“读”会加“读锁”。
      • 持久性(Durability)
    • 多事务问题
      • 脏读
      • 不可重复读
      • 幻读
    • 事务启动方式
      • 显式启动事务语句,begin或者start transaction,提交commit,回滚rollback
      • set autocommit=0,该命令会把这个线程的自动提交关掉。这样只要执行一个select语句,事务就启动,并不会自动提交,直到主动执行commit或rollback或断开连接。
    • 全局锁
    • 表锁
    • 行锁

二.实战

http://www.lryc.cn/news/13358.html

相关文章:

  • XQuery 函数
  • Elasticsearch的安装及常用操作
  • 网络安全应急响应服务方案怎么写?包含哪些阶段?一文带你了解!
  • 11、事务原理和实战,MVCC
  • Robust Self-Augmentation for Named Entity Recognition with Meta Reweighting
  • Java基础-xml
  • TCP的Nagle算法和delayed ack---延时发送和延时应答与稍带应答选项
  • 智能拣配单解决方案
  • 如何防御入侵服务器
  • [软件工程导论(第六版)]第4章 形式化说明技术(课后习题详解)
  • Premiere基础操作
  • Prometheus监控案例-tomcat、mysql、redis、haproxy、nginx
  • 如何寻找SAP中的增强
  • 算法刷题打卡第95天: 最大平均通过率
  • Springboot扩展点系列之终结篇:Bean的生命周期
  • OnGUI Color 控件||Unity 3D GUI 简介||OnGUI TextField 控件
  • 【日刻一诗】
  • 设计模式 状态机
  • React源码分析(二)渲染机制
  • Object.defineProperty 和 Proxy 的区别
  • Python基础4——面向对象
  • Hive 核心知识点灵魂 16 问
  • 聊聊探索式测试与敏捷实践
  • 社区宠物诊所管理系统
  • Vue项目创建首页发送axios请求
  • Nginx
  • 2049. 统计最高分的节点数目
  • Docker 架构简介
  • 玄子Share-BCSP助学手册-JAVA开发
  • 利用React实现多个场景下的鼠标跟随框提示框