mysql - MySQL中键、主键、唯一键和索引的区别

标签 mysql indexing primary-key unique-key sqlperformance

什么时候应该使用KEYPRIMARY KEYUNIQUE KEYINDEX

最佳答案

KEYINDEX 在 MySQL 中是同义词。他们的意思是一样的。在数据库中,您将使用 indexes以提高数据检索的速度。通常在 JOINWHEREORDER BY 子句中使用的列上创建索引。

假设您有一个名为 users 的表,您想要搜索所有姓氏为“Smith”的用户。如果没有索引,数据库将不得不遍历表的所有记录:这很慢,因为数据库中的记录越多,查找结果所需的工作就越多。另一方面,索引将帮助数据库快速跳转到保存“Smith”记录的相关页面。这与我们人类通过电话簿目录查找姓氏的方式非常相似:我们不会从头到尾搜索目录,只要我们按照某种顺序插入信息即可用于快速跳到“S”页。

主键和唯一键是相似的。主键是可以唯一标识一行的列或列的组合。它是 unique key 的特例.一张表最多可以有一个主键,但可以有多个唯一键。当您在列上指定唯一键时,表中任何两个不同的行都不能具有相同的值。

另请注意,定义为主键或唯一键的列会在 MySQL 中自动建立索引。

关于mysql - MySQL中键、主键、唯一键和索引的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28219373/

相关文章:

MySQL JOIN 一次查询中的 3 个表

mysql - ActiveRecord::Base.connection mysql join查询结果的区分方法?

wordpress 中的 mysql 慢查询和超时

SQL - 这种关系可以有一个主键吗?

mysql - 如何总结没有周末的休假时间

单个表和分区上的 MySQL 性能 : multiple tables vs. 索引

sql-server - SQL Server (2005) - "Deleted On"DATETIME 和索引

mysql - 使用 MySQL 了解主键和关系数据库 (phpmyadmin)

sql - 我如何允许sql中的重复值?

MySQL:连接表中的 IS NULL