mysql空间索引关键字_Mysql 索引

索引 is what ?

索引是借助存储引擎实现的一种高效获取数据的数据结构。在查询数据时能有效避免全表扫面,从而实现高效获取数据。

由于索引是排好序的数据结构,这就能有效的维护数据的唯一性,并且实现高效获取数据,虽然查询数据的效率有了很大的提高,但是在对数据表进行 增、删、改时为了维护数据表的索引也耗费了一定的系统资源。

索引的创建

在创建表的时候创建索引

create table表名(

列名1 数据类新[约束条件],

列名2 数据类型[约束条件],

......[UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY [别名] (列名n[(长度)]) [ASC | DESC];

)engine=ENFINE_NAME;

说明:

UNIQUE :可选参数,表示唯一索引;

FULLTEXT:可选参数,表示全文索引;

SPATIAL:可选参数,表示空间索引;

INDEX 和 KEY:用来表示字段的索引,二选一;

别名:可选参数,表示创建的索引名;

列名n:指定索引对应的字段名称;

长度:可选参数,表示索引的长度;

ASC 和 DESC :可选参数,选择升序或降序。

普通索引

例如在 id 上创建

create tabletable_name(

idint not null,

namevarchar(15),INDEX(id)

);

唯一索引

create tabletable_name(

idint not null,

namevarchar(15),UNIQUE KEY unique_id(id ASC)

);

其实主键也是一种唯一索引——不能有空值。

全文索引

InnoDB引擎不支持,MyISAM支持性能较好,一般在 char 、varchar或text的列上创建;

create table表名(

列名1,

列名2,

......

FULLTEXTINDEXfullindex(列名n)

)engine=MyISAM;

多列索引

若是创建单例索引,括号中列出一个列名便好;若是创建多列索引,则括号中列出相关列的列名即可。

空间索引

Mysql使用关键字:SPATIAL 创建空间索引,空间索引只能建立在空间数据类型上,并且相应的字段必须有非空约束。而支持空间索引存储引擎只有 MyISAM。

Mysql空间数据类型:geometry、point、linestring、polygon。

在已建的数据表中创建索引

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name ON table_name(列名[(长度)] [ASC | DESC]);

对于普通索引可直接

CREATE INDEX index_name ON table_name(列名);

对于唯一索引,全文索引,空间索引 ,单列索引或多列索引使用相应的关键字创建即可。

修改表的结构添加索引

ALTER TABLE table_name ADD [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name (列名[(长度)] [ASC | DESC]);

例如添加一个多列索引:

ALTER TABLE table_name ADD INDEX index_name (列名1,列名2,...);

查看索引

可以从表的结构来查看索引:

SHOW CREATE TABLE table_name;

DESC table_name;

SHOW COLUMNS FROM table_name;

第一句sql语句会将 索引整合到表的创建语句中,然后将表的整个创建语句显示出来;

c2aa7dff8d0f10aa8d1df037e5cac285.png

其中:UNIQUE KEY 'info' ('title')  便是;

后两句效果相同,以列表的方式给出:

2ad68a6e7a973f654720cfa56f489d6e.png

其中,对于 Field title在 Key 列有值 UNI,这表明是唯一索引。

SHOW [INDEX | KEYS] FROM table_name;

这句sql 语句则会将表中的所有索引的详细的列出。

29efc89730e0494634e3bc70ca99e166.png

看得出 列  title 对应的索引名为 info , Non_unique 的值为 0 说明是唯一索引。

删除索引

DROP INDEX index_name ON table_name;

ALTER TABLE table_name DROP INDEX index_name;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值