首页 > 其他分享 >关于创建高性能的索引

关于创建高性能的索引

时间:2022-12-30 12:44:06浏览次数:40  
标签:last name 高性能 数据库 索引 查找 创建 null

关于创建高性能的索引

索引是什么?索引相当于一本书的目录,我们要查找某一知识点,首先会到目录章节中进行比对,根据目录的指引快速定位到我们需要查找的某一指定章节的内容。

这一动作相比于我们拿起一本书从第一页开始翻阅查找我们想要的章节点,显然效率高出了很多。

对于数据库而言我们对数据库中的某一数据进行查找,其实就相当于我们在翻阅一本书进行查阅定位我们想要的内容,那那么对于这种方法的查找无一例外,如果我们要查阅的这本书比较单薄(数据量较小),对于查询所花费的时间来说是比较少的,对于如果这本书非常的厚(数据库庞大),那么如果去查找,这个过程就非常的占用计算机的性能,非常的消耗时间了。

所以说到这里,“索引” 这一概念在数据库中的体现也就变得清晰了许多,给数据库的字段添加索引其实就是为了解决,当数据库过于庞大,查询所带来的性能占用过高这样的问题的。

在《高性能MySQL》书中的 5.1.1 章节中提到,关于索引几个基本的原理图,如下图所示:

 图 5-1

图中描述的是 B-Tree 的基本存储结构

150页 案例

假设有如下的数据表:

CREATE TABLE People(
    last_name varchar(50) 	not null,
    first_name varchar(50) 	not null,
    dob date 				not null,
    gender enum('m','f')	not null,
    key(last_name,first_name,dob)
)

 图5-2

根据上图 5-1 可以看到图 5-2 中所描述的 People 表的基本结构为:

首先是根据 last_name 字段按照字母的 A~Z 顺序进行建立索引,如果字段 last_name 相同则根据 first_name 字段建立索引。前两个字段的数据都相同的时候,会根据 date 建立索引。

标签:last,name,高性能,数据库,索引,查找,创建,null
From: https://www.cnblogs.com/peggys/p/17014631.html

相关文章

  • MySQL中B-Tree和B+Tree创建过程
    1.B-Tree以一颗最大度数为5(5阶)的B-tree为例,每个节点最多存储4个key,5个指针。意味着:在一个有n个key的节点中,有n+1个指针,原理如下图:现在,依次存入如下数据:200、100、400、......
  • C#/VB.NET 创建PDF/UA文件
    1.什么是PDF/UA文件PDF/UA,即UniversallyAccessiblePDF,该格式的PDF文件是于2012年8月以ISO标准14289-1发布的、具有普遍可访问的PDF文档标准。为带标签的PDF文档(TaggedPDF......
  • 5-4 项目创建 + 模板下载
    1脚手架初始化项目模板开发1.1手动创建项目模板mkdirzmoon-cli-dev-templatecd./zmoon-cli-dev-templatenpminit-ymkdirzmoon-cli-dev-template-vue3cd./zmo......
  • 编写高性能 Java 代码的最佳实践
    摘要:本文首先介绍了负载测试、基于APM工具的应用程序和服务器监控,随后介绍了编写高性能Java代码的一些最佳实践。最后研究了JVM特定的调优技巧、数据库端的优化和架构方面的......
  • 5-1 脚手架创建项目流程架构设计
    1一周导读1.1标题完成imooc-cli脚手架创建项目流程开发1.2将收获什么命令行交互方法服务端框架eggjs的应用和API开发方法eggjs集成云mongodb1.3主......
  • 5-2 项目创建前准备阶段
    1项目创建前准备阶段exec(){try{//1.准备阶段this.prepare()//2.下载模板//3.安装模板}catch(e){log.error(e.message)}}......
  • 手把手的SpringBoot教程,SpringBoot创建web项目(三)
    这节课,我们来学习一下SpringBoot的环境配置,在SpringBoot中,所有的配置都写在application.properties中:我们启动项目,默认端口是8080,我们现在给他配置一个8088:server.port=808......
  • Mysql索引覆盖
    作者:孙涛1.什么是覆盖索引通常情况下,我们创建索引的时候只关注where条件,不过这只是索引优化的一个方向。优秀的索引设计应该纵观整个查询,而不仅仅是where条件部分,还应该关注......
  • Mysql索引覆盖
    作者:孙涛1.什么是覆盖索引通常情况下,我们创建索引的时候只关注where条件,不过这只是索引优化的一个方向。优秀的索引设计应该纵观整个查询,而不仅仅是where条件部分,还应该......
  • mysql之索引
    索引是什么?索引是存储引擎用于快速找到记录的一种数据结构或存储结构,目录就是经典的索引。索引的分类数据结构分类:B+树索引,哈希索引,全文索引存储方式分类:聚簇索引,非聚......