网上有很多大神对数据库索引做了详细的教程,这里只是记录一些细节和自己的理解。
1.索引的构成
- innodb使用b+ tree做索引结构,MyIsam使用B-tree做索引结构。
- MyIsam的索引和data文件是分离的,即通过索引文件查到数据在data文件中的物理地址再寻址查询数据,而Innodb的索引和data文件是在一起的。
- Innodb选择B+tree的好处在于B+tree把数据节点放到叶子节点,非叶子节点只存放下一个子节点的地址,虽然会使每一次查询都需要访问到叶子节点,但因为非叶子节点不再存放实际数据地址,有更多的空间存放下更多的索引值。这样就能一次读取更多的索引值,减少IO次数。提升查询效率。(B树和B+树区别)
- 读取数据的时间由寻址时间+等待时间(IO WAIT)+数据传输时间构成,而寻址时间是最慢的。所以数据会尽量存放在同一柱面,同一磁道,同一磁片。
2.索引的类型
- 单一索引。即只有一列用于构成索引
- 组合索引。即有多列共同构成索引。组合索引的每个索引key由组成索引的列共同构成,如index(name,age),则索引为(name,age);mysql在构建b树的时候是根据第一列为准的大小顺序构建。同一个节点内的查找使用二分法等方式查找。
- 组合索引和多列分别索引完全不同。前者是合并了索引值的索引,而后者需要在各列的索引树之间来回查询,前者的性能明显优于后者。(前者只有一棵索引树,后者有多棵)
3.explain工具
4.索引跟where语句的关系
相关推荐
MSSQLserver数据库学习全程笔记及学习样例,从简单的数据库建立、建表到各种数据查询方法、视图建立与使用、存储过程及索引的建立与使用,从简单到深入到精深!无限全面,简直是数据库学习的极品和必备!
数据库 MySQL 学习笔记高级篇.md
Oracle学习笔记(索引),有具体的代码案例,创建索引,删除索引,重建索引等等
Oracle数据库学习笔记,包括课程PPT(数据库基础,简单查询,单行多行函数,多表连接,子查询,高级子查询,集合运算,层次查询,DML与事务控制,数据库的网络连接,创建维护表,约束,视图,序列索引和同义词,用户...
笔记是本人学习SQLServer一段时间后重新整理出来的,适合有一些入门基础的人学习。 ├─01 安装及使用 │ SQLServer2005安装及使用.txt │ ├─02 常用函数 │ function.sql │ ├─03 建表、建库 │ create.sql ...
6.20 sql(索引) 3 6.21 sql(软件项目流程) 3 6.22 查询(单表查询) 4 6.25 数据统计 5 6.27 SQL(多表查询与统计) 7 6.28 SQL(视图) 9 6.29 sql语法 10 7.4 sql(事务处理、游标) 17 7.5存储过程 21 7.6触发器 ...
│ Oracle 10G 数据库系统学习笔记.pdf │ Oracle DBA学习心得 --第0章 - ColorfulStar3399的专栏 - CSDN博客.mht │ Oracle DBA学习心得 --第1章 - ColorfulStar3399的专栏 - CSDN博客.mht │ Oracle Direct-Path ...
通过学习可以掌握良好的数据库设计原则,并能使用各种优化手段提升数据库性能,比如索引、分区、缓存等。 使用建议: 重点学习数据库优化部分,针对各种优化手段的示例代码进行理解和拓展实践。最后的设计案例也可以...
NULL 博文链接:https://littlevine.iteye.com/blog/2334541
高级部分的内容包含了视图的使用,存储过程的创建使用,索引,触发器,事务的使用,安全管理,数据库的备份与还原,最后对于提高性能简单总结 能学到什么:1. mysql的启动和关闭,使用数据库,对库的基本操作以及...
MySQL学习笔记(含基础、运维、进阶三部分) MySQL学习笔记(含基础、运维、进阶三部分) MySQL学习笔记(含基础、运维、进阶三部分) 包含了我学习 MySQL 过程中的笔记和资源,从入门到进阶的内容都有涉及。通过...
内容包括从基本的数据库设计理论到高效的查询优化技巧,涵盖了索引使用、存储过程、触发器以及数据安全等关键主题。此外,资源中还包括作者在学习过程中编写的笔记以及实际优化项目的案例分析,旨在为读者提供从理论...
通过学习可以全面掌握数据库性能优化的各种技术手段,并能使用主从复制、读写分离等方式实现数据库的高可用性和负载均衡。 使用建议: 重点学习性能优化部分的各种技术方案,逐一对应示例代码进行理解和拓展实践。高...
lucene数据库索引.txt 新闻系统全文检索的思绪.txt lucene学习笔记 1 .txt lucene学习笔记 2.txt lucene学习笔记 3 .txt lucene入门实战.txt Lucene 的学习 .txt Lucene-2.0学习文档 .txt Lucene入门与使用...
HandoutsMySQL和Oracle系统学习一. 开篇立意(~~~~必看,有说明~~~~)二. Oracle 篇数据库存在之意义基础概念(必须看,后面不会说明!!!)Oracle管理系统的介绍账户操作三. SQL语言二维表的创建约束example外键约束删除...
本文档为作者自学数据库t-sql语句时的学习笔记。适用于已经了解过数据库增删改查语法的用户学习,重点是讲解数据的对象以及如何去在SQL SERVER2008中创建函数+使用函数 内容有:索引视图规则、默认值、 局部变量、 ...
文档中包括Oracle基本的介绍,包含存储的介绍、基本数据对象(表、索引、触发器、视图、存储过程等),表空间的管理 ,如果升级到Oracle12C 以及数据库的物理布局和存储管理
丛书名: 学习笔记 出版社:清华大学出版社 ISBN:9787302282082 上架时间:2012-5-9 出版日期:2012 年5月 开本:16开 页码:564 版次:1-1 所属分类:计算机 > 软件与程序设计 > JAVA(J#) > Java 编辑推荐 ...
数据库中,通常会针对一个或者几个列建立索引,因此对于少量的特定条件的数据的访问,数据库可以有很高的效率,较低的延迟。由于数据的访问延迟较高,决定了 Hive 不适合在线数据查询。 6. 执行。Hive 中大多数查询...
Java/JavaEE 学习笔记 作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 一、Unix前言............7 二、...