美文网首页
2018-09-27 各种索引

2018-09-27 各种索引

作者: 土豆丝炒洋芋丝 | 来源:发表于2018-09-27 11:33 被阅读0次

    原文地址: https://www.cnblogs.com/crazylqy/p/4361394.html
    原文地址:https://www.cnblogs.com/interdrp/p/8031087.html

    总体分析

    PRIMARY, INDEX, UNIQUE 这3种是一类

    PRIMARY 主键。 就是 唯一 且 不能为空。

    INDEX 索引,普通的

    UNIQUE 唯一索引。 不允许有重复。

    FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。

    MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别?各适用于什么场合?

    举个例子来说,比如你在为某商场做一个会员卡的系统。
    这个系统有一个会员表
    有下列字段:

    Tables Are
    会员编号 INT 作为主键,使用PRIMARY
    会员姓名 VARCHAR(10) 普通的 INDEX
    会员身份证号码 VARCHAR(18) UNIQUE (唯一的,不允许重复)
    会员电话 VARCHAR(10)
    会员住址 VARCHAR(50)
    会员备注信息 TEXT 选择 FULLTEXT,全文搜索。
    不过 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。
    用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。

    普通索引

    这是最基本的索引类型,而且它没有唯一性之类的限制。

    创建索引,例如 CREATE INDEX <索引的名字> ON tablename (列的列表);
    修改表,例如 ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);
    创建表的时候指定索引,例如 CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );

    唯一性索引

    这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一。

    MYSQL主键

    MYSQL主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”。

    例如“CREATE TABLE tablename ( [...], PRIMARY KEY (列的列表) ); ”。
    但是,我们也可以通过修改表的方式加入主键,例如“ALTER TABLE tablename ADD PRIMARY KEY (列的列表);”。
    每个表只能有一个主键。

    全文索引

    MySQL从3.23.23版开始支持全文索引和全文检索。在MySQL中,全文索引的索引类型为FULLTEXT。
    全文索引可以在VARCHAR或者TEXT类型的列上创建。
    它可以通过CREATE TABLE命令创建,也可以通过ALTER TABLE或CREATE INDEX命令创建。
    对于大规模的数据集,通过ALTER TABLE(或者CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。

    单列索引与多列索引

    创建索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);
    修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表);
    创建表的时候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) );

    相关文章

      网友评论

          本文标题:2018-09-27 各种索引

          本文链接:https://www.haomeiwen.com/subject/iefeoftx.html