vlambda博客
学习文章列表

mysql里的索引操作语句

1. 普通索引的创建、删除、修改。

  • create table test1(

    id int,

    name varchar(32),

    index in_id(id),

    key in_name(name));

  • 上面中的index和key关键字创建索引的效果是一样的。

  • 可以使用show create table test1来查看建表语句。

  • 删除索引方法一:drop index in_id on test1;

  • 删除索引方法二:alter table test1 drop index in_name;

  • 在已经建立的表中添加索引,这里就称为修改索引。

    方法一:create index in_id on test1(id);

    方法二:alter table test1 add index in_name(name);


2. 唯一索引的创建、删除、修改。

  • create table test2(

    id int auto_increment key,

    name varchar(32) not null unique,

    tel varchar(64) not null,

    unique key uniq_tel(tel));

  • 上面中的id字段是主键(也是一种唯一索引),name是唯一索引,tel也是唯一索引。

  • 可以使用show create table test2来查看建表语句。

  • 删除索引:drop index uniq_tel on test2;

  • 修改索引:alter table test2 add unique key uniq_tel(tel);


3. 全文索引的创建、删除、修改。

  • create table test3(

    id int auto_increment key,

    name varchar(32) not null unique,

    name_desc varchar(255) not null,

    fulltext full_name_desc(name_desc));

  • 上面中的name_desc就是全文索引。

  • 删除索引:drop index full_name_desc on test3;

  • 修改索引:alter table test3 add fulltext full_name_desc(name_desc);


4. 多列索引的创建、删除、修改。

  • create table test4(

    id int auto_increment key,

    name1 varchar(32) not null,

    name2 varchar(32) not null,

    name3 varchar(32) not null,

    name4 varchar(32) not null,

    index mul_n1_n2_n3(name1,name2,name3));

  • 上面中的mul_n1_n2_n3就是name1、name2、name3的复合索引名。

  • 删除索引:drop index mul_n1_n2_n3 on test4;

  • 修改索引:alter table test4 add index mul_n1_n2_n3(name1,name2,name3);


5. 唯一多列索引。

  • create table test5(

    id int auto_increment key,

    name1 varchar(32) not null,

    name2 varchar(32) not null,

    name3 varchar(32) not null,

    name4 varchar(32) not null,

    unique key mul_n1_n2_n3(name1,name2,name3));


6. 空间索引。

  • create table test5(

    id int auto_increment key,

    name geometry not null,

    spatial key spa_name(name)) engine = MyISAM;