gpt4 book ai didi

mysql - "WHERE ... IN ...", "WHERE ... != ..."查询索引问题

转载 作者:可可西里 更新时间:2023-11-01 08:07:33 26 4
gpt4 key购买 nike

我正在使用 MySQl 数据库。

我知道如果我为列创建一个索引,使用该列索引从表中查询数据会很快。但是,我还有以下问题:

(假设我有一个名为cars的表,有一个名为country的列,并且我为country列创建了索引)

  1. 例如,我知道查询 SELECT * FROM cars WHERE country='japan' 将使用 country 列上的索引来快速查询数据。 != 操作怎么样? SELECT * FROM cars WHERE country!='japan';也会使用索引来查询数据吗?

  2. WHERE ... IN ...操作是否使用索引查询数据?例如 SELECT * FROM cars WHERE country IN ('japan','usa','sweden');

最佳答案

一般的回答是:视情况而定。这取决于数据库优化器认为什么是检索数据的最佳方式,它的决定可能需要数据的分布。

例如,如果你 99% 的行都有 country = 'japan',也许第一个查询 (=) 不会使用索引,而是带有 != 将使用它。

关于mysql - "WHERE ... IN ...", "WHERE ... != ..."查询索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8168624/

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