MySQL - 表索引概述

2023-11-08

索引概述

  • 基本概念
    日常生活中,我们经常会在电话号码簿中查阅“某人”的电话号码,按姓查询或者按字母排序查询; 在字典中查阅“某个词”的读音和含义等等,以快速的找到特定记录。在这里,“姓”和“字母”都可看作是索引, 而按“姓”或者“字母”查询则是按索引查询!

  • 索引是一种特殊的数据库结构,可以用来快速查询数据库表中的特定记录,是提高数据库性能的重要方式。MySQL中,所有的数据类型都可以被索引。

  • 通过索引,查询数据时可以不必读完记录的所有信息,而只是查询索引列,否则数据库系统将读取每条记录的所有信息进行匹配。例如,索引相当于新华字典的音序表,如果要查“过”字,如果不适用音序,就需要从字典的第一页开始翻几百页;如果提取拼音出来,构成音序表,就只需要从10多页的音序表中直接查找,这样就可以大大节省时间。因此,使用索引可以在很大程度上提高数据库的查询速度,有效地提高了数据库系统的性能。

索引类型

  • 索引包括 普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引 等。

索引存储

  • 数据库底层索引实现主要有两种存储类型,B树(BTREE)和哈希(HASH)索引,InnoDB和MyISAM 使用BTREE索引;而MEMORY 存储引擎可以使用BTREE 和HASH 索引,默认用BTREE.在没有指定的情况下,数据库使用的引擎是 InnoDB。

索引优点

  • 可以提高检索数据的速度。

索引缺点

  • 创建和维护索引需要耗费时间,耗费时间的数量随着数据量的增加而增加;
  • 索引需要占用物理空间,每一个索引要占一定的物理空间;
  • 增加、删除和修改数据时,要动态地维护索引,造成数据的维护速度降低了。

使用建议

  • 索引可以提高查询的速度,但是会影响插入记录的速度,因为向有索引的表中插入记录时,数据库系统会按照索引进行排序,这样就降低了插入记录的速度,插入大量记录时的速度影响更加明显。这种情况下,最好的办法是先删除表中的索引,然后插入数据,插入完成后再创建索引。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL - 表索引概述 的相关文章

随机推荐

  • 最新的ssm毕业设计题目50例

    ssm毕业设计题目1 10题 1 基于SSM的车险管理系统设计与实现 2 基于SSM框架的学子商城系统的设计与实现 3 基于SSM的高校排课系统的研究与应用 4 基于SSM的湖南省入境旅游客源市场结构分析 5 基于SSM模型的重庆制造业主导
  • VOSviewer安装及配置

    VOSviewer安装网址 VOSviewer Download 根据自己电脑安装 并且VOSviewer要求JAVA 使用的是1 8 0 https www oracle com technetwork java javase downl
  • 关于maven <dependencyManagement>标签的问题

    项目场景 我giao 大家好跟大家分享一个使用maven时发现的小问题 关于父工程pom文件中 dependencyManagement 标签的问题 问题描述 在新建夫工程pom文件时 在内部的依赖不会马上到中央仓库中去下载jar包 而是在
  • 李宏毅-DeepLearning-2017-Unsupervised Learning:Neighbor Embedding

    数据降维的方法 Manifold Learning 流行学习 1 什么是流形 流形学习的观点 认为我们所能观察到的数据实际上是由一个低维流行映射到高维空间的 由于数据内部特征的限制 一些高维中的数据会产生维度上的冗余 实际上这些数据只要比较
  • 将一台笔记本电脑作为另一台笔记本电脑的扩展显示器

    步骤 步骤1 打开设置 可以使用 快捷键win i 打开设置 然后点击 系统 步骤2 点击 投影到此电脑 可以看到右边的选项是灰色 不可以选 然后点击 可选功能 如果是可选的 可以跳过步骤4 步骤3 查找是否安装了 无线显示器 如果没有安装
  • 【机器学习】Tensorflow概率编程:线性混合模型

    线性模型是我们最常见到的 最理想的数学模型 基本的线性模型是数据科学入门的基本案例 然而现实生活中的线性问题 很大几率不适用于基本的线性模型 需要使用线性混合模型来描述 Tensorflow edward提供对这类问题的解决方案 大部分数据
  • 记一次文件因content-type问题无法打开的经历

    记一次文件因content type问题无法打开的经历 引 场景 方案 Jsoup的Content Type simplemagic file can t open 流不可重复消费问题 Tika 总结 引 在Http请求头和响应头都有这个a
  • 什么是 Scrum 工件?

    What is Scrum Artifacts 随着我们的技术系统和项目在规模和复杂性方面不断发展 Scrum 会议和敏捷方法已成为许多公司开发过程中不可或缺的一部分 Scrum 会议是团队成员协作的好方法 可确保队列中的所有项目和任务都得
  • IBM RATIONAL BUILDFORGE入门

    最近在项目中使用了BUILDFORGE作为自动化部署工具进行项目的自动化部署 在此写下自己在该工具中入门的心得 1 首先需要建立服务器认证 可以为多台服务器设置相同的一个服务器认证 用该认证中的用户名和密码去登录服务器 2 其次建立服务器
  • Redis的RDB和AOF两种存储方式

    Redis其实就是一个用C语言写的一个程序 这个程序用来存储 key value数据 数据先放在内存 然后写入磁盘指定位置 这么理解十分肤浅 但tm好像就是这样啊 下面我们梳理一下Redis存储两种方式 RDB和AOF 第一种方式 RDB
  • Python求水仙花数

    水仙花数 Narcissistic Number 是一个三位数 其各位数字的立方和等于该数本身 例如 153 1 3 5 3 3 3 因此153是一个水仙花数 以下是一个简单的Python代码来找出所有的水仙花数 python def is
  • python数据分许基础

    1 单选题 单选题 下列关于数据和数据分析的说法正确的是 A 数据就是数据库中的表格 B 文字 声音 图像这些都是数据 C 数据分析的数据只能是结构化的 D 数据分析不可能预测未来几天的天气变化 正确答案 B 文字 声音 图像这些都是数据
  • 理解JavaScript的编译过程与运行机制

    JavaScript引擎 不是逐条解释执行javaScript代码 而是按照代码块一段段解释执行 所谓代码块就是使用
  • LeetCode 172. Factorial Trailing Zeroes

    Given an integer n return the number of trailing zeroes in n Follow up Could you write a solution that works in logarith
  • Cookie增删改查

    cookie 浏览器请求访问服务器 用请求头 首部行等信息来获取数据 服务器就会给出响应头 以及set cookie 给出的是唯一的cookie 之后就返回给浏览器 当浏览器第二次请求的时候 除了发送请求头之外还要发送cookie id 1
  • Python计算日照总辐射量

    import numpy as np from datetime import datetime import pandas as pd def get dayofyear date string param date string 字符串
  • YOLOv5训练目标检测数据集(小白)

    一 提前准备工作 1 利用labelimg软件给收集到的图片打标签 具体步骤网上都有 2 下载好yolov5 v6 1 源码 下载地址 https github com ultralytics yolov5 用pycharm打开 在项目目录
  • flutter 点击事件写法

    onTapUp onTapDown void onTapDown TapUpDetails details async 或者是 onTapDown e selectCommonWordIndex index mySetState
  • vue-入门篇

    1 目标 了解什么是VUE 2 vue基础 2 1 概述 官网 https cn vuejs org Vue js是一套构建用户界面的渐进式框架 Vue 采用自底向上增量开发的设计 Vue 的核心库只关注视图层 它不仅易于上手 还便于与第三
  • MySQL - 表索引概述

    索引概述 基本概念 日常生活中 我们经常会在电话号码簿中查阅 某人 的电话号码 按姓查询或者按字母排序查询 在字典中查阅 某个词 的读音和含义等等 以快速的找到特定记录 在这里 姓 和 字母 都可看作是索引 而按 姓 或者 字母 查询则是按