MySQL性能优化:索引优化

news/2024/11/18 2:33:04/

一、索引基础知识

(一)辅助索引/二级索引

叶子节点除了包含键值以外,每个叶子节点中的索引行中还包含了一个书签( bookmark) (每个索引一颗B+树,不包含行记录的全部数据)

(二) 回表

通过辅助索引获得主键,然后再通过主键索引(聚集索引)来找到一个完整的行记录。

 (三)联合索引/复合索引

将表上的多个列组合起来进行索引我们称之为联合索引或者复合索引

(四) 覆盖索引

从辅助索引中就可以得到查询的记录,而不需要查询聚集索引中的记录

二、高性能的索引创建策略

1、一个索引就是一个B+树,索引让我们的查询可以快速定位和扫描到我们需要的数据记录上,加快查询的速度。

2、一个select查询语句在执行过程中一般最多能使用一个二级索引,即使在where条件中用了多个二级索引。

(一)索引列的类型尽量小

索引的类型比较小处理起来会比较快。

(二)索引列的选择

索引的选择性/离散性:不重复的索引值和数据表的记录总数(N)的比值(范围1/N到1) 越高则查询效率越高。

(三)前缀索引

针对blob、text、很长的varchar字段,mysql不支持索引他们的全部长度,需建立前缀索引。 语法:Alter table tableName add key/index (column(X)) 前缀索引的选择(X): 缺点:无法应用于order by 和 group by,也无法做覆盖索引。

(四)后缀索引

mysql不支持后缀索引。 可以通过在表中添加一个新列,用于保存要被建立后缀索引的字段倒排值,然后建立前缀索引。 场景:查询邮箱后缀。

(五)只为搜索、排序或分组的列创建索引

建立索引在插入数据时会耗费大量资源,因此在不经常使用查询的字段无需建立索引。

(六)多列索引

将选择性最高的列放到索引最前列 根据那些运行频率最高的查询来调整索引列的顺序 优化性能时,需要使用相同的列但顺序不同的索引来满足不同类型的查询需求。

总结:

对于一个查询而言,三星索引可能是其最好的索引。 满足的条件如下: 索引将相关的记录放到一起则获得一星 如果索引中的数据顺序和查找中的排列顺序一致则获得二星(排序星) 如果索引中的列包含了查询中需要的全部列则获得三星(宽索引星)


http://www.ppmy.cn/news/439992.html

相关文章

前端小练-平台首页介绍+动画

文章目录 前言结构头部外部容器文字 主体小球动画打字机动画特效实现监控 完整代码总结 前言 时间飞逝,快大四了,刚好最近看不下去考研的,而且要准备这个毕设选题了,然后就想着怎么能够把自己所学的东西都用上,一开始…

C++练习题第9套

81.在C中&#xff0c;下面哪个不是CPP文件扩展名&#xff1f; a. .cpp b. .hpp c. .cc d. .cxx 82.在C中&#xff0c;下面哪个函数不是输入/输出函数&#xff1f; a. putchar() b. scanf() c. cout<< d. getchar() 83.以下哪个关键字不是C中的关键字&#xff1f;…

物联网智能硬件解析之万能空调遥控器实现 Ardunio_通过红外线发射灯遥控空调

这其实就是空调万能遥控器的原理。 用arduion遥控空调。 首先我做了一下以下几点 &#xff08;1&#xff09;首先有一个红外线接收管 IR receiver &#xff08;2&#xff09;红外线发射灯 &#xff08;3&#xff09;arduino uno的板子 &#xff08;4&#xff09;几条面包线…

面向对象三大特征

面向对象三大特征 众所周知&#xff0c;面向对象有三大特征 封装继承多态 封装继承多态&#xff0c;就好像武侠小说里的“金、木、水、火、土”一样&#xff0c;相生相克 封装 封装就像是武侠里的金钟罩铁布衫&#xff0c;把对象的数据和方法封装起来&#xff0c;对外只暴露…

C# 中 Console.WriteLine 常见的几种形式及其用法差异

在 C# 的 Console.WriteLine 方法中&#xff0c;有多种重载形式可以用于不同的输出需求。下面是常见的几种形式及其用法差异&#xff1a; 输出字符串&#xff1a; Copy code Console.WriteLine("Hello, World!"); 这是最简单的用法&#xff0c;直接将字符串作为参数…

ROS学习记录10——.launch文件的编写与使用

零.前言 roslacunch&#xff0c;只是方便我们一次运行大量节点&#xff0c;或者通过单个脚本运行多个节点的工具。 这部分没啥好讲的&#xff0c;主要使用为机翻调校官方文档&#xff0c;外加一些实例&#xff0c; 官方文档的地址&#xff1a;roslaunch/XML 一.元素结构 ros…

Mocor

简介 Mocor 是展讯推出的一种手机平台的代号。首次出现在2007年的“展讯技术论坛”上&#xff0c;展讯总裁武平博士正式向外界公开的一种平台战略。 图标 展讯Mocor™平台致力于无线通信、多媒体、互联网技术的融合&#xff0c;为客户提供极具竞争力的平台解决方案。 展讯Mocor…

微星 MAG B660M MORTAR WIFI DDR i5-12600KF电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。 硬件型号驱动情况 主板微星 MAG B660M MORTAR WIFI DDR 处理器i5-12600KF已驱动 内存12 GB已驱动 硬盘500GB WD Blue Solid State Drive & 2TB Seagate Mobile Hard Drive (Upgraded)已驱动 显卡RX580已驱动 声卡瑞昱 …