四时宝库

程序员的知识宝库

一行SQL没改,查询速度飙升10倍?揭秘数据库“索引”的加速魔法

#数据库中索引的作用是什么?#


面试数据库中索引下推、覆盖索引,你会了吗

一、覆盖索引

首先看下创建的索引:

比如:现在有个场景是根据ep_id查询name,对应的sql应该是:

select name from ep where ep_id = '123'

MySql:索引的基本使用

一、索引基础概念

1. 什么是索引?

索引是数据库表的特殊数据结构(通常是B+树),用于

「ACCESS」由于将在索引、 主关键字、或关系中创建重复的值探索

在增加数据过程中,不断提示:由于将在索引、 主关键字、或关系中创建重复的值,请求对表的改变没有成功。 改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次

重新思考索引:数据库索引现代化的路径

索引是数据库性能的基础,但它们常常被视为“设置后就不再理会”的结构。随着数据环境的演变,包括混合云部署、实时分析和机器学习工作负载的出现,我们的索引策略也必须随之调整。

事实上,随着技术进步和数据量激增,十年前或二十年前行之有效的索引策略如今可能已不再是最优的。造成这一现象的原因多种多样,包括数据库管理系统为提升索引性能而进行的改进(如新增索引类型和选项),以及应用程序编写和维护方式的变革。让我们探讨这些问题,并揭示数据库应用中索引现代化的迫切需求。

炸裂!索引跳跃扫描一出,复合索引没首字段也能飞

你是不是也遇到过这种情况:建了复合索引(A,B,C),但查询时没用到字段 A,结果索引直接 “躺平”,数据库乖乖走全表扫描,查询慢得让人抓狂?别慌,索引跳跃扫描这个隐藏技能,能让你的复合索引在没首字段的情况下 “起死回生”,速度直接飙到飞起!

先说说为啥会有这种烦恼。比如你给 “订单表(orders)” 建了个复合索引(user_type, status, amount)(用户类型、订单状态、金额),想查 “所有状态为‘已支付’的订单金额”,写了这样的 SQL:

MySQL索引:从原理到实战的终极指南

MySQL索引原理揭秘

MySQL 索引是数据库高效查询的核心机制,其原理基于特定的数据结构(主要是 B+Tree)和数据库引擎(如 InnoDB)的实现策略。索引本质上是一种空间换时间的策略,虽然会占用额外存储空间,但能极大提升查询速度。

B+树的精妙设计

索引失效的10大“罪魁祸首”,你踩了几个?

当你的数据库查询从"火箭速度"沦为"龟速爬行",大概率是索引这个"导航系统"罢工了。今天我们就来盘点那些让索引失效的十大"罪魁祸首",看看你踩中了几个?

罪魁祸首1:隐式类型转换——数据库的"鸡同鸭讲"

把字符串类型的索引列当数字用,就像用中文和英文对话——虽然都是人类语言,但就是鸡同鸭讲。比如SELECT * FROM users WHERE user_id = 123,如果user_id是VARCHAR类型,MySQL会默默执行CAST(user_id AS UNSIGNED),这下索引彻底懵了:"我认识的user_id不是这样的啊!"

MySQL索引执行流程详解

一、MySQL索引执行流程图

关键特性解析

1、B+树结构优势

创建索引时候会考虑哪些因素?

哪些情况或字段适合加索引?
在经常需要搜索的

<< < 1 2 3 4 5 6 7 8 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接