查看是否有加索引:
show index from `basic_auth`;
desc `basic_auth` ;
在mysql中如果想要查看表的定义的话;有如下方式可供选择
1、show create table 语句:
show create table table_name;2、desc table_name 语句:
create table person( id int not null auto_increment primary key, name varchar(8), index ix__person__name (name)); desc person; +-------+------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(8) | YES | MUL | NULL | | +-------+------------+------+-----+---------+----------------+由这个例子可以看出:
Field:字段表示的是列名
Type:字段表示的是列的数据类型
Null :字段表示这个列是否能取空值
Key :在mysql中key 和index 是一样的意思,这个Key列可能会看到有如下的值:PRI(主键)、MUL(普通的b-tree索引)、UNI(唯一索引)
Default: 列的默认值
Extra :其它信息
建立普通索引
这是最基本的索引,它没有任何限制。
格式:
create table table_name
(
属性名,数据类型【完整约束】,
属性名,数据类型【完整约束】,
......
属性名,数据类型【完整约束】,
index|key 索引名 (属性名【(长度)】【asc|desc】)
);
建立唯一性索引
建立唯一性索引时,需要使用unique 参数进行约束,就是在建立普通索引的基础上加上unique关键字。
建立全文索引
全文索引只能建立在char,varchar或者text类型的字段上。并且要注意的是MYSQL5.6版本,Innodb引擎才开始对FUULTEXT索引支持。
建立多列索引
多列索引就是在多个字段上创建索引
例如下面创建表newtable3,在类型char(20)的name字段上和int类型的age字段上建立索引
查看索引
在实际使用索引的过程中,有时需要对表的索引信息进行查询,了解在表中建立的索引,
格式:
show index from tablename
6
删除索引
创建索引之后,如果用户不在使用该索引,可是删除指定表的索引。因为这些已经建立且不经常使用的索引一方面会占用系统资源,一方面导致更新的速度下降。
格式:
drop index index_name on table_name;
如下面删除newtable中的索引name_index 索引