`

数据库索引学习笔记

 
阅读更多

网上有很多大神对数据库索引做了详细的教程,这里只是记录一些细节和自己的理解。

 

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语句的关系

分享到:
评论

相关推荐

    数据库 MySQL 学习笔记高级篇.md

    数据库 MySQL 学习笔记高级篇.md

    数据库学习全程笔记及学习样例

    本文将深入探讨“数据库学习全程笔记及学习样例”中的关键知识点,帮助你从入门到精通,掌握SQL语言和MSSQL Server数据库的使用。 首先,我们从基础开始。数据库创建是学习的起点,这包括安装MSSQL Server,配置...

    SQL 数据库语言学习笔记

    本篇“SQL数据库语言学习笔记”将深入探讨SQL的基本概念、语法和常用操作,帮助你掌握这个强大的工具。 一、SQL简介 SQL起源于1970年代,由IBM的研究员开发,其设计目标是为了解决日益复杂的数据查询和管理问题。...

    数据库系统原理学习笔记

    这份学习笔记涵盖了数据库系统的基础概念、设计原则以及SQL语言的应用。以下是笔记中的关键知识点: 1. **数据库概述**:数据库是一种有组织地存储和管理数据的系统,提供了数据的结构化存储、数据操作和数据控制等...

    各种主流数据库学习笔记

    《韩顺平老师oracle视频教程听课笔记.pdf》将带你深入Oracle的世界,学习其高级特性,如PL/SQL编程、分区表、物质化视图、数据库链接、闪回技术、数据守护和RAC(实时应用集群)等。Oracle数据库的复杂性和灵活性使...

    oracle 数据库 SQL学习笔记

    Oracle数据库是全球广泛使用的...总的来说,Oracle数据库SQL学习笔记应该涵盖这些核心领域,并深入探讨每个主题,包括实例、最佳实践和问题解决策略。通过持续学习和实践,你可以成为一名熟练的Oracle数据库专业人员。

    T-SQL数据库学习笔记

    在T-SQL中创建数据库是非常基础的操作之一,它允许用户定义一个全新的数据库来存储数据。以下是一个示例命令,展示了如何创建一个名为“ѧѡο”的数据库,并指定其初始大小、最大大小以及增长速度。 ```sql CREATE...

    2009数据库系统工程师学习笔记

    2009年的数据库系统工程师学习笔记可能涵盖了当时该领域的核心概念和技术。以下是对这些笔记可能包含的一些关键知识点的详细说明: 1. **数据库基础理论**: - 数据模型:包括关系模型(如SQL)、网络模型、层次...

    关于数据库的学习笔记,mysql数据库教程.zip

    这份“关于数据库的学习笔记,mysql数据库教程”包含了丰富的知识内容,旨在帮助初学者和进阶者深入理解MySQL的各个方面。 首先,MySQL的基础知识是学习的重点。数据库是用于存储和管理数据的系统,而MySQL则是实现...

    Mysql数据库优化学习笔记

    MySQL数据库优化学习笔记 在数据库管理系统中,MySQL是一款广泛应用的关系型数据库,因其开源、免费、高效的特点,被广泛用于各种规模的项目。然而,随着数据量的增长和业务复杂度的提高,性能优化变得至关重要。本...

    数据库的课程学习笔记

    这篇学习笔记将深入探讨数据库的基本概念、设计原则以及常见操作。 首先,我们要了解什么是数据库。数据库是一个有组织的数据集合,它提供了数据的存储、查询、更新和管理等功能。常见的数据库类型包括关系型数据库...

    数据库学习笔记.zip

    本学习笔记将深入探讨MySQL的基本概念、安装配置、数据类型、SQL语言、表的操作、索引、视图、存储过程、触发器、事务处理以及备份与恢复等多个方面。 一、基本概念 MySQL是一款基于SQL(Structured Query Language...

    MySQL数据库学习笔记.pdf

    总结来说,MySQL数据库的学习涵盖了数据库的基础概念、SQL语言的使用、数据类型的选择、索引优化以及变量和运算等内容,这些是构建和维护高效数据库系统的基础。通过深入理解和实践,你可以更好地掌握这个强大的...

    数据库系统概论学习笔记(一)

    ### 数据库系统概论学习笔记(一) #### 1. 数据库系统的主要特点与全貌 数据库系统(Database System, DBS)是一个用于管理和存储数据的综合系统,它包括硬件、软件、数据库管理员(DBA)及用户等多个组成部分。...

    Oracle数据库安装笔记+学习笔记

    学习编写高效的SQL查询,理解索引原理,以及如何通过 Explain Plan 分析查询执行计划,对于提升数据库性能至关重要。此外,Oracle还提供了许多性能优化工具和特性,如SQL Tuning Advisor、Automatic Workload ...

    (学习笔记)软考-数据库系统工程师.zip

    【数据库系统工程师学习笔记概述】 本学习笔记是针对“软考-数据库系统工程师”这一资格认证的备考资料,作者在复习过程中对重要知识点进行了整理,特别标记了关键内容,帮助考生高效备考。通过作者的努力,他在...

    记录学习MySQL数据库的学习笔记和各种资料.zip

    这份压缩包文件"记录学习MySQL数据库的学习笔记和各种资料.zip"显然包含了一系列与MySQL相关的学习资源,可能是笔记、教程、实战案例等,对于初学者或者希望深入理解MySQL的开发者来说非常有价值。 MySQL的核心知识...

    数据库的学习笔记.docx

    本篇学习笔记主要以PostgreSQL数据库为例,探讨数据库的创建、查询、表的建立及管理等基础知识。 首先,创建数据库是使用`createdb`命令,如在Linux环境下输入`createdb qji`,这会创建一个名为`qji`的新数据库。...

    Oracle SQLServer数据库 学习笔记

    这篇学习笔记将深入探讨这两个系统的概念、特性和应用。 一、Oracle数据库系统 Oracle数据库是由甲骨文公司开发的一款强大、高性能的数据库解决方案。其主要特点包括: 1. **分布式数据库**:Oracle支持多节点的...

Global site tag (gtag.js) - Google Analytics