索引(Index)是帮助MySQL高效获取数据的数据结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法,例如二分查找(binary search)、二叉树查找(binary tree search)等。如果稍微分析一下会发现,每种查找算法都只能应用于特定的数据结构之上,例如二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构(例如,理论上不可能同时将两列都按顺序进行组织),所以,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。

1.添加primary key(主键索引)
alter   table  表名   add  primary   key(列名);

2.添加unique(唯一索引)
alter  table  表名  add  unique(列名);

3.添加index(普通索引)
alter  table  表名  add  index  索引名(index_name)  (列名);

4.添加fulltext(全文索引)
alter  table  表名  add  fulltext  (列名);

5.添加多列索引
alter  table  表名  add  index  索引名(index_name)  (列名1,列名2.......);

当不再需要索引时,可以使用 DROP INDEX 语句 或 ALTER TABLE 语句来对索引进行删除。
1.使用 DROP INDEX 语句
语法格式:
DROP INDEX <索引名> ON <表名>

语法说明如下:
<索引名>:要删除的索引名。
<表名>:指定该索引所在的表名。

2.使用 ALTER TABLE 语句
根据 ALTER TABLE 语句的语法可知,该语句也可以用于删除索引。具体使用方法是将 ALTER TABLE 语句的语法中部分指定为以下子句中的某一项。
DROP PRIMARY KEY:表示删除表中的主键。一个表只有一个主键,主键也是一个索引。
DROP INDEX index_name:表示删除名称为 index_name 的索引。
DROP FOREIGN KEY fk_symbol:表示删除外键。
注意:如果删除的列是索引的组成部分,那么在删除该列时,也会将该列从索引中删除;如果组成索引的所有列都被删除,那么整个索引将被删除。

删除索引
【实例 1】删除表 tb_stu_info 中的索引,输入的 SQL 语句和执行结果如下所示。
mysql> DROP INDEX height
    -> ON tb_stu_info;
Query OK, 0 rows affected (0.27 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> SHOW CREATE TABLE tb_stu_info\G
*************************** 1. row ***************************
       Table: tb_stu_info
Create Table: CREATE TABLE `tb_stu_info` (
  `id` int(11) NOT NULL,
  `name` char(45) DEFAULT NULL,
  `dept_id` int(11) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `height` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.00 sec)

【实例 2】删除表 tb_stu_info2 中名称为 id 的索引,输入的 SQL 语句和执行结果如下所示。
mysql> ALTER TABLE tb_stu_info2
    -> DROP INDEX height;
Query OK, 0 rows affected (0.13 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> SHOW CREATE TABLE tb_stu_info2\G
*************************** 1. row ***************************
       Table: tb_stu_info2
Create Table: CREATE TABLE `tb_stu_info2` (
  `id` int(11) NOT NULL,
  `name` char(45) DEFAULT NULL,
  `dept_id` int(11) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `height` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.00 sec)

MySQL添加索引的五种方法相关推荐

  1. mysql添加临时索引_mysql 中添加索引的三种方法

    在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...

  2. mysql 中添加索引的三种方法

    在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...

  3. mysql 中添加索引的三种方法(一)

    在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...

  4. 小白上手 为Kindle添加图书的五种方法

    最近买了个kindle paperwhite,发现比较好用,下面是如何往kindle里添加图书的几种方法,希望对大家有用.link里有详细的五种方式. http://soft.zol.com.cn/5 ...

  5. MySql添加索引的几种方式

    添加索引 1.添加primary key(主键索引) alter table 表名 add primary key(列名); 2.添加unique(唯一索引) alter table 表名 add u ...

  6. MYSQL添加约束的两种方法

    第一种:创建表的时候 create table table_name(列名1 数据类型 (int) primary key auto_increment,列名2 数据类型 not null,列名3 数 ...

  7. 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组

    3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...

  8. MySQL提供了以下三种方法用于获取数据库对象的元数据

    MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysqlshow, mysqldump 用 ...

  9. 在生产环境下处理EFCore数据库迁移的五种方法

    在生产环境下处理EFCore数据库迁移的五种方法 原文链接:https://www.thereformedprogrammer.net/handling-entity-framework-core-d ...

最新文章

  1. 学术圈要炸锅:论文作者和审稿人串通欺骗盲审,ACM Fellow发文痛斥!顶会“想中就中”...
  2. 国内较强的NLP高校实验室有哪些?
  3. python 删除文件-python 删除文件和读取文件
  4. spring实例化bean的方式
  5. java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较(转)
  6. win11休眠选项在哪 Windows11没有休眠选项的解决方法
  7. Ubuntu 14.04 安装 JDK 8,ubuntu14.04
  8. css的9个常用选择器
  9. 两种实现视频倍速播放的方法(视频播放器倍速1.5x/2x)
  10. charles 抓包软件 安装、破解、使用
  11. [ERROR NumCPU]: the number of available CPUs 1 is less than the required 2
  12. Shallow Size 和 Retained Size
  13. php类的开发语言,php是什么开发语言
  14. 保定计算机软件学院是哪个区,河北软件职业技术学院在哪个区
  15. LruCache缓存方法
  16. 动态表格案例 JavaScript
  17. Linux Alsa
  18. el-table 改变行高
  19. A股api交易接口文档怎么使用?
  20. 模电实验——实验一 晶体管共射极单管放大器

热门文章

  1. Flutter 加载图片方法
  2. vivos9微信视频通话美颜设置方法分享
  3. 餐饮点餐系统源码(含收银台和SaaS端)
  4. 体检管理系统——图形报表ECharts
  5. WINDOW -- U盘做启动盘重装系统
  6. 小羊手把手教你gcc gdb makefile
  7. java微服务架构实战pdf,含小米、腾讯、阿里
  8. oracle课程设计代码,Oracle 课程设计源码
  9. 怎么才能让小孩变得自信?
  10. 重复方式-C++循环