https://blog.csdn.net/douzhenwen/article/details/113658686
在web开发中,使用记录id获得详情信息是一个比较频繁的操作,所有必须具有很高的查询速度,这时,很多小伙伴就会想到使用索引,在id字段上添加索引。且慢!!! 接下来让阿都告诉你,为什么拦着你了。
在阿里java开发手册(嵩山版)明确规定数据库表必备主键id,当然接下来的操作也必须按照大厂的规范来,毕竟阿都也有一个大厂的心。关注微信公众号【菜鸟阿都】,并回复:开发手册,可获得阿里java开发手册(嵩山版)。
阿都先创建一个具有主键id的测试表【user:具有主键id】
CREATE TABLE user
(
id
int NOT NULL,
name
varchar(255) NULL,
PRIMARY KEY (id
)
);
一不小心运行了查询索引的命令
show index FROM user
图片列字段说明
Table:表名称
Non_unique:如果索引不能包括重复词,则为0,反则为1
Key_name:索引的名称
Seq_in_index:索引的列序列号,从1开始
Column_name:列名称
尴尬了,竟然还运行出了结果,不知道什么时候这张新建的user表中已经为字段id创建了索引,原来,数据库会默认为主键字段创建索引【主键索引】,现在知道为什么阿都刚才拦着那些想给id创建索引的小伙伴了吧
为了凑字数,顺便研究一下,如果表中具有多个主键,数据库会不会为每个主键都创建索引,老套路,先建它一张表【user:两个主键id,name】
CREATE TABLE user
(
id
int NOT NULL,
name
varchar(255) NOT NULL,
PRIMARY KEY (id
, name
)
);
运行命令查看索引
show index FROM user
数据库为id和name都创建了索引
现在终于有点明白阿里规范中为什么要求创建主键id了,老铁,别走,顺便体验一波id带了索引的效果
创建具有主键id的user表
CREATE TABLE user
(
id
int NOT NULL,
name
varchar(255) NULL,
PRIMARY KEY (id
)
);
创建储存过程生成100万条假数据
CREATE PROCEDURE add_vote_memory1
(IN n int)