MySQL索引的操作

Posted Mr Wen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL索引的操作相关的知识,希望对你有一定的参考价值。

1.什么是索引?

一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。

2.为什么要有索引呢?

索引在mysql中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能
非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。
索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。
索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查。

 

======================================语法===========================================================

概述:总的来说就两种创建索引的方式

【1】索引创建

方式一:CREATE  INDEX  索引名

 

      ON   table_name (属性名  ASC|DESC)

      );

 

方式二:ALTER TABLE table_name

      ADD INDEX|KEY   索引名  (属性名  ASC|DESC);

 

 注意:“ASC”参数用来指定升序排序,“DESC”用来指定降序排序。

 

【2】索引查看

<2-1>SHOW CREATE TABLE table_name;

 

结果:

<2-2>校验数据库某表中索引是否被使用

EXPLAIN

  SELECT * FROM   table_name WHERE   属性名;

结果:

 

<2-3>使用索引查找数据信息

 SELECT * FROM stu_info WHERE name=\'WENHEWEN\';

结果:

【3】创建唯一索引(UNIQUE)

 方式一:CREATE UNIQUE INDEX   索引名

      ON  table_name  (属性名);  

 

方式二:ALTER TABLE table_name

      ADD UNIQUE INDEX|KEY  索引名(属性名);

 

【4】创建全文索引(FULLTEXT)

方式一:CREATE FULLTEXT INDEX 索引名

      ON   table_name  (属性名);

 

 

方式二:ALTER  TABLE  table_name

      ADD FULLTEXT INDEX  索引名  (属性名);

 

功能:全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用「分词技术「等多种算法智能分析出文本文字中关键字词的频率及重要性,然后按照一定的算法规则智能地筛选出我们想要的搜索结果。

 

【5】创建多列索引

方式一:CREATE INDEX  索引名

      ON  table_name(属性名1,属性名2,.....属性名n);

 

方式二:ALTER TABLE table_name

      ADD INDEX 索引名(属性名1,属性名2,.....属性名n);

 

注意:当查询条件有多个字段时,单列索引和多列索引有很大的区别。如果使用多列索引,where条件中字段的顺序非常重要,需要满足最左前缀列。最左前缀:查询条件中的所有字段需要从左边起按顺序出现在多列索引中,查询条件的字段数要小于等于多列索引的字段数,中间字段不能存在范围查询的字段(<,like等),这样的sql可以使用该多列索引。

 

【6】删除索引

DROP  INDEX   索引名

  ON   table_name;

 

以上是关于MySQL索引的操作的主要内容,如果未能解决你的问题,请参考以下文章

MySQL系列:索引基本操作

mysql创建索引的原则

MySQL操作索引及优化

MySQL索引操作命令详解

mysql索引操作命令梳理

MySQL索引操作