mysql上亿数据秒级查询 mysql查询最后一条数据的id( 二 )


5) 别名:可选参数,表示穿件的索引名称 。
6) 字段名1:指定索引对应字段的名称 。
7) 长度:可选参数,用于表示索引的长度 。
8) asc和desc:可选参数 。asc表升序,desc表降序排列 。
MySQL中的6种索引类型,如下:
1) 创建普通索引
在t1表中id字段上创建索引,SQL语句如下:
create table t1 ( id int,
name varchar(20),
score float,
index(id)
);
可使用explain语句查看索引是否被使用,SQL语句如下:
explain select * from t1 where id = 1 ;
2) 创建唯一性索引
创建一个表名为t2的表,在表中的id字段上建立索引名为unique_id的唯一性索引,并按升序排列,SQL语句如下:
create table t2 ( id int not null,
name varchar(20) not null,
score float,
unique index unique_id(id asc)
);
这样,便在id字段上建立了一个名为unique_id的唯一性索引 。
3) 创建全文索引
创建一个表名为t3的表,在表中的name字段上建立索引名为fulltext_name的全文索引,SQL语句如下:
create table t3 ( id int not null,
name varchar(20) not null,
score float,
fulltext index fulltext_name(name)
)engine=MyISAM;
这样,即可在name字段上建立一个名为fulltext_name的全文索引 。
需要注意的是,由于目前只有MyISAM存储引擎支持全文索引,默认的InnoDB存储引擎不支持全文索引 。因此,在建立全文索引时,一定要注意表存储引擎的类型,对于经常需要索引的字符串、文字数据等信息,可以考虑存储到MyISAM存储引擎的表中 。
4) 创建单列索引
创建一个表名为t4的表,在表中的name字段上建立索引名为single_name的单列索引,SQL语句如下:
create table t4 ( id int not null,
name varchar(20) not null,
score float,
index single_name(name(20))
);
这样,即可在name字段上建立一个名称为single_name的单列索引,并且索引的长度为20 。
5) 创建多列索引
创建一个表名为 t5的表,在表中的id和name字段上建立索引名为multi的多列索引,SQL语句如下:
create table t5 ( id int not null,
name varchar(20) not null,
score float,
index nulti(id, name(20))
);
这样,即可在id和name字段上建立一个名为multi的多列索引 。
需要注意的是,在多列索引中,只有查询条件中使用了这些字段中的第一个字段时多列索引才会被使用 。
为了验证这个说法是否正确,将id字段作为查询条件,通过explain语句查可看索引的使用情况,SQL语句如下:
explain select * from t5 where id = 1;
但是,如果只使用name字段作为查询条件,multi索引不会被使用 。
6) 创建空间索引
创建一个表名为t6的表,在空间类型为geometry的字段上创建空间索引,SQL语句如下:
create table t6 ( id int,
space geometry not null,
spatial index sp(space)
) engine=MyISAM;
这样,即可在t6表中的space字段上建立名称为sp的空间索引了 。
需要注意的是,创建空间索引时,所在字段的值不能为空值,并且表的存储引擎为MyISAM 。
已有表创建索引若想在一个已经存在的表上创建索引,可以使用 create index语句,其创建索引的具体语法格式如下所示:
create [unique|fulltext|spatial] index 索引名
on 表名 (字段名 [(长度)] [asc|desc]);
在上述语法格式中,unique、fulltext和spatial都是可选参数,分别用于表示唯一性索引、全文索引和空间索引;index用于指明字段为索引 。
为了更好的展示如何使用create index语句在已经存在的表上创建索引,接下来创建一个book表,该表中没有建立任何索引,创建book表的SQL语句如下:


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: