概述:
索引,使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。 在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容.
索引杂谈>>>
1.为什么使用索引?
答:数据库对象索引其实与书的目录非常相似,主要是为了提高从表中检索数据的速度。
2.根据索引的存储类型,可以将索引分为哪几个索引?
(2)哈希索引【HASH】
3.什么存储引擎支持B型树索引【BTREE】类型索引?什么存储引擎支持哈希索引【HASH】类型索引?
(2)MEMORY存储引擎支持HASH类型索引.
4.MySQL支持的索引有哪些?
(2)唯一索引
(3)全文索引
(4)单列索引
(5)多列索引
(6)空间索引
5.索引创建的利与弊?
答:【利】创建索引可以提高查询速度.
【弊】过多的创建索引会占据许多的磁盘空间.
6.在MySQl中有几种方式创建索引?分别为哪几种?
答:(1)三种
(2)创建表时创建索引、在已经存在的表上创建索引、通过SQL语句ALTER TABLE创建索引.
7.为什麽指定索引的长度?
答:因为不同的存储引擎定义了表的最大索引数和最大索引长度.
《
普通索引创建》
语法>>>
1.创建表时创建普通索引
语法:
create table 表名(
属性名 数据类型,
属性名 数据类型,
...... ......
index|key 索引名 (属性名1【(长度)】【ASC|DESC】)
);
2.在已经存在的表上创建普通索引
语法:
create index 索引名
on 表名(属性名1【(长度)】【ASC|DESC】);
3.通过SQl语句ALTER TABLE 创建普通索引
语法:
alter table 表名
add index|key 索引名 (属性名1【(长度)】【ASC|DESC】);
解析:上述语句中,index 或 key参数用来指定字段为索引,“索引名”参数用来指定所创建的索引名,“属性名1”参数用来指定索引所关联的字段的名称,“长度”用来指定索引的长度,“ASC”参数用来指定为升序排序,“DESC”参数用来指定为降序排序.
【附】通过哪个关键字来校验关于某字段的索引对象是否被启用?语法?
答:explain,语法:
explain select * from 表名 where 添加了索引的某字段名 = 值 \G;
《
唯一索引创建》
1.什么是唯一索引?
答:所谓唯一索引,就是在创建索引时,限制索引的值必须是唯一的.
2.创建索引方式有哪些?
答:(1)自动索引 (2)手动索引
3.什么是自动索引?
答:所谓自动索引,是指在数据表里设置完整性约束时,该表会被系统自动创建索引.
4.什么是手动索引?
答:所谓手动索引,是指手动在表上创建索引. -_-
【附】当设置表中的某个字段设置主键或唯一完整性约束时,系统就会自动创建关联该字段的唯一索引.
【附】校验数据库某表中索引是否创建成功的语法?
答:show create table 表名 \G;
语法>>>
1.创建表时创建唯一索引
语法:
create table 表名(
属性名 数据类型,
属性名 数据类型,
...... ......
unique index|key 索引名(属性名1【(长度)】【ASC|DESC】)
);
2.在已经存在的表上创建唯一索引
语法:
create unique index 索引名
on 表名(属性名 【(长度)】【ASC|DESC】);
3.通过SQL语句ALTER TABLE创建唯一索引
语法:
alter table 表名
add unique index|key 索引名 (属性名 【(长度)】【ASC|DESC】);
《
全文索引创建》
1.全文索引主要关联在数据类型为什么的字段上?原因?
答:(1)全文索引主要关联在数据类型为char、varchar、和text的字段上
(2)原因:以便能够更加快速地查询数据量较大的字符串类型的字段.
2.只能在什么的存储引擎数据库表上创建全文索引?
答:只能在存储引擎为MyISAM的数据库表上创建全文索引.
3.默认情况下,全文索引的搜索执行方式区分大小写吗?
答:不区分大小写.
4.如果全文索引所关联的字段为二进制数据类型,全文索引的搜索执行方式区分大小写吗?
答:区分大小写.
语法>>>
1.创建表时创建全文索引
语法:
create table 表名
属性名 数据库类型,
属性名 数据库类型,
...... ......
fulltext index|key 索引名(属性名1 【(长度)】【ASC|DESC】);
【附】“长度”参数用来指定索引的长度.
2.在已经存在的表上创建全文索引
语法:
create fulltext index 索引名
on 表名(属性名 【(长度)】【ASC|DESC】);
【附】“ASC”参数用来指定为升序排序,“DESC”参数用来指定降序排序.
3.通过SQL语句ALTER TABLE 创建全文索引
语法:
alter table 表名
add fulltext index|key 索引名 (属性名1【(长度)】【ASC|DESC】);
《
多列索引创建》
1.什么是多列索引?
答:所谓多列索引,是指在创建索引时,所关联的字段不是一个字段,而是多个字段.
2.多列索引所遵循的规则?
答:虽然可以通过所关联的字段进行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用.
语法>>>
1.创建表时创建多列索引
语法:
create table 表名(
属性名 数据类型,
属性名 数据类型,
...... ......
index|key 索引名(属性名1 【(长度)】【ASC|DESC】,
...... ......
属性名n 【(长度)】【ASC|DESC】
)
);
2.在已经存在的表上创建多列索引
语法:
create index 索引名
on 表名(属性名 【(长度)】【ASC|DESC】,
...... ......
属性名n 【(长度)】【ASC|DESC】
);
3.通过SQL语句ALTER TABLE创建多列索引
语法:
alter table 表名
add index|key 索引名 (属性名 【(长度)】【ASC|DESC】,
...... ......
属性名n 【(长度)】【ASC|DESC】
);
--------------------------------------------------------------------------------
感谢您的阅读