Mysql的索引
Mysql索引是创建在数据库表对象上的,由表中的一个字段或多个字段生产的键组成,这些键存储在数据结构【B树索引和哈希索引】中。Mysql索引的出现既可以提高数据库系统查询的速度,还可以保证字段的唯一性,从而实现数据库表的完整性。但是如果过多的创建索引则将会占据许多磁盘空间。
1、Mysql支持索引的分类
普通索引:创建索引时,不附加任何限制条件(唯一、非空等限制),该类型的索引可以创建在任何数据类型的字段上。
1) 创建表时创建普通索引语法:
create table table_name (
属性名1 字段类型1,
属性名2 字段类型2,
...
属性名n 字段类型n,
index|key 【索引名】(属性名【(长度)】【asc|desc】)
)
2) 在已存在的表上创建普通索引
create index 索引名 on 表名 (属性名【(长度)】【asc|desc】)
唯一索引:在创建索引时,限制索引的值必须是唯一的。通过该类型的索引可以更快速第查询某条索引。
1) 创建表时创建唯一索引语法:
create table table_name (
属性名1 字段类型1,
属性名2 字段类型2,
...
属性名n 字段类型n,
unique index|key 【索引名】(属性名【(长度)】【asc|desc】)
)
2) 在已存在的表上创建唯一索引
create unique index 索引名 on 表名 (属性名【(长度)】【asc|desc】)
全文索引:全文索引主要关联在数据类型char、varchar和text的字段上,以便能够快速第查询数据量较大的字符串类型的字段。
1)创建表时创建全文索引语法:
create table table_name (
属性名1 字段类型1,
属性名2 字段类型2,
...
属性名n 字段类型n,
fulltext index|key 【索引名】(属性名【(长度)】【asc|desc】)
)
2) 在以存在的表上创建全文索引
create fulltext index 索引名 on 表名 (属性名【(长度)】【asc|desc】)
单列索引:
多列索引:在创建索引时,所关联的字段不是一个字段,而是多个字段。虽然可以通过所关联的字段进行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用。
1)创建表时创建全文索引语法:
create table table_name (
属性名1 字段类型1,
属性名2 字段类型2,
...
属性名n 字段类型n,
index|key 【索引名】(属性名1【(长度)】【asc|desc】),...,(属性名2【(长度)】【asc|desc】)
)
2) 在以存在的表上创建全文索引
create fulltext index 索引名 on 表名 (属性名1【(长度)】【asc|desc】,...,属性名n【(长度)】【asc|desc】)
空间索引:
你想拥有什么,你就去追求什么!