【MySQL】表的主键与索引

在查MySQL表时,如果表的数据量比较大时,数据的查询速度回慢很多,这时候,如果表有设置主键或索引,查询速度会有质的提升

基本概念:

主键:主关键字(primary key)是表中的一个或多个字段,它的值用于唯一的标识表中的某一条记录

索引:索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单

之前学习的时候,有个老师这样说:索引就像是书的目录,根据目录查找数据是比一页页看要快很多的

主键

主键需要注意的是,主键字段有唯一性,不能有重复值,一般用于表的id字段

ALTER TABLE <数据表名> ADD PRIMARY KEY(<字段名>);

ALTER TABLE user_info ADD PRIMARY KEY(id);

如果要设置主键的字段有重复值,会报错:

删掉重复数据之后,修改完成 

主键列前后查询速度对比:

可以看到逐渐设置好之后,查询时间几乎为0

索引

索引设置时,不需要考虑是否会有重复数据,可以针对所需要添加索引的列进行设置

ALTER TABLE <数据表名> ADD INDEX 索引名(列名);

ALTER TABLE user_info ADD INDEX city(city);
--索引名可以和列名一样

回到之前一个用过这张表的python任务,同样是执行插入10条数据,执行速度前后对比:

猜你喜欢

转载自blog.csdn.net/weixin_39407597/article/details/131263496