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中使用的列。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |