博客
关于我
mysql优化--索引原理
阅读量:794 次
发布时间:2023-02-11

本文共 609 字,大约阅读时间需要 2 分钟。

MySQL索引性能优化指南

  • 索引的作用索引能显著减少数据库需要扫描的数据量,提高查询效率。通过索引可以将随机I/O转换为顺序I/O,减少磁盘IO次数,提升查询速度。

  • 为什么选择B+树B+树作为MySQL的默认索引结构具有以下优势:

    • B+树是B-树的变种,保持了B-树的优势
    • 具备更强的扫库能力和磁盘读写能力
    • 查询效率更加稳定
    • 适合大数据量的存储和检索
    1. 索引原则创建索引是提升数据库查询性能的基础,需遵守以下原则:
      • 选择最适合的列进行索引
      • 考虑数据的离散性和选择性
      • 避免过度索引
      • 采用最少空间原则
      1. 树类型对比

      2. 二叉查找树二叉查找树是一种典型的数据结构,适合小规模数据存储,但在大数据环境下表现不佳。

      3. 平衡二叉树平衡二叉树是一棵空树或其左右子树高度差不超过1的树,左右子树均为平衡二叉树。其优点包括:

        • 查找效率较高
        • 缺点:
          • 深度过大导致IO操作频繁-磁盘利用率低
        1. 多路平衡查找树(B-树)B-树的特点:
          • 结构为矮胖树
          • 磁盘级索引
          • 路由信息存储在非叶节点
          • 每个磁盘块存储数据
          1. B+树B+树的特点:
            • 关键字搜索采用左闭区间
            • 非叶节点不保存数据
            • 叶子节点顺序排列
            • 适合大数据存储和高效查询
            1. B+树与B-树区别
              • 关键字搜索区间类型
              • 非叶节点存储方式
              • 数据存储位置
              • 树的高度和分支因素
              1. 最佳实践
                • 列的离散性原则
                • 最左匹配原则
                • 联合索引优先原则
                • 覆盖索引优先使用

                以上内容可根据实际需求扩展和调整,建议结合具体场景选择合适的索引策略。

    转载地址:http://mabfk.baihongyu.com/

    你可能感兴趣的文章
    MySQL批量插入数据遇到错误1213的解决方法
    查看>>
    mysql技能梳理
    查看>>
    MySQL报Got an error reading communication packets错
    查看>>
    Mysql报错Can‘t create/write to file ‘/tmp/#sql_3a8_0.MYD‘ (Errcode: 28 - No space left on device)
    查看>>
    MySql报错Deadlock found when trying to get lock; try restarting transaction 的问题解决
    查看>>
    MySQL报错ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘
    查看>>
    Mysql报错Packet for query is too large问题解决
    查看>>
    mysql报错级别_更改MySQL日志错误级别记录非法登陆(Access denied)
    查看>>
    Mysql报错:too many connections
    查看>>
    MySQL报错:无法启动MySQL服务
    查看>>
    mysql授权用户,创建用户名密码,授权单个数据库,授权多个数据库
    查看>>
    mysql排序查询
    查看>>
    MySQL排序的艺术:你真的懂 Order By吗?
    查看>>
    MySQL排序的艺术:你真的懂 Order By吗?
    查看>>
    Mysql推荐书籍
    查看>>
    Mysql插入数据从指定选项中随机选择、插入时间从指定范围随机生成、Navicat使用存储过程模拟插入测试数据
    查看>>
    MYSQL搜索引擎
    查看>>
    mysql操作数据表的命令_MySQL数据表操作命令
    查看>>
    mysql操作日志记录查询_如何使用SpringBoot AOP 记录操作日志、异常日志?
    查看>>
    MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?
    查看>>