mysql学习3:MySQL数据库索引

索引可以提高数据的查询速度,但索引会占用一定的磁盘空间,并且在创建和维护索引时,其消耗的时间是随着数据量的增加而增加的。应综合考虑索引的优缺点。


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

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

(2)     唯一性索引:有unique定义,该索引所在字段的值必须是唯一的。

(3)     全文索引:由fulltext定义的索引,只能创建在char,varchar或text类型的字段上,而且现在只有myisam存储引擎支持全文索引

(4)     单列索引:是在表中单个字段上创建索引,可以是普通索引、唯一索引或全文索引,只要保证该索引只对应表中一个字段即可。

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

(6)     空间索引:由spatial定义的索引,只能创建在空间数据类型的字段上,mysql中的空间数据类型有4种,分别是geometry, point, linestring和polyon。创建空间索引的字段,必须将其声明为not null,并且空间索引只能在存储引擎为myisam的表中创建。

2.     创建索引

(1)     创建表的时候创建索引

        创建普通索引

    创建唯一性索引

    创建全文索引

    创建单列索引

    创建多列索引

 创建空间索引

(2)     使用create index语句在已经存在的表上创建索引

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

        先创建一个book表。

    创建普通索引

    创建唯一性索引

Ø  创建单列索引:createindex singleidx on book(comment);

Ø  创建多列索引:createindex mulitidx on book(authors(20), info(20));

Ø  创建全文索引:createfulltext index fulltextidx on book(info);

Ø  创建空间索引:createspatial index spatidx on table7(g);

(3)     使用alter table语句在已经存在的表上创建索引

Ø  创建普通索引:altertable book add index index_id(bookid);

Ø  创建唯一性索引:altertable book add unique uniqueidx(bookid);

Ø  创建单列索引:altertable book add index singleidx(comment(50));

Ø  创建多列索引:altertable book add index multidx(authors(20),info(50));

Ø  创建全文索引:altertable book add fulltext index fulltextidx(info);

Ø  创建空间索引:altertable t8 add spatial index spatidx(space);

3.     删除索引:

(1)     使用alter table删除索引:alter table 表名 drop index 索引名

(2)     使用drop index删除索引:drop index 索引名 on 表名。

猜你喜欢

转载自blog.csdn.net/zhuzuwei/article/details/80639431
今日推荐