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

linux学习笔记(38)mysql索引详解

索引详解

索引是什么

索引是一种特殊的文件,它包含着对数据表里所有记录的引用指针。简单讲,就像一本书前面的目录,能加快查询速度。
- 索引是帮助mysql高效获取数据的数据结构
- 索引存储在文件系统中
- 索引的文件存储形式与存储引擎有关
- 索引文件的结构

索引为什么选择b+树

可以考虑作为索引的数据结构有如下几种,下面介绍下不同数据结构的特点:
- hash表
- 二叉树
- b树
- b+树
使用hash表的缺点:
1)hash存储需要将所有的数据文件添加到内存,浪费空间
2)如果是等值查询,hash很快,但实际工作中范围查找更多,而不是等值查询,所以hash就不合适了

1. 索引的创建和使用

-- 创建普通索引CREATE INDEX idx_student_name ON students(name);-- 创建唯一索引CREATE UNIQUE INDEX idx_student_email ON students(email);-- 创建复合索引CREATE INDEX idx_student_class_score ON students(class_id, score);-- 查看索引SHOW INDEX FROM students;-- 删除索引DROP INDEX idx_student_name ON students;

2. 索引性能测试

-- 开启性能分析SET PROFILING = 1;-- 无索引查询SELECT * FROM students WHERE name = '张三';-- 创建索引后查询CREATE INDEX idx_name ON students(name);
SELECT * FROM students WHERE name = '张三';-- 查看查询时间SHOW PROFILES;

索引的核心思想

  1. 索引像书的目录 - 快速定位,避免全表扫描
  2. B+树结构 - 多层查找,效率极高
  3. 用EXPLAIN分析 - 查看索引是否生效
  4. 复合索引注意顺序 - (A,B)索引能查A,不能只查B
  5. 索引有代价 - 占用空间,降低写性能
黄金法则:只为经常查询、数据区分度高的字段创建索引!
http://www.dtcms.com/a/499204.html

相关文章:

  • M1安装RocketMQ消息队列
  • 广西壮族自治区住房和城乡建设厅网站网站内页制作
  • PDFium导出pdf 图像
  • C++11标准 上 (万字解析)
  • Java基础语法—字面量、变量详解、存储数据原理
  • 手工视频制作网站移动网站建设初学视频教程
  • 【shell】每日shell练习(系统服务状态监控/系统性能瓶颈分析)
  • Swift 下标脚本
  • Spring Boot 3零基础教程,WEB 开发 默认页签图标 Favicon 笔记28
  • php 网站部署杭州企业自助建站系统
  • IntelliJ IDEA 2023中为 Spring Boot 项目添加注释模板
  • Java Web安全防护:SQL注入、XSS攻击的预防与处理
  • leetcode 912.排序数组
  • 个人网站可以做商城吗seo三人行网站
  • 第3讲:Go垃圾回收机制与性能优化
  • Mac 桌面动态壁纸软件|Live Wallpaper 4K Pro v19.7 安装包使用教程(附安装包)
  • 简易网站开发网站建设的各个环节
  • 用 Selenium 搞定动态网页:模拟点击、滚动、登录全流程
  • VBA数据结构抉择战:Dictionary与Collection谁才是效率王者?
  • macos虚拟机-演示篇三配置clover引导
  • 【小白笔记】岛屿的周长(Island Perimeter)
  • 【C# OOP 入门到精通】从基础概念到 MVC 实战(含 SOLID 原则与完整代码)
  • 安徽省建设厅官网南宁seo外包要求
  • 算法实现迭代4_冒泡排序
  • uploads-labs靶场通关(1)
  • 网站建设标准合同福州做网站的公司多少钱
  • 类转函数(Class to Function)
  • Java-153 深入浅出 MongoDB 全面的适用场景分析与选型指南 场景应用指南
  • Makefile 模式规则精讲:从 ​​%.o: %.c​​ 到静态模式规则的终极自动化
  • app免费下载网站地址进入产品做网站如何谁来维护价格