MySQL索引创建、删除、查看

时间:2024-01-03 16:10:50

主键索引

  PRIMARY KEY索引仅是一个具有名称PRIMARY的UNIQUE索引。这表示一个表只能包含一个PRIMARY KEY,因为一个表中不可能具有两个同名的索引。

  • ALTER TABLE 'tablename' ADD PRIMARY KEY("column");

普通索引

  • 直接创建索引:

    CREATE INDEX 'indexname' ON 'tablename'('column'('account'));
  • 修改表结构的方式创建索引:

    ALTER TABLE 'tablename' ADD INDEX 'indexname'('column'('account'));
  • 创建表的时候创建索引:

    CREATE TABLE 'tablename'(

    INDEX 'indexname'('column'('account'))

    );

唯一索引

  唯一索引的列必须是唯一的,但是允许有null值。如果是组合索引,则列值的组合必须唯一。

  • 创建唯一索引

    CREATE UNIQUE INDEX 'indexname' ON 'tablename'('column'('account'));
  • 改变表结构

    ALTER TABLE 'tablename' ADD UNIQUE 'indexname'('column'('account'));
  • 创建表的时候创建唯一索引:

    CREATE TABLE 'tablename'(

    UNIQUE 'indexname'('column'('account'))

    );

全文索引

  对text等文本字段建立索引。

  • 创建全文索引

    CREATE FULLTEXT INDEX 'indexname' ON 'tablename'('column');
  • 改变表结构

    ALTER TABLE person ADD FULLTEXT 'indexname'('column');
  • 创建表的时候创建全文索引

    CREATE TABLE 'tablename'(

    FULLTEXT 'indexname'('column')

    );

组合索引

  组合索引是最左前缀。

  • 创建组合索引

    ALTER TABLE person ADD INDEX idx_lastname_firstname(lastname(10),firstname(10));

    这样子相当于创建了两组组合索引:
    • -lastname
    • -lastname,fistname

查看索引

  • SHOW INDEX FROM 'tablename';

删除索引

  • 删除索引:

    DROP INDEX 'indexname' ON 'tablename';
  • 改变表结构:

    ALTER TABLE 'tablename' DROP INDEX 'indexname';
  • 删除PRIMARY KEY索引

    ALTER TABLE 'tablename' DROP PRIMARY KEY;