gpt4 book ai didi

mysql - SQL 密集索引和稀疏索引

转载 作者:行者123 更新时间:2023-11-29 15:22:47 24 4
gpt4 key购买 nike

我正在准备数据库期末考试,我想了解这两个问题。您能否向我解释一下哪个是正确答案以及为什么它是正确的。

  1. 假设您与模式 R(X, Y, Z) 有关系。 X 的每个值都是唯一的,但是其他列可能有重复值。假设在属性X上为关系R创建了稀疏索引。以下哪个查询可以有效地使用该索引?

    (a) 选择最大值(X)来自R

    (b) 选择最大值(Y)从R按 X 分组

    (c) 选择 *从R其中 X <> 30

    (d) 选择最大值(Y)从R其中 X = 23

    (e) 以上都没有有效地使用索引

我相信 (a) 可能是正确的答案,因为我们有 X 的索引,并且它们都是唯一值。

  • 假设您与模式 R(X, Y, Z) 有关系。 X 的每个值都是唯一的,但是其他列可能有重复值。假设在属性X和Y上为关系R创建了密集索引。以下哪个查询可以有效地使用该索引?

    (a) 选择 *从R其中 X < Y

    (b) 选择不同的 X、Y从R其中 X = 23 且 Y > 39

    (c) 选择 X、Y来自R

    (d) 选择 X从R其中 Y = 23

    (e) 以上都没有有效地使用索引

  • 我相信 (c) 可能是正确的答案,因为我们有 X 和 Y 的索引。

    最佳答案

    MySQL 没有“密集”与“稀疏”之分。以下是最佳指标:

    (a) SELECT MAX(X) FROM R   -- INDEX(X)

    (b) SELECT MAX(Y) FROM R GROUP BY X -- INDEX(x,y); INDEX(x) is not as good

    (c) SELECT * FROM R WHERE X <> 30 -- No index is _likely_ to be useful

    (d) SELECT MAX(Y) FROM R WHERE X = 23 -- Does not make sense if X is unique

    (e) none of the above uses the index effectively -- Some: a,b,d

    (a) SELECT * FROM R WHERE X < Y   -- no index

    (b) SELECT DISTINCT X, Y FROM R WHERE X = 23 AND Y > 39 -- Dumb due to uniqueness

    (c) SELECT X, Y FROM R -- no index; just read the table

    (d) SELECT X FROM R WHERE Y = 23 -- INDEX(Y,X), or, not as good, INDEX(Y)

    (e) none of the above uses the index effectively -- ambiguous; note that (Y,X) is not same as (X,Y)

    关于mysql - SQL 密集索引和稀疏索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59276998/

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