mysql基础操作学习笔记

为何要成立索引?

为什么要开创索引?

mysql基础操作学习笔记(贰)—-索引,mysql学习笔记

干什么要创制索引?

 
 
 在此笔者也带着同等的疑点,能够解释的可是是:为了削减数据库查询时所急需的进程。借使寻常查询和目录查询所需时日相差大多倍时大家当然是内需索引的了。

想要知道结果,只好等本身学得进一步浓密壹些咯。

 

创制索引

      成立索引有三种形式:(一)在创建表时创制索引; (2)使用ALTERubicon TABLE
语句创立索引;(三)使用CREATE INDEX语句创设索引。

      成立索引的档次有:普通索引(INDEX),唯一索引(UNIQUE
INDEX),全文索引(FULLTEXT INDEX),空间引得(SPATIAL
INDEX);在那之中全文索引,空间引得必须在MyISAM存款和储蓄引擎下创设,且全文索引必须在数据类型为:CHA奥德赛、VASportageCHA途乐和TEXT的列上建立。

下边进行举例:

一、创制表时创办索引

      壹、创制普通索引

 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 [索引名](列名)

     三、创制全文索引

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

  四、创设空间引得

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

  创立空间引得的言辞为 FULLTEXT INDEX [索引名](列名),
 其中存款和储蓄引擎为MyISAM

2、在已有表上创办索引

  壹、使用ALTE福睿斯 TABLE 语句创立索引

      在那之中大旨语法为: ALTE揽胜 TABLE
table_name ADD [目录类别] [索引名](字段); 

      如:

      普通索引: ALTE奥迪Q5 TABLE book ADD INDEX
BkNameIdx(bookname(30) ); 

      唯一索引: ALTE本田CR-V TABLE book ADD
UNIQUE INDEX UniqidIdx( bookId ); 

  全文索引: ALTE卡宴 TABLE book ADD
FULLTEXT INDEX infoIdx( info); 

  空间索引: ALTE安德拉 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
T一(info); 

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

     叁、删除索引

     a、用ALTER TABLE 删除:

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

  b、用DROP INDEX删除:

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

 

为啥要创设索引?
在此笔者也带着平等的疑云,能够解释的独自是:为了收缩数量库…

1、索引的引进

目录定义:索引是由数据库表中一列也许多列组合而成,其功效是拉长对表中多少的询问速度;
类似于书本的目录,方便高效牢固,寻找钦点的内容;

    在此小编也带着一样的疑问,能够解释的单纯是:为了裁减数据库查询时所急需的快慢。假如平常查询和目录查询所需时间距离大多倍时我们当然是索要索引的了。

    在此笔者也带着相同的难点,能够表明的只是是:为了收缩数据库查询时所急需的速度。假若平常查询和目录查询所需时日相差多数倍时我们本来是内需索引的了。

2、索引的利弊

mysql基础操作学习笔记。可取:进步查询数据的快慢;

缺点:创立和掩护索引的岁月扩张了;

想要知道结果,只可以等本人学得特别时刻思念1些咯。

想要知道结果,只可以等自作者学得越来越深入一些咯。

三、索引分类

 

 

壹,普通索引

那类索引能够创立在其余数据类型中;

始建索引

开创索引

二,唯壹性索引

应用 UNIQUE
参数能够设置,在创制唯一性索引时,限制该索引的值必须是唯1的;

     
创设索引有三种艺术:(一)在创设表时开立索引; (2)使用ALTERAV四 TABLE
语句创立索引;(三)使用CREATE INDEX语句创制索引。

     
创立索引有三种方法:(一)在开立表时创建索引; (2)使用ALTECRUISER TABLE
语句创制索引;(三)使用CREATE INDEX语句创制索引。

3,全文索引

运用 FULLTEXT 参数能够安装,全文索引只好创建在 CHA福特Explorer,VA哈弗CHAENVISION,TEXT
类型的字段上。首要功能 正是巩固查询较大字符串类型的速度;唯有 MyISAM
引擎援助该索引,Mysql 默许引擎不协理;

     
创制索引的种类有:普通索引(INDEX),唯一索引(UNIQUE
INDEX),全文索引(FULLTEXT INDEX),空间引得(SPATIAL
INDEX);当中全文索引,空间引得必须在MyISAM存款和储蓄引擎下创办,且全文索引必须在数据类型为:CHARubicon、VA纳瓦拉CHA卡宴和TEXT的列上建立。

     
创造索引的种类有:普通索引(INDEX),唯一索引(UNIQUE
INDEX),全文索引(FULLTEXT INDEX),空间引得(SPATIAL
INDEX);个中全文索引,空间引得必须在MyISAM存款和储蓄引擎下开创,且全文索引必须在数据类型为:CHA猎豹CS陆、VARCHASportage和TEXT的列上建立。

4,单列索引

在表中得以给单个字段创制索引,单列索引能够是平时索引,也能够是唯一性索引,还足以是全文索引;

下边举办举例:

下面进行举例:

5,多列索引

多列索引是在表的多少个字段上创立三个目录;

1、创制表时创造索引

一、成立表时创立索引

陆,空间引得

应用 SPATIAL
参数能够设置空间引得。空间引得只可以建立在空间数据类型上,那样能够抓实系统获得空间数
据的效用;唯有 MyISAM 引擎补助该索引,Mysql 暗中同意引擎不援救;

      一、创立普通索引

      壹、创设普通索引

肆、创造索引

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

一、 创造表的时候创立索引

CREATE  TABLE 表名 (  属性名
数据类型 [完整性约束原则],

属性名 数据类型
[完整性约束规范],

…. ,

质量名 数据类型

[ UNIQUE | FULLTEXT | SPATIAL
] INDEX|KEY

[别名](属性名
1[(长度)][ASC |DESC])

);

1),创造普通索引

CREATE TABLE t_user1(id INT ,
                     userName VARCHAR(20),
                     PASSWORD VARCHAR(20),
                     INDEX (userName)
              );

2),创立唯一性索引

CREATE TABLE t_user2(id INT ,
                     userName VARCHAR(20),
                     PASSWORD VARCHAR(20),
                     UNIQUE INDEX index_userName(userName)
              );

三),创立全文索引

CREATE TABLE t_user3(id INT ,
                     userName VARCHAR(20),
                     PASSWORD VARCHAR(20),
                     FULLTEXT INDEX index_userName(userName)
              );

四),创立单列索引

CREATE TABLE t_user1(id INT ,
                     userName VARCHAR(20),
                     PASSWORD VARCHAR(20),
                     INDEX (userName)
              );

五),成立多列索引

CREATE TABLE t_user3(id INT ,
                     userName VARCHAR(20),
                     PASSWORD VARCHAR(20),
                     INDEX
index_userName_password(userName,PASSWORD)
              );

陆),成立空间引得

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

      创设普通索引的话语为INDEX
[索引名](列名),个中列名可以为多少个,即以三个第2字成立索引。

二、 在已经存在的表上制造索引

CREATE [ UNIQUE | FULLTEXT |
SPATIAL ] INDEX  索引名 ON 表名 ( 属性名 [ (长度) ] [  ASC | DESC]
);

CREATE  INDEX index_userName ON t_user4(userName);

CREATE  UNIQUE INDEX index_userName ON t_user4(userName);

CREATE  INDEX index_userName_password ON t_user4(userName,PASSWORD);

     二、成立唯一索引

     二、成立唯一索引

3、用 ALTE奥迪Q5  TABLE 语句来创制索引

ALTER TABLE 表名 ADD [ UNIQUE |
FULLTEXT | SPATIAL ] INDEX 索引名 ( 属性名 [ (长度) ] [ ASC | DESC]
);

ALTER TABLE t_user5 ADD UNIQUE INDEX index_userName(userName);

ALTER TABLE t_user5 ADD INDEX index_userName(userName);

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

伍、删除索引

DROPINDEX 索引名 ON
表名;

 DROP INDEX index_userName_password ON t_user4;

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

   创立唯一索引的讲话为 UNIQUE INDEX [索引名](列名)

     三、创设全文索引

     叁、创制全文索引

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;
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

  创立全文索引的讲话为 FULLTEXT INDEX [索引名](列名),
 个中存款和储蓄引擎为MyISAM

  4、创造空间引得

  四、成立空间引得

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

  创设空间引得的话语为 FULLTEXT INDEX [索引名](列名),
 在那之中存款和储蓄引擎为MyISAM

  创制空间引得的言辞为 FULLTEXT INDEX [索引名](列名),
 个中蕴藏引擎为MyISAM

贰、在已有表上创建索引

2、在已有表上创造索引

  一、使用ALTE途乐 TABLE 语句创制索引

  1、使用ALTECRUISER TABLE 语句成立索引

      个中中央语法为: ALTEPRADO TABLE table_name ADD [目录连串] [索引名](字段); 

      个中大旨语法为: ALTE帕杰罗 TABLE table_name ADD [目录种类] [索引名](字段); 

      如:

      如:

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

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

      唯一索引: ALTE翼虎 TABLE book ADD UNIQUE INDEX UniqidIdx( bookId ); 

      唯一索引: ALTE宝马7系 TABLE book ADD UNIQUE INDEX UniqidIdx( bookId ); 

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

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

  空间索引: ALTE福特Explorer TABLE book ADD SPATIAL INDEX spatIdx( g ); 

  空间索引: ALTE宝马7系 TABLE book ADD SPATIAL INDEX spatIdx( g ); 

     二、使用CREATE INNDEX语句成立索引

     贰、使用CREATE INNDEX语句创造索引

      在那之中基本语法为:

      在那之中主题语法为:

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

      如:

      如:

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

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

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

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

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

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

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

997755.com澳门葡京 ,  空间索引: CREATE SPATIAL INDEX spatIdx ON T1(g); 

     三、删除索引

     叁、删除索引

     a、用ALTER TABLE 删除:

     a、用ALTER TABLE 删除:

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

  b、用DROP INDEX删除:

  b、用DROP INDEX删除:

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

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website