mysql基础操作学习笔记(2)----索引

2018-06-17 23:10:49来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

为什么要创建索引?

    在此本人也带着相同的疑问,能够解释的仅仅是:为了减少数据库查询时所需要的速度。如果正常查询和索引查询所需时间相差很多倍时我们自然是需要索引的了。

想要知道结果,只能等我学得更加深入一点咯。

 

创建索引

      创建索引有三种方法:(1)在创建表时创建索引; (2)使用ALTER TABLE 语句创建索引;(3)使用CREATE INDEX语句创建索引。

      创建索引的类型有:普通索引(INDEX),唯一索引(UNIQUE INDEX),全文索引(FULLTEXT INDEX),空间索引(SPATIAL INDEX);其中全文索引,空间索引必须在MyISAM存储引擎下创建,且全文索引必须在数据类型为:CHAR、VARCHAR和TEXT的列上建立。

下面进行举例

一、创建表时创建索引

      1、创建普通索引

 CREATE TABLE T1
      (
        id           INT NOT NULL,
      name     CHAR(50)  NULL,
      INDEX   SingleIdx(name)
       )

      创建普通索引的语句为INDEX [索引名](列名),其中列名可以为多个,即以多个关键字创建索引。

     2、创建唯一索引

CREATE TABLE T1
(
 id            INT NOT NULL,
 name      CHAR(30) NOT NULL,
 UNIQUE INDEX UniqIdx(id)
)

   创建唯一索引的语句为 UNIQUE INDEX [索引名](列名)

     3、创建全文索引

CREATE TABLE T1
(
 id          INT NOT NULL,
 name    CHAR(30) NOT NULL,
 age       INT NOT NULL,
 info       VARCHAR(255),
 FULLTEXT  INDEX FullTxtIdx(info)
) ENGINE=MyISAM;

  创建全文索引的语句为 FULLTEXT INDEX [索引名](列名),  其中存储引擎为MyISAM

  4、创建空间索引

CREATE TABLE T1
(
 g  GEOMETRY NOT NULL,
 SPATIAL INDEX spatLdx(g),
) ENGINE = MyISAM;

  创建空间索引的语句为 FULLTEXT INDEX [索引名](列名),  其中存储引擎为MyISAM

二、在已有表上创建索引

  1、使用ALTER TABLE 语句创建索引

      其中基本语法为: ALTER TABLE table_name ADD [索引种类] [索引名](字段); 

      如:

      普通索引: ALTER TABLE book ADD INDEX BkNameIdx(bookname(30) ); 

      唯一索引: ALTER TABLE book ADD UNIQUE INDEX UniqidIdx( bookId ); 

  全文索引: ALTER TABLE book ADD FULLTEXT INDEX infoIdx( info); 

  空间索引: ALTER TABLE book ADD SPATIAL INDEX spatIdx( g ); 

     2、使用CREATE INNDEX语句创建索引

      其中基本语法为:

  CREATE [索引种类] INDEX [索引名] ON [表名](字段名)

      如:

      普通索引: CREATE INDEX BkNameIDX ON book(bookname); 

      唯一索引: CREATE UNIQUE INDEX UniqidIdx ON book( bookId ); 

  全文索引: CREATE FULLTEXT INDEX ON T1(info); 

  空间索引: CREATE SPATIAL INDEX spatIdx ON T1(g); 

     3、删除索引

     a、用ALTER TABLE 删除:

 ALTRER TABLE [表名] DROP INDEX [索引名];

  b、用DROP INDEX删除:

 DROP INDEX [索引名] ON [表名];

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意

下一篇:在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错