Mysql中索引的 创建,查看,删除,修改

创建索引

MySQL创建索引的语法如下:

1
2
3
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[USING index_type]
ON table_name (index_col_name,...)

其中对应的语法变量信息如下:

[UNIQUE|FULLTEXT|SPATIAL]
中括号中的这三个关键字表示创建的索引类型,它们分别表示唯一索引、全文索引、空间索引三种不同的索引类型。如果我们不指定任何关键字,则默认为普通索引。
index_name
index_name表示索引的名称,由用户自行定义,以便于以后对该索引进行修改等管理操作。
index_type
index_type表示索引的具体实现方式,在MySQL中,有两种不同形式的索引——BTREE索引和HASH索引。在存储引擎为MyISAM和InnoDB的表中只能使用BTREE,其默认值就是BTREE;在存储引擎为MEMORY或者HEAP的表中可以使用HASH和BTREE两种类型的索引,其默认值为HASH。
index_col_name
index_col_name表示需要创建索引的字段名称,我们还可以针对多个字段创建复合索引,只需要在多个字段名称之间以英文逗号隔开即可。
此外,对于CHAR或VARCHAR类型的字段,我们还可以只使用字段内容前面的一部分来创建索引,只需要在对应的字段名称后面加上形如(length)的指令即可,表示只需要使用字段内容前面的length个字符来创建索引。在这里,我们以User表的username字段(类型为VARCHAR(50))为例,使用username字段的6个字符前缀来创建索引。

1
CREATE INDEX idx_user_username ON user (username(6));

由于多数字段的前6个字符通常不同,所以此索引不会比使用字段的全部内容创建的索引速度慢很多。另外,使用字段的一部分创建索引可以使索引文件大大减小,从而节省了大量的磁盘空间,有可能提高INSERT操作的速度。

在MySQL中,前缀长度最大值为255字节。对于存储引擎为MyISAM或InnoDB的数据表,前缀最长为1000字节。

必须注意的是,在MySQL中,对于TEXT和BLOB这种大数据类型的字段,必须给出前缀长度(length)才能成功创建索引。

备注1:上述创建索引的语法还具有以下变体:

1
2
ALTER TABLE table_name
ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name (index_col_name,...) [USING index_type]

备注2:在MySQL中,只有当数据表的存储引擎为MyISAM, InnoDB或BDB类型时,你才能向具有NULL值的列或者数据类型为TEXT或BLOB的列添加索引。

删除索引

在MySQL中删除索引的方法非常简单,其完整语法如下:

1
2
3
--删除指定表中指定名称的索引
ALTER TABLE table_name
DROP INDEX index_name;

在这里,我们编写SQL语句将上面创建索引的例子中的索引idx_user_username删除掉,代码详情如下:

1
2
3
--删除名称为idx_user_username的索引
ALTER TABLE user
DROP INDEX idx_user_username;

修改索引

在MySQL中并没有提供修改索引的直接指令,一般情况下,我们需要先删除掉原索引,再根据需要创建一个同名的索引,从而变相地实现修改索引操作。

1
2
3
4
5
--先删除
ALTER TABLE user
DROP INDEX idx_user_username;
--再以修改后的内容创建同名索引
CREATE INDEX idx_user_username ON user (username(8));

查看索引

在MySQL中,要查看某个数据库表中的索引也非常简单,只需要使用以下两个命令中的任意一种即可。

1
2
3
4
--如果查看索引前,没有使用user db_name等命令指定具体的数据库,则必须加上FROM db_name
SHOW INDEX FROM table_name [FROM db_name]
--如果查看索引前,没有使用user db_name等命令指定具体的数据库,则必须加上db_name.前缀
SHOW INDEX FROM [db_name.]table_name

转载于:https://www.cnblogs.com/EdwinChan/p/8461164.html

Mysql中索引的 创建,查看,删除,修改相关推荐

  1. 一篇文章带你搞定 MongoDB 中的索引(创建/查看/删除)

    索引就像图书的目录一样,可以让我们快速定位到需要的内容,关系型数据库中有索引,NoSQL 中当然也有,本文我们就先来简单介绍下 MongoDB 中的索引. 文章目录 一.索引创建 二.查看索引 三.删 ...

  2. mysql重建索引_mysql创建、删除、重建、删除索引的操作命令的一些总结

    创建索引 索引的创建可以在create table语句中进行,也可以在表创建完成后单独的使用create index或者alter table来给表增加索引.一下语句分别是如何创建主键的索引(prim ...

  3. sql语句中索引的创建、删除及使用

    索引创建.删除与使用: 1.1 create方式创建索引: CREATE   [UNIQUE -- 唯一索引   | FULLTEXT -- 全文索引   ] INDEX index_name ON ...

  4. MySQL之索引的创建和删除

    一.创建索引 ALTER TABLE table_name ADD INDEX index_name (column_list) ​ ALTER TABLE table_name ADD UNIQUE ...

  5. mysql中索引创建 查看和删除语句_MySQL如何创建和删除索引?

    mysql索引,mysql创建索引,mysql删除索引 1.在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快.今天就简单地给大家演示一下mysql中索引的创建,查 ...

  6. MySQL 索引的创建、删除

    MySQL中索引的创建有三种方法,索引的删除有两种方法. 一.创建索引 (1)使用create index # 1.创建普通索引 create index 索引名 on 表名 (列名[(限制索引长度) ...

  7. mysql索引 删除和创建_mysql索引和唯一索引的创建和删除

    一.本机环境 二.索引的创建删除 三.唯一索引的创建和删除 一.本机环境 系统环境:linux centos 7.2 mysql版本:mysql-5.7.9 安装目录:/application/mys ...

  8. MySQL——索引的创建与删除

    文章目录 MySQL--索引的创建与删除 1.创建索引的三种方式 1.1.建表时创建索引 1.2.修改表时创建索引 1.3.使用 CREATE INDEX 语句创建索引 2.删除索引 MySQL--索 ...

  9. MySQL中索引与视图的用法与区别详解

    索引与视图是我们在日常使用mysql必不可少的一部分,最近在学习中看到一本书中关于这方法写的不错,所以这篇文章主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关资料,需要的朋友可以参考借鉴, ...

  10. 6、MySQL 中索引的介绍

    6.MySQL 中索引的介绍 6.1.索引是什么? MySQL 官方对索引的定义为:索引(Index)是帮助 MySQL 高效获取数据的数据结构. 索引的本质:索引是数据结构.你可以简单理解为&quo ...

最新文章

  1. linux下 chown命令
  2. android dialog的封装,Android Dialog 简单封装
  3. 因为犯罪被判三年刑,期间没办法还信用卡,银行会怎么做?
  4. 动易sitefactory 数据库 mysql msssql_动易SiteFactory配置文件(web.config)常用配置节解读...
  5. SHTML+INC机制说明!
  6. 人本原理内涵_叶澜教育学原理课后答案资料配套题库考研真题精选课后习题章节题库...
  7. Android -- ViewGroup源码分析+自定义
  8. base64 img图片按父div等比例显示
  9. 基于串级pid控制系统的两轴无人机云台设计
  10. 卡西欧计算机做英语,卡西欧的这个小萌物 原来是台英语学习机
  11. Windows7旗舰版SP1_32位2018.10(纯净版)
  12. 大学教编程的老师为何不去当高收入的程序员?
  13. 【人工智能】机器学习:岭回归与LASSO回归(Ridge/LASSO Regression)
  14. 【 newcoder 】幼儿园战争 【并查集+删并查】
  15. 联想台式计算机重装系统教程,联想台式机怎么重装系统?联想台式机重装系统教程...
  16. 关于GIT怎么将本地仓库和远程仓库进行关联
  17. Studying at SUST
  18. 人工智能推动基础科学理论突破 人工智能推动基础科学理论突破
  19. UWB定位技术研究入门
  20. 【LeetCode 剑指offer 刷题笔记】汇总(已完成)

热门文章

  1. Spring源码之bean的销毁registerDisposableBeanIfNecessary方法解读
  2. Ubuntu下面安装MySQL shell
  3. 行尸走肉第八季/全集The Walking Dead迅雷下载
  4. Redis commands 官方
  5. 谈话节目APE系列:如何成为技术达人
  6. linux性能监测工具
  7. Centos上PostgreSQL9.3的安装
  8. WCF简单教程(2) 聊聊binding
  9. C# WinForm技巧“将Form嵌入到Panel”
  10. [JNI] 开发之旅 (2)解释jni helloworld实例