mysql索引分类、创建索引、删除索引、删除主键、查看索引、修改索引

本文详细介绍了MySQL中的索引定义、作用,包括普通索引、唯一索引、全文索引和联合索引的创建、删除及查看方法。通过实例展示了如何在建表时和已有表上创建索引,以及如何删除和查看索引。同时,讨论了主键索引的特殊性和修改索引的方法。对于数据库性能优化,理解并正确使用索引至关重要。
摘要由CSDN通过智能技术生成

目录

索引定义和作用

mysql索引分类

创建索引

建表时创建

在已存在的表上创建索引

删除索引

查看索引

修改索引

联合索引操作


各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!

索引定义和作用

索引就是保存在磁盘中的,高效查询的一种数据结构。InnoDB默认使用的是B+Tree结构,至于什么是B+Tree,为什么选择B+Tree,感兴趣的可以看mysql索引机制、二分查找法、二叉树、平衡二叉树、B-Tree、B+Tree

mysql索引分类

普通索引、唯一索引(主键索引也是唯一索引的一种)、全文索引FULLTEXT、联合索引(也叫多列索引)等。

创建索引

建表时创建

create table 表名(
  字段名1  数据类型 [完整性约束条件…],
  字段名2  数据类型 [完整性约束条件…],
  [UNIQUE | FULLTEXT | SPATIAL ]   INDEX | KEY
  [索引名]  (字段名[(长度)]  [ASC |DESC]) 
);

CREATE TABLE t_index(
  id INT(11) NOT NULL AUTO_INCREMENT,
  NAME VARCHAR(32) DEFAULT '',
  age INT,
  UNIQUE INDEX idx_t_index_name(NAME),
  PRIMARY KEY(id)
);

需要注意的是创建主键索引的时候只能使用key,而不能这样 primary index(id)。

在已存在的表上创建索引

CREATE  [UNIQUE | FULLTEXT | SPATIAL ]  INDEX  索引名 ON 表名 (字段名[(长度)]  [ASC |DESC]) ;

ALTER TABLE 表名 ADD  [UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名 (字段名[(长度)]  [ASC |DESC]) ;

CREATE INDEX idx_t_index_age ON t_index(age);
ALTER TABLE t_index ADD INDEX idx_t_index_name(NAME);

 

删除索引

DROP INDEX 索引名 ON 表名字;

ALTER TABLE 表名 DROP INDEX 索引名 ;

DROP INDEX idx_t_index_name ON t_index;
alter table t_index drop index idx_t_index_name ;

 删除主键

如果主键是自增的,不能直接删除,会报如下错误,想要删除,需要先将主键的自增特性去掉,再删除。

alter table t_test modify id int;
alter table t_test drop primary key;


查看索引

show index from 表名字;

SHOW INDEX FROM t_index;

修改索引

mysql中没有真正意义上的修改索引,只有先删除之后在创建新的索引才可以达到修改的目的。

联合索引操作

联合索引的创建、修改等操作跟单列索引一样,只是由一列变为多列而已,如:

ALTER TABLE t_index ADD INDEX index_name(id,NAME);

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值