码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Mysql索引知识补充


    参考:

    普通索引和唯一索引,难道还分不清 - 知乎

    普通索引和唯一索引有什么区别?

    1.从概念上来说,普通索引可重复,唯一索引和主键一样不能重复。

    2.在一张表里面只能有一个主键,不能为空,唯一索引可有多个。唯一索引可有一条记录为null。

    3.查询性能:

    select id from T where k=4

    普通索引:查找到满足条件的第一个记录(4,400)后,继续查找下个记录,直到碰到第一个不满足k=4的记录

    唯一索引:查到第一个满足条件的,就停止搜索

    InnoDB数据按数据页单位读写。即读一条记录时,并非将该一个记录从磁盘读出,而以页为单位,将其整体读入内存。

    所以普通索引,多了一次“查找和判断下一条记录”的操作,即一次指针寻找和一次计算。

    极端情况的性能差异:若k=4记录恰为该数据页的最后一个记录,则此时要取下个记录,还得读取下个数据页。

    对整型字段,一个数据页可存近千个key,因此这种情况概率其实也很低。因此计算平均性能差异时,可认为该操作成本对CPU开销忽略不计。

    4.更新性能:

    往表中插入一个新记录(4,400)

    该记录要更新的目标页是否在内存。

    (1)如果在内存:

    • 普通索引
      找到3和5之间的位置,插入值,结束。
    • 唯一索引
      找到3和5之间的位置,判断到没有冲突,插入值,结束。

    只是一个判断的差别,耗费微小CPU时间。

    (2)如果不在内存:

    • 唯一索引
      将数据页读入内存,判断到没有冲突,插入值,结束。
    • 普通索引
      将更新记录在change buffer,结束。

    将数据从磁盘读入内存涉及随机I/O访问,是DB里成本最高的操作之一。而change buffer可以减少随机磁盘访问,所以更新性能提升明显。

    总结:普通索引、唯一索引在查询性能上无差别,主要考虑更新性能。所以,推荐尽量选择普通索引。

    Change Buffer:Change Buffer详解-CSDN博客

  • 相关阅读:
    有向图D和E
    差分约束学习笔记
    分成两栏后文字顺序混乱的问题解决【写期刊论文时】
    获取iOS和Android的app下载渠道和相关参数的方式
    Java后端开发(七)-- 在gitee上部署远程仓库,通过idea上传本地代码(用idea2022版本开发)
    蓝牙技术|蓝牙轻松部署物联网项目,智能照明利用蓝牙特性快速发展
    【谷粒商城 - k8s、devOps专栏】
    超详细的JUnit单元测试介绍
    电子学会2021年3月青少年软件编程(图形化)等级考试试卷(一级)答案解析
    Docker 安装MySQL(主从复制)
  • 原文地址:https://blog.csdn.net/Miaodawang/article/details/133325710
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号