1.索引类型

  • UNIQUE(唯一索引):不可以出现相同的值,可以有NULL值;
  • INDEX(普通索引):允许出现相同的索引内容;
  • PROMARY KEY(主键索引):不允许出现相同的值;
  • fulltext index(全文索引):可以针对值中的某个单词,但效率确实不敢恭维;
  • 组合索引:实质上是将多个字段建到一个索引里,列值的组合必须唯一;

2. 用 alter table 语句创建索引

应用于表创建完毕之后再添加;

  • alter table 可用于创建普通索引、UNIQUE索引和PRIMARY KEY索引3种索引格式,
  • table_name是要增加索引的表名,
  • column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。
  • 索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。
  • 另外,ALTER TABLE允许在单个语句中更改多个表,因此可以同时创建多个索引。
  1. ALTER TABLE 表名 ADD 索引类型 unique,primary key,fulltext,index)[索引名](字段名);
  1. -- 普通索引
  2. alter table table_name add index index_name (column_list) ;
  3. -- 唯一索引
  4. alter table table_name add unique (column_list) ;
  5. -- 主键索引
  6. alter table table_name add primary key (column_list) ;

3.用 create index 语句创建索引

  • CREATE INDEX可用于对表增加普通索引或UNIQUE索引,可用于建表时创建索引
  • 如果是CHAR,VARCHAR类型,length可以小于字段实际长度;
  • 如果是BLOB和TEXT类型,必须指定 length
  1. CREATE INDEX index_name ON table_name(username(length));
  1. -- create只能添加这两种索引;
  2. CREATE INDEX index_name ON table_name (column_list)
  3. CREATE UNIQUE INDEX index_name ON table_name (column_list)

4.删除索引

删除索引可以使用ALTER TABLEDROP INDEX语句来实现;

  1. drop index index_name on table_name ;
  2.  
  3. alter table table_name drop index index_name ;
  4.  
  5. alter table table_name drop primary key ;

参考文章:

https://www.cnblogs.com/zz-tt/p/6609828.html

MySQL添加、删除索引的更多相关文章

  1. mysql添加删除索引,查看某个表的建表语句

    查看某个表的建表语句 :show create table data_statdata; drop index ts on data_statdata; 索引是加速查询的主要手段,特别对于涉及多个表的 ...

  2. 【数据库】MySQL如何删除索引

    1.查看表上的索引 -- 查看table_name表上的索引 show index from table_name ; 2.删除表上的索引 删除索引可以使用ALTER TABLE或DROP INDEX ...

  3. 关于sortedlist 中值的添加,删除,索引测试.

    SortedList 类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问. 排序列表是数组和哈希表的组合.它包含一个可使用键或索引访问各项的列表.如果您使用索引访问各项,则它是一个 ...

  4. Mysql创建删除索引

    1.查看某个表中的索引 show index from 表名 2.为某个表创建索引 alter table 表名 add index 索引名(列名)    //此种方式创建一般的索引 alter ta ...

  5. mysql添加字段索引失败 BLOB/TEXT column 'col2' used in key specification without a key length

    看了下该表的数据结构发现col2字段类型是text ,查询了下发现是:MySQL只能将BLOB/TEXT类型字段设置索引为BLOB/TEXT数据的钱N个字符.索引指定下col2的长度就可以了 : al ...

  6. php +mysql 添加 删除 修改 insert into delete update

    INSERT INTO 插入数据库 $sql = "INSERT INTO subject (uid,fun,title) VALUES (3,88,'语文')"; $query ...

  7. MySQL添加唯一索引

    1 语法如下 ALTER TABLE `t_user` ADD unique(`username`);

  8. mysql 分析5语句的优化--索引添加删除

    查看表的索引  show create table 表名; show index from 表名; show keys from表名; 添加索引 alter table 表名  add index 索 ...

  9. MySQL 添加索引,删除索引及其用法

    一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重. 在数据 ...

随机推荐

  1. new 关键字

    学习过的调用或者是执行函数的方式有几种? ①函数名+小括号 ②事件处理函数 ③定时器 ④数组里面的元素是函数,枚举出来执行 ⑤new关键字 提示:需要注意new 关键字需要在函数名前面使用 构造函数是 ...

  2. zookeeper - java操作

    ZKUtils.java package test; import java.io.IOException; import java.util.concurrent.CountDownLatch; i ...

  3. 【iOS开发】在ARC项目中使用非ARC文件

    ARC的出现应该说是开发者的一大福利,苹果是推荐使用的,但是因为之前没有ARC机制,好多比较好的类库都是使用的非ARC,或是有些大牛还是不喜欢用ARC,封装的类也是非ARC的,想要在自己的ARC项目中 ...

  4. [转]How do you build a database?

    非常简短的文字,却异常明了的说明了一个数据库管理系统的核心原理,原文来自原文. Its a great question, and deserves a long answer. Most datab ...

  5. 如何在Markdown文档中插入空格?

    简单说 在 Markdown 文档中,可以直接采用 HTML 标记插入空格(blank space),而且无需任何其他前缀或分隔符.具体如下所示: 插入一个空格 (non-breaking space ...

  6. leetCode题解单链表反转

    1.题目描述 反转一个单链表.链表节点结构如下: struct ListNode { int val; ListNode* next; }; 2.问题分析 特殊情况是输入的头结点是一个空的,或者只有一 ...

  7. Prometheus Node_exporter 之 Basic Net / Disk Info

    1. Network Traffic Basic 每个接口的基本网络信息 type: GraphUnit: bytesrecv {{device}} 各个网络接口的下载量 recv lo: 本地环回接 ...

  8. leveldb源码分析--Key结构

    [注]本文参考了sparkliang的专栏的Leveldb源码分析--3并进行了一定的重组和排版 经过上一篇文章的分析我们队leveldb的插入流程有了一定的认识,而该文设计最多的又是Batch的概念 ...

  9. selenium&phantom实战--获取代理数据

    获取快代理网站的数据 注意: #!/usr/bin/env python # _*_ coding: utf-8 _*_ # __author__ ='kong' # 导入模块 from seleni ...

  10. RAC性能分析 - gc buffer busy acquire 等待事件

    概述---------------------gc buffer busy是RAC数据库中常见的等待事件,11g开始gc buffer  busy分为gc buffer busy acquire和gc ...