标签:alter 联合 geometry OLE 决定 sql 频率 mys index
对数据库表中的一列或者多列的值进行排序的一种结构,旨在提高数据的查询效率。
1.普通索引
不需要添加任何限制条件,可以创建在任何数据类型中,由字段本身的完整性约束决定。
2.唯一索引
使用unique参数进行设置,该值必须是唯一的。主键是一种特殊的唯一索引。
3.全文索引
使用fulltext参数进行设置,只能创建在char,varchar或者text类型的字段上,适用于查询数据量较大的字符串类型的字符时。
4.单列索引
在表中单个字段上创建,只能根据该字段进行索引查询,只要保证该索引只对应一个字段即可。
5.多列索引
在表中多个字段创建,可根据多个字段进行索引查询,只有查询条件中使用了这些字段中的第一个字段时,索引才会被使用。
6.空间索引
使用spatial参数进行设置,只能建立在空间数据类型上,geometry,point,linestring和polygon等。
唯一索引值是唯一的,可快速通过该索引来缺点某条记录。
例如:人->身份证号 学生->学号
频繁使用orderby,groupby,distinct和union等操作字段时
索引数目不是越多越好,每个索引都要占用磁盘空间,修改表时,对索引的重构和更新麻烦。
如,varchar(10)可以, varchar(255)避免
检索值很长时,比如text、blog,只检索前面的若干个字符
作为参考
语法:
create table 表名(属性名 数据类型 [完整性约束条件], ... [unique|funlltext|spatial]index|key[别名](属性名 1[(长度)][asc|desc]))
craete table index1( id int, name varchar(20), sex boolean, index(id) );
craete table index2( id int, name varchar(20), sex boolean, unique index index2_id(id asc) );
InnoDB不支持全文索引,MyISAM引擎支持
craete table index3( id int, info varchar(20), sex boolean, fulltext index index3_info(info) ) engine MyISAM;
craete table index4( id int, space geometry not null, spatial index index4_sp(space) )engine=MyISAM;
语法:
create [unique|fulltext|spatial] index 索引名 on 表名(属性名|[长度][asc|desc]);
create index index7_id on example(id);
unique index
fulltext index
index(id)
index(id, name)
spatial index
语法:
alter table 表名 add [unique|fulltext|spatial] index 索引名 (属性名 [(长度)][asc|desc]);
alter table example add index index3_name(stu_name(20));
add unique index
add fulltext index
数据类型需要是char,varchar,text,使用MyISAM引擎
add index(id)
add index(id, name)
add spatial index
使用MyISAM引擎
语法
drop index 索引名 on 表名
示例
drop index id on index1;
标签:alter 联合 geometry OLE 决定 sql 频率 mys index
原文地址:https://www.cnblogs.com/aidata/p/11546373.html