zoukankan      html  css  js  c++  java
  • MySQL 5.6学习笔记(索引的创建与删除)

    1. 创建索引

    1.1 创建新表时同时建立索引

    语法:

    create table table_name[col_name data_type]
    [unique|fulltext|spatial][index|key][index_name](col_name[length],...)[asc|desc]

    -unique、fulltext、spatial为可选参数,分别表示唯一索引、全文索引、空间索引。只有MyISAM存储引擎支持全文索引、空间索引。

    -index与key是同义词。

    -index_name也为可选参数,不指定则由MySQL决定。

    -length为可选参数,只有字符串类型的字段才能指定索引长度。

    示范:

    create table book
    (
        ...,
        year_publication year not null,
        index(year_publication)
    );

    其它写法:

    unique index Uniqidx(id)
    ...
    index ingleidx(name(20))
    ...
    index multiidx(id,name,age)

    组合索引可以起几个索引的作用,但是使用时并不是随便查询哪个字段都可以使用索引,而是遵从“最左前缀”:利用索引中最左边的列集来匹配行。比如上面示范中的:index multiidx(id,name,age)索引,索引行中按id/name/age的顺序存放,索引可以搜索下面字段组合:(id,name,age)、(id,name)或者id。如果列不构成索引最左面的前缀,MySQL不能使用局部索引,如:(age)或者(name,age)。

    1.2 在已经存在的表上创建索引

    语法一:

    alter table table_name add [unique|fulltext|spatial] [index|key] 
    [index_name](col_name[length],...)[asc|desc]

    语法二:

    create [unique|fulltext|spatial] index index_name on table_name(col_name[length],...) [asc|desc]

    不太建议使用语法二,因为它与Oracle的语法相去甚远。

    2. 查看索引

    show index from table_nameG

    3. 删除索引

    语法一:

    alter table table_name drop index index_name;

    语法二:

    drop index index_name on table_name;
  • 相关阅读:
    事务传播机制,搞懂。
    洛谷 P1553 数字反转(升级版) 题解
    洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here 题解
    洛谷 P1055 ISBN号码 题解
    洛谷 P2141 珠心算测验 题解
    洛谷 P1047 校门外的树 题解
    洛谷 P1980 计数问题 题解
    洛谷 P1008 三连击 题解
    HDU 1013 题解
    HDU 1012 题解
  • 原文地址:https://www.cnblogs.com/nayitian/p/3420884.html
Copyright © 2011-2022 走看看