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


    为什么要创建索引?

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

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

    创建索引

          创建索引有三种方法:(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 [表名];
  • 相关阅读:
    ibatis中isEquals、isNotEmpty的用法
    truncate与delete 、drop的区别
    javaweb学习总结二十二(servlet开发中常见的问题汇总)
    ORACLE时间函数(SYSDATE)深入理解
    大数据
    javaweb学习总结二十一(servlet开发入门、servlet生命周期以及调用过程)
    javaweb学习总结二十(http响应)
    javaweb学习总结十九(http协议概述以及http请求信息分析)
    Telnet客户端连接服务器,看不见字符,只显示横线
    Eclipse打JAR包的使用
  • 原文地址:https://www.cnblogs.com/llssx/p/6045666.html
Copyright © 2020-2023  润新知