一、索引类型
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、表中索引越多,表的体积越大,占用的磁盘空间越大。
所以并不是索引数量越多越好。