概要:

数据库对象索引其实与书的目录非常相似,主要是为了提高从表中检索数据的速度。

由于数据存储在数据库表中,所以索引是创建在数据库表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储在数据结构(B-树或哈希表)中。通过MYSQL可以快速有效地查找与键值相关联的字段。

索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。

根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。

大多数存储引擎有更高的限制。MYSQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关;

MYISAM和InnoDB存储引擎只支持BTREE索引;MEMORY和HEAP存储引擎可以支持HASH和BTREE索引

索引的优点:

1、通过创建唯一索引,保证数据库表每行数据的唯一性

2、大大加快数据查询速度

3、在使用分组和排序进行数据查询时,可以显著减少查询中分组和排序的时间

索引的缺点:

1、维护索引需要耗费数据库资源

2、索引需要占用磁盘空间,索引文件可能比数据文件更快达到最大文件尺寸

3、当对表的数据进行增删改的时候,因为要维护索引,速度会受到影响

一般下面情况适合创建索引:

1、经常被查询的字段,即在WHERE子句中出现的字段

2、在分组的字段,即在GROUP BY子句中出现的字段

3、存在依赖关系的子表和父表之间的联合查询,即主键或外键字段

4、设置唯一完整性约束的字段

一般下面情况不适合创建索引:

1、在查询中很少被使用的字段

2、拥有许多重复值的字段

索引的分类

1、普通索引和唯一索引

主键索引是一种特殊的唯一索引,不允许有空值

2、单列索引和复合索引

单列索引只包含单个列

复合索引指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用复合索引时遵循最左前缀集合

3、全文索引

全文索引类型为FULLTEXT,在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值。全文索引可以在

CHAR、VARCHAR、TEXT类型列上创建。MYSQL只有MYISAM存储引擎支持全文索引

4、空间索引

空间索引是对空间数据类型的字段建立的索引,MYSQL中的空间数据类型有4种,

分别是GEOMETRY、POINT、LINESTRING、POLYGON。

MYSQL使用SPATIAL关键字进行扩展,使得能够用于创建正规索引类型的语法创建空间索引。创建空间索引的列,必须

将其声明为NOT NULL,空间索引只能在存储引擎为MYISAM的表中创建

mysql新增阵列df_DF学Mysql(三)——索引操作相关推荐

  1. mysql新增阵列df_DF学Mysql(二)——数据表的基本操作

    1.创建数据表 先使用"USE "指定在哪个数据库中操作 CREATE TABLE ( 字段1 数据类型 [列级别约束条件] [默认值], 字段2 数据类型 [列级别约束条件] [ ...

  2. mysql df_DF学Mysql(一)——数据库基本操作

    [技巧.Dotnet]轻松实现“强制.net程序以管理员身份运行". 使用场景: 程序中不少操作都需要特殊权限,有时为了方便,直接让程序以管理员方式运行. (在商业软件中,其实应该尽量避免以 ...

  3. mysql新增字段位置_图解MySQL | [原理解析] MySQL 为表添加列 是怎么quot;立刻quot;完成的...

    在上一期图解 图解MySQL | MySQL DDL为什么成本高?中,我们介绍了: 传统情况下,为表添加列需要对表进行重建 腾讯团队为 MySQL 引入了 Instant Add Column 的方案 ...

  4. mysql约束_从零开始学 MySQL - SQL 约束分类

    目录1.实验简介2.约束 今天我们学习一下 SQL 的约束分类. 1.实验简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验将在实践操作中熟悉 MySQL ...

  5. mysql和python先学哪个_Python数据库操作 初识mysql和mysql基本操作#学习猿地

    # 3.认识和操作一下mysql的基本命令 #### 登录mysql,在终端输入以下命令,进行登录 `mysql -u root -p` ```sql MacBook-Pro:~ yc$ mysql ...

  6. mysql建立学号与课程编号的索引_数据库mysql 四约束 三范式 六索引

    mysql 四约束 三范式 六索引 1.MySQL 约束 1.约束的作用 分类 表列的primary key主键,unique唯一键,not null非空等修饰符常常被称作约束(constraint) ...

  7. mysql 节点查根_(三)B数、B+树及在数据库索引中应用

    在算法逻辑上,二叉树的查找效率和比较次数都是最小的,但是在实际问题中,还要考虑磁盘IO. 数据库索引是存储在磁盘上的,当数据量比较大时,索引可能几个G. 当我们利用索引查询的时候,不能将整个索引全部加 ...

  8. 读薄《高性能MySql》(三)索引优化

    读薄<高性能MySql>(一)MySql基本知识 读薄<高性能MySql>(二)Scheme与数据优化 读薄<高性能MySql>(三)索引优化 读薄<高性能M ...

  9. linux新增mysql用户_MySQL创建用户的三种方法

    前言:MySQL创建用户的方法分成三种:INSERT USER表的方法.CREATE USER的方法.GRANT的方法. 一.账号名称的构成方式 账号的组成方式:用户名+主机(所以可以出现重复的用户名 ...

最新文章

  1. ASP.NET Core微服务(四)——【静态vue使用axios解析接口】
  2. SQLLite (三):sqlite3_get_table,sqlite3_free_table
  3. Linux--网卡聚合简单脚本(bond0)
  4. java -Date、DateFormat、Calendar类
  5. 架构系列二:使用Nginx+tomcat实现集群部署
  6. eclipse离线安装Activiti Designer插件
  7. swift调用oc_OC与Swift混编,三种场景的实现方式
  8. 张一鸣退一步,换字节跳动的“海阔天空”
  9. Magcodes.WeiChat——自定义CustomCreationConverter之实现微信自定义菜单的序列化
  10. Windows系统服务器IIS7.5 Asp.net支持10万请求的设置方法
  11. java snmp mib库接收_SNMP MIB 功能开发详细步骤
  12. android imagebutton 点击效果缩小,imagebutton 设置点击和按压效果
  13. 竞争情报的网络信息源
  14. SLG手游的战斗抽象
  15. DC(Design Compiler)使用说明
  16. bitnami redmine 4 windows一键式版本安装企业微信插件方法
  17. DSO Framer ActiveX 控件
  18. 计算机领域的术语与缩写,计算机和生活常用缩写与术语
  19. 22个值得收藏的android开源代码-UI篇,kotlin类型转换
  20. 哪个牌子的护眼台灯适合学生?国AA级照度的护眼台灯

热门文章

  1. Apache JMeter 测试webservice接口 中文乱码
  2. 2022春招马蜂窝旅游网第一轮面试 面经
  3. 使用Git推送代码到GitHub远程仓库
  4. python serial 发送ctl+c_[已解决]shell 脚本 给命令发送 Ctrl+C信号
  5. 编写一个C程序,实现以下功能:用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp(char *p1,char *p2);设p1指向字符串s
  6. 二叉树高度的代码解析_剑指offer 从上到下打印二叉树
  7. Python for循环 - Python零基础入门教程
  8. mysql数据库的备份和恢复的常用方法_MySQL数据库备份与恢复方法(转)
  9. php mysql删除失败_php mysql删除的代码哪里出错了?
  10. java对xml解析_Java中对xml的解析