gpt4 book ai didi

MySQL:索引名称(姓氏,名字)

转载 作者:行者123 更新时间:2023-11-29 04:12:08 30 4
gpt4 key购买 nike

这是我读过的教程中的查询

CREATE TABLE Employee (
id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
departmentId TINYINT UNSIGNED NOT NULL
COMMENT "CONSTRAINT FOREIGN KEY (departmentId) REFERENCES Department(id)",
firstName VARCHAR(20) NOT NULL,
lastName VARCHAR(40) NOT NULL,
email VARCHAR(60) NOT NULL,
ext SMALLINT UNSIGNED NULL,
hireDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
leaveDate DATETIME NULL,
INDEX name (lastName, firstName),
INDEX (departmentId)
)

INDEX name (lastName, firstName) 的作用是什么?

如果我的问题不清楚,请告诉我。

谢谢你,
古德

最佳答案

INDEX name (lastName, firstName) 正在创建一个额外的索引,以便在您使用带或不带名字的姓氏进行查询时进行快速查找。

它是一个复合索引,因为它包含两列。

已添加 本教程的作者“猜测”通常会通过姓名或部门 ID 查找员工。这就是他或她创建另外两个索引的原因。

-- 在大多数 dbms 系统中,主键索引是自动为您创建的。

在现实生活中,仅仅依靠“猜测”表中的哪些列应该被索引是不明智的。相反,使用“慢查询”日志 ( MySQL example ) 来确定哪些查询执行缓慢以及如何加快它们的速度。通常答案是添加另一个或两个索引。

附言。索引的缺点是它们增加了在表中添加、更新或删除数据所需的时间,因为必须修改表索引。索引的第二个缺点是它们会占用数据库中的空间。但是现在存储很便宜。

由于大多数数据库的读取远远多于写入,索引提供的查询速度通常远远超过成本。

关于MySQL:索引名称(姓氏,名字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487838/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com