gpt4 book ai didi

mysql - 在多列上使用单个值的 WHERE 优化

转载 作者:行者123 更新时间:2023-11-29 18:05:43 25 4
gpt4 key购买 nike

我有一个 MySQL 表,我正在尝试在一对列中搜索单个值。这是一个相当大的表,所以我希望搜索时间尽可能快。

为了便于理解,我简化了下表

SELECT * FROM clients WHERE name=? OR sirname=?

VS

SELECT * FROM clients WHERE ? IN (name, sirname)

带有姓名和先生姓名的索引

前者的 EXPLAIN 使用索引,但后者则不使用

这是准确的,还是在幕后进行了一些 EXPLAIN 无法捕捉到的优化?

Checking multiple columns for one value 密切相关,但由于线程年龄无法在那里讨论。

最佳答案

因为 MySQL 通常在查询中对每个表引用使用一个索引,所以您可能必须这样做:

SELECT * FROM clients WHERE name=?
UNION
SELECT * FROM clients WHERE sirname=?

出于索引选择的目的,这将被视为两个表引用。在每种情况下都会使用适当的索引。

关于mysql - 在多列上使用单个值的 WHERE 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47872816/

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