SQL:主键和索引究竟做了什么?

前端之家收集整理的这篇文章主要介绍了SQL:主键和索引究竟做了什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近开始开发我使用sql数据库的第一个严肃的应用程序,我正在使用PHPMyAdmin来设置表。有几个可选的“功能”我可以给各种各样的列,我不完全确定他们做什么:

>主键
>索引

我知道PK是什么,如何使用它,但我想我的问题是,为什么需要一个 – 它与仅仅将列设置为“唯一”是不同的,除了你可以只有一个PK?只是让程序员知道这个值唯一标识记录?还是有一些特殊的属性呢?

我不知道“索引”是什么 – 事实上,我曾经看过它的唯一时间是(1)我的主键似乎被索引,(2)我听说索引与某种性能有关;你想要索引的列,但不是太多。如何决定哪些列索引,它究竟是做什么的?

编辑:应该有一个索引colums一个可能想要ORDER BY?

非常感谢,

马拉

解决方法

主键通常用于为记录创建数字“id”,并且该id列将自动递增。

例如,如果您有一个带有id字段的书籍表,其中id是主键,并且还设置为auto_increment(在“额外的PHPmyadmin”中),那么当您首先向书中添加一本书时,该表的ID将成为1’。下一本书的ID将自动为“2”,依此类推。通常,每个表格应至少有一个主键,以帮助识别和查找记录。

当您需要定期从表中检索某些信息时,将使用索引。例如,如果您有用户表,并且您需要访问电子邮件列,那么您可以在电子邮件添加索引,这将导致访问电子邮件查询更快。

但是,也有添加不必要的索引的缺点,所以添加这些只是真正需要被访问的列比别人更多。例如,UPDATE,DELETE和INSERT查询将会有更慢的索引,因为MysqL需要为每个索引列存储额外的信息。更多信息可以在this page找到。

编辑:是的,需要在ORDER BY中使用的列应该有索引,以及在WHERE中使用的列。

猜你在找的MsSQL相关文章