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

西安网站建设价格短视频app开发有哪些公司

西安网站建设价格,短视频app开发有哪些公司,企业设计网站推荐,陕西建设厅网站目录 一、什么是覆盖索引?二、使用了覆盖索引 vs 没使用覆盖索引的区别三、例子说明四、总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢🤗! …

在这里插入图片描述

目录

    • 一、什么是覆盖索引?
    • 二、使用了覆盖索引 vs 没使用覆盖索引的区别
    • 三、例子说明
    • 四、总结

🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢🤗!

🌟了解 线程池 请看: 线程池:从入门到精通,只需一杯咖啡的时间

其他优质专栏: 【🎇SpringBoot】【🎉多线程】【🎨Redis】【✨设计模式专栏(已完结)】…等

如果喜欢作者的讲解方式,可以点赞收藏加关注,你的支持就是我的动力
✨更多文章请看个人主页: 码熔burning

一、什么是覆盖索引?

想象一下,你要查一本很厚的书 📖(数据库表)里的几条信息。

  1. 普通索引(没覆盖):就像书的目录(索引)。你先在目录里找到你要查的章节 🔍(比如按年龄查人),目录告诉你这个章节在第几页(数据行的位置)。然后,你得翻到那一页 📄(回到主表数据),才能看到完整的章节内容(比如这个人的姓名、邮箱等)。这个“翻到具体页码再去找内容”的动作,就有点像数据库里的“回表” 🏃💨。

  2. 覆盖索引:还是查书。但这次,你要查的信息(比如姓名和年龄),恰好在那个目录页上就直接写清楚了 ✨!你一看目录,哦,张三,30岁,李四,25岁… 你根本不需要再翻到书的正文页去找了,目录本身就“覆盖”了你所有需要的信息 ✅。

所以,覆盖索引就是一个包含了查询所需所有字段的索引。当数据库发现可以用这个索引直接满足你的查询(包括 SELECT 出来的字段、WHERE 条件里的字段),它就只读取这个索引 🗂️,而不去读取实际的数据行,从而避免了“回表”操作。

二、使用了覆盖索引 vs 没使用覆盖索引的区别

特点没使用覆盖索引 (需要回表 ↪️)使用了覆盖索引 (不需要回表 👍)
查询过程1. 通过索引找到主键ID。
2. 拿着主键ID去主表里,把完整的数据行捞出来 🏃💨。
3. 从完整数据行里提取你 SELECT 的字段。
1. 通过索引找到匹配的行。
2. 索引里已经包含了你 SELECT 的所有字段,直接从索引返回结果 ✅。
数据读取需要读取 索引文件 🗂️ + 数据文件 📄只需要读取索引文件 🗂️
I/O 操作更多(至少两次磁盘/内存查找)更少(一次索引查找)
性能相对较慢 🐢相对较快 🚀
大白话查目录找到页码,再翻到那一页看详细内容。查目录,发现目录上直接就有你要的所有信息,不用翻页了。
EXPLAINExtra没有 Using indexExtra会显示 Using index 👀

三、例子说明

假设我们有个 users 表 👤:

CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,email VARCHAR(100),INDEX idx_age (age) -- 普通索引,只包含 age 和 主键 id
);

情况一:没使用覆盖索引 🐢

查询:SELECT name, email FROM users WHERE age = 30;

过程:

  1. MySQL 使用 idx_age 索引,快速找到所有 age = 30 的行的主键 id
  2. 对于找到的每一个 id,MySQL 必须回到 users 表(聚簇索引)中,根据 id 找到完整的数据行 🏃💨。
  3. 从完整的数据行中提取 nameemail 字段。
  4. 这里发生了“回表” ↪️,因为 idx_age 索引里只有 ageid,没有 nameemail

情况二:使用覆盖索引 🚀

我们创建一个覆盖索引:

-- 先删除旧索引 (如果存在)
-- DROP INDEX idx_age ON users;-- 创建覆盖索引,包含 WHERE 条件列和 SELECT 查询列
CREATE INDEX idx_age_name_email ON users (age, name, email);

查询:SELECT name, email FROM users WHERE age = 30;

过程:

  1. MySQL 使用 idx_age_name_email 索引。这个索引的叶子节点存储了 age, name, email (以及主键 id)。
  2. 它在索引中找到 age = 30 的条目。
  3. 因为索引里已经包含了 nameemail 这两个查询需要的字段 ✨,MySQL 直接从索引中读取 nameemail 并返回。
  4. 不需要再根据主键 id 去主表里查找数据了 ✅。避免了“回表”。

四、总结

  • 覆盖索引就像一个信息更全的“目录” 📖,让数据库可以直接从目录(索引)里拿到所有需要的数据,不用再费劲去翻正文(主表数据)。
  • 主要好处是减少了 I/O 操作(尤其是磁盘 I/O),避免了“回表”,从而显著提高查询性能 🎉。
  • 判断是否用上了覆盖索引,最直接的方法是看 EXPLAIN 分析结果的 Extra 列是否包含 Using index 👀。

当然,创建覆盖索引也有代价 🤔,比如索引会占用更多存储空间 💾,并且在插入、更新、删除数据时,维护索引的成本也会增加。所以需要根据实际的查询场景权衡利弊 ⚖️。


文章转载自:

http://o191yHwv.qjrjs.cn
http://tDkmDoRe.qjrjs.cn
http://jujI7Ywa.qjrjs.cn
http://4SI5yoLq.qjrjs.cn
http://SoeXndrV.qjrjs.cn
http://lb9OrQ7f.qjrjs.cn
http://qWT1QgBj.qjrjs.cn
http://ue9J0qLT.qjrjs.cn
http://SVHfnatW.qjrjs.cn
http://uYkV91GZ.qjrjs.cn
http://vlkxvWHc.qjrjs.cn
http://nmespYuu.qjrjs.cn
http://iUFevUR9.qjrjs.cn
http://LY7vadoN.qjrjs.cn
http://ILgqA54E.qjrjs.cn
http://w6u5J67K.qjrjs.cn
http://udci3EZk.qjrjs.cn
http://kXRNUN3w.qjrjs.cn
http://boB24EW1.qjrjs.cn
http://qvpg0Sa3.qjrjs.cn
http://VucXd37w.qjrjs.cn
http://H115uEPt.qjrjs.cn
http://jerx9Ne1.qjrjs.cn
http://wescB6vc.qjrjs.cn
http://utxwYVAl.qjrjs.cn
http://HTg4I6CV.qjrjs.cn
http://EG9fTXgp.qjrjs.cn
http://xLOj2Gf2.qjrjs.cn
http://JNsE6lkL.qjrjs.cn
http://99nZAnNU.qjrjs.cn
http://www.dtcms.com/wzjs/621495.html

相关文章:

  • 行业网站开发运营方案公司怎么建立自己的网站
  • 网站安装源码设计手机网站内容模块
  • 烟台网站推广排名wordpress 后面密码忘记
  • 优化网站标题名词解释广州微网站建设dmz100
  • 公司外贸网站怎么做wordpress kswapd0
  • 海南省住房与城乡建设部网站西部数码网站管理助手v4.0
  • wordpres做视频网站wordpress页面添加自定义面板
  • 芮城网站建设建设网站空间怎么预算
  • 一键制作网站绵阳网站推广排名
  • 浙江金华市建设局网站产品设计作品集欣赏
  • 2017年最新网站设计风格网站建设公司星海网络
  • 大连市城乡建设档案馆网站房价查询网
  • 创意网站设计团队如何在云服务器上开多几个网站
  • 杭州培训网站建设合肥seo推广公司
  • windows2008 网站部署技术支持::天空网络-临汾做网站
  • 什么是网站可信认证视频网站开发视频
  • 东方头条网站源码易优cms二次开发
  • 国外有什么网站是做服装的网站建设的重点是什么
  • 做外贸建网站需要推广吗最好设计网站建设
  • 石家庄专业网站设计如何做打码网站
  • 河北省城乡住房和建设厅网站客户信息管理
  • 免费建站平台排名仓库管理软件
  • 政和网站建设wzjseo免费ppt模板下载手机
  • 云微助力网站建设湖北专业网站建设检修
  • 查建设工程业绩在哪个网站wordpress 不显示首页
  • 排名好的昆明网站建设口碑好的常州网站建设
  • 网站无法导入照片网站测速
  • 烟台专业网站制作公司wordpress单页主题
  • 宿迁高端网站建设什么app推广佣金多
  • 长沙教育建设信息网站便宜点的WordPress