MySQL索引类型和创建索引的方式

一、索引类型

1、普通索引:基本索引,没有任何限制

2、唯一索引:唯一索引是不允许其中任何两行具有相同索引值的索引,可以有NULL值

3、主键索引:数据库中表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。在表中定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。不能为NULL值,一个表只能有一个primary key索引。

4、全文索引 

二、创建索引(三种方式)

1、适用于表创建完毕之后再添加,可以添加的类型有:unique、primary key、index、 fulltext

 ALTER  TABLE  table_name  ADD  INDEX  'index_name'('column_name');

 ALTER   TABLE  table_name  ADD  UNIQUE  'index_name'('column_name');

 ALTER   TABLE  table_name  ADD  PRIMARY KEY  'index_name'('column_name');

 ALTER   TABLE  table_name  ADD  FULLTEXT KEY  'index_name'('column_name');

 

2、对表增加普通索引或unique索引(只能添加这两种)

CREATE INDEX 'index_name' ON  table_name('column_name');

CREATE UNIQUE INDEX 'index_name' ON  table_name('column_name');

 

3、在建表时添加索引

 CREATE TABLE 'test1'(

'id'  smallint(5) unsigned auto_increment not null,

'username' varchar(64) not null comment '用户名',

'nickname'  varchar(50) not null comment '昵称',

'intro'  text,

primary key('id'),

unique key 'unique1'('username'),

key  'index'('nickname'),

fulltext key 'intro'('intro')

)engine=MyISAM  auto_increment=4 default charset=utf-8

 

删除索引

1、ALTER TABLE 'table_name'  DROP INDEX 'index_name';

2、DROP INDEX 'index_name' on 'table_name'

删除主键索引

ALTER TABLE 'table_name' DROP primary key;

查看索引

show  index from table_name;

 

*如果从表中删除某列,则索引会受影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。

索引的优缺点:1、索引可以加快查询速度  2、同样会降低写速度   3、表中索引越多,表的体积越大,占用的磁盘空间越大。

所以并不是索引数量越多越好。

 

 

你可能感兴趣的:(MySQL)