mysql 索引

1.索引的概念:数据库的索引好比新华字典的音序表,它是对数据库表中的一列或多列的值进行排序后的一种结构,其作用是提高表中数据的查询速度。

2.普通索引:是由key或index定义的索引,它是MySQL中的基本索引类型,可以创建在任何数据类型中,其值是否唯一和非空由字段本身的约束条件所决定。

3.唯一性索引:是由 unique 定义的索引,该索引所在字段的值必须是唯一的。

4.全文索引:是由 fulltext 定义的索引,它只能创建在char,varchar或text类型的字段上,而且,只有MyISAM存储引擎支持全文索引。

5.单列索引:指的是在表中单个字段上创建索引,它可以是任何类型的索引,只要保证该索引对应表中的一个字段即可。

6.多列索引:指的是在表中多个字段上创建索引,只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。

7.空间索引:是由spatial定义的索引,它只能创建在空间数据类型的字段上,MySQL中的空间数据类型有4种,分别是geometry,point,linestring和polygon。需要注意的是:创建空间索引的字段,必须将其声明为not null,且空间索引只能在存储引擎为MyISAM的表中创建。

8.创建表的时候创建索引:

create table 表名(

字段名 数据类型[完整性约束条件],。。。

[unique|fulltext|spatial] index|key [索引名] ( 字段名1 [(长度)] [ASC|DESC])

);

9.查看索引是否被引用: explain select * from 表名 where id=1;(其中id为索引字段列)

possible_keys , key 都存在说明索引已经存在,并且已经开始使用了。

10.创建多列索引:

create table 表名(

name varchar(15) not null,

score float,

index multi (id,name(20))

);

11.使用create index语句在已经存在的表上创建索引:

create [unique|fulltext|spatial] index 索引名 on 表名 (字段名[(长度)][ASC|DESC]);

12.创建多列索引:create index 索引名 on 表名(字段1(长度),字段2(长度));

13.使用alter table语句在已经存在的表上创建索引

alter table 表名 add [unique|fulltext|spatial] index 索引名(字段名[(长度)][ASC|DESC]);

14.删除索引名:

a.使用alter table删除索引 alter table 表名 drop index 索引名;

b.使用drop index删除索引 drop index 索引名 on 表名;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值