normal:表示普通索引

unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique

full textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。

PRIMARY, INDEX, UNIQUE 这是一类
PRIMARY 主键。 就是 唯一 且 不能为空。
INDEX 索引,普通的
UNIQUE 唯一索引。 不允许有重复。
FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。

1、普通索引

最基本的索引,它没有任何限制,用于加速查询。

创建方法:

a. 建表的时候一起创建

CREATE TABLE mytable ( name VARCHAR(32) , INDEX index_mytable_name (name) );

b. 建表后,直接创建索引

CREATE INDEX index_mytable_name ON mytable(name);

c. 修改表结构

ALTER TABLE mytable ADD INDEX index_mytable_name (name);

注:如果是字符串字段,还可以指定索引的长度,在列命令后面加上索引长度就可以了(例如:name(11))

2、唯一索引

索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

创建方法:

a. 建表的时候一起创建

CREATE TABLE mytable ( `name` VARCHAR(32) , UNIQUE index_unique_mytable_name (`name`) );

b. 建表后,直接创建索引

CREATE UNIQUE INDEX index_mytable_name ON mytable(name);

c. 修改表结构

ALTER TABLE mytable ADD UNIQUE INDEX index_mytable_name (name);

注:如果是字符串字段,还可以指定索引的长度,在列命令后面加上索引长度就可以了(例如:name(11))

3、主键索引

是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引。

创建方法:

a. 建表的时候一起创建

CREATE TABLE mytable ( `id` int(11) NOT NULL AUTO_INCREMENT , `name` VARCHAR(32) , PRIMARY KEY (`id`) );

b. 修改表结构

ALTER TABLE test.t1 ADD CONSTRAINT t1_pk PRIMARY KEY (id);

注:如果是字符串字段,还可以指定索引的长度,在列命令后面加上索引长度就可以了(例如:name(11))

4、组合索引

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

创建方法:

a. 建表的时候一起创建

CREATE TABLE mytable ( `id` int(11) , `name` VARCHAR(32) , INDEX index_mytable_id_name (`id`,`name`) );

b. 建表后,直接创建索引

CREATE INDEX index_mytable_id_name ON mytable(id,name);

c. 修改表结构

ALTER TABLE mytable ADD INDEX index_mytable_id_name (id,name);

5、全文索引

主要用来查找文本中的关键字,而不是直接与索引中的值相比较。

fulltext索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where语句的参数匹配。

fulltext索引配合match against操作使用,而不是一般的where语句加like。

它可以在create table,alter table ,create index使用,不过目前只有char、varchar,text 列上可以创建全文索引。

创建方法:

a. 建表的时候一起创建

CREATE TABLE `article` ( `id` int(11) NOT NULL AUTO_INCREMENT ,`title` char(250) NOT NULL , `contents` text NULL , `create_at` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), FULLTEXT (contents) );

b. 建表后,直接创建索引

CREATE FULLTEXT INDEX index_article_contents ON article(contents);

c. 修改表结构

ALTER TABLE article ADD FULLTEXT INDEX index_article_contents (contents);

总结

虽然索引可以增加查询数据,但对于更新、创建或者删除的时候,需要去维护索引,导致性能会受影响,因此,索引也不能建立太多。

MySQL索引种类的更多相关文章

  1. 6、MySQL索引种类

    1.普通索引 这是最基本的索引,它没有任何限制,比如上文中为title字段创建的索引就是一个普通索引,MyIASM中默认的BTREE类型的索引,也是我们大多数情况下用到的索引. –直接创建索引 CRE ...

  2. 精通 MySQL 索引

    索引概念: 概念:索引是提高mysql查询效率的数据结构.总的一句话概括就是索引是一种提高查询效率的数据结构. 数据库查询是数据库的最主要功能之一.设计者们都希望查询数据的速度能尽可能的快,因此数据库 ...

  3. mysql常用的索引种类

    一.索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度 二.索引类型 Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RT ...

  4. mysql索引补充

    索引补充   1.索引 索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据.对于索引,会保存在额外的文件中. 2.索引种类 普通索引:仅加速查询 唯一索引:加速查询 + 列 ...

  5. MySQL 索引 总结

    1.索引的种类(六种) 普通索引,唯一索引,全文索引,单列索引,多列索引,空间索引 2.优缺点及注意事项 优点:有了索引,对于记录数量很多的表,可以提高查询速度. 缺点:索引是占用空间的,索引会影响u ...

  6. MySQL— 索引,视图,触发器,函数,存储过程,执行计划,慢日志,分页性能

    一.索引,分页性能,执行计划,慢日志 (1)索引的种类,创建语句,名词补充(最左前缀匹配,覆盖索引,索引合并,局部索引等): import sys # http://www.cnblogs.com/w ...

  7. 【转】MySQL— 索引

    [转]MySQL— 索引 目录 一.索引 二.索引类型 三.索引种类 四.操作索引 五.创建索引的时机 六.命中索引 七.其它注意事项 八.LIMIT分页 九.执行计划 十.慢查询日志 一.索引 My ...

  8. MySQL— 索引

    目录 一.索引 二.索引类型 三.索引种类 四.操作索引 五.创建索引的时机 六.命中索引 七.其它注意事项 八.LIMIT分页 九.执行计划 十.慢查询日志 一.索引 MySQL索引的建立对于MyS ...

  9. 初识mysql索引 - 小白篇

    :接触mysq也有两年左右的时间了,但是对该数据库的理解自认还比较初级,看过很多文章,也看过一些相关的书籍,依然小白....(这里个人总结是两点主要原因:1.对mysql的学习大部分都是源于看一些杂七 ...

  10. Mysql 索引精讲

    Mysql 索引精讲 开门见山,直接上图,下面的思维导图即是现在要讲的内容,可以先有个印象- 常见索引类型(实现层面) 索引种类(应用层面) 聚簇索引与非聚簇索引 覆盖索引 最佳索引使用策略 1.常见 ...

随机推荐

  1. 应急响应web1

    应急响应的过程 目的:分析攻击时间.攻击操作.攻击结果.安全修复等并给出合理的解决方案. 保护阶段:直接断网,保护现场,看是否能够恢复数据: 分析阶段:对入侵过程进行分析,常见的方法为指纹库搜索.日志 ...

  2. 好玩的vue组件

    https://gitee.com/zheng_yongtao/jyeontu-component-warehouse 推荐这个大佬,很厉害悬浮按钮 评论组件 词云 瀑布流照片容器 视频动态封面 3D ...

  3. 用 vue2 和 webpack 快速建构 NW.js 项目

    经过实践和学习,发现本篇文章部分内容已经过时,请看我的关于 Vue 和 NW.js 的 ** 最新文章 ** 和相关实践项目 vue-nw-seed . 使用到的技能点 vue2 webpack NW ...

  4. .net c# 文件分片/断点续传之下载--客户端

    断点续传客户端实现主要参考了以下文章: https://blog.csdn.net/binyao02123202/article/details/76599949 客户端实现续传的主要是一下几点 1. ...

  5. kubernetes ingress部署

    ingress概念 ingress与service,deployment同样都是k8s中的一种资源 ingress用于实现域名方式访问k8s内部应用 安装ingress 1. 安装helm: wget ...

  6. ReplayKit2 采集音视频回调格式分析

    一.iOS中的音视频都是采用一个叫做CMSampleBuffer的格式封装的 比如回调的App音频 Printing description of sampleBuffer: CMSampleBuff ...

  7. cors解决跨域 服务器代理方式

    // cors 方法         // 后端程序员通过定义后端程序,让跨域访问,可以正常执行,可以获取响应体内容         // 前端程序员不需要做任何的调整         // 后端程序 ...

  8. 实例讲解多处理器下的计算机启动(xv6的启动过程)

    启动 启动方面的文章之前也写过,那是我的第一篇文章,本文在前文的基础之上完善,然后增加了多处理器启动的情况,废话不多说直接来看. 启动可以分为两种,一种为冷启动,是指计算机在关机状态下按 POWER ...

  9. C#.NET WINFORM 缓存 System.Runtime.Caching MemoryCache

    C#.NET WINFORM 缓存 System.Runtime.Caching MemoryCache 工具类: using System; using System.Runtime.Caching ...

  10. php反序列化个人笔记

    反序列化 什么是反序列化? 格式转换 序列化:对象转换为字符串或者数组等格式 反序列化:将数组或字符串转换成对象 为什么会出现安全漏洞? 魔术方法 如何利用漏洞? 通过构造pop链,找到代码的逻辑漏洞 ...