gpt4 book ai didi

mysql - 为什么在对索引字段进行选择时使用 IN(...) 会降低 SELECT 查询的性能?

转载 作者:可可西里 更新时间:2023-11-01 06:48:09 25 4
gpt4 key购买 nike

Avoid using IN(...) when selecting on indexed fields, It will kill the performance of SELECT query.

我在这里找到了这个:https://wikis.oracle.com/pages/viewpage.action?pageId=27263381

你能解释一下吗?为什么这会降低性能?我应该用什么代替 IN。可能是“或”语句?

最佳答案

说实话,这种说法与我在有关 MySQL 的书籍和文章中读到的许多提示相矛盾。

这是一个例子:http://www.mysqlperformanceblog.com/2010/01/09/getting-around-optimizer-limitations-with-an-in-list/

此外,expr IN(value, ...)本身具有处理大值列表的额外增强功能,因为它应该用作某些 range 查询的有用替代品:

If all values are constants, they are evaluated according to the type of expr and sorted. The search for the item then is done using a binary search. This means IN is very quick if the IN value list consists entirely of constants.

仍然过度使用 IN 可能会导致查询缓慢。 the article 中记录了一些情况.

关于mysql - 为什么在对索引字段进行选择时使用 IN(...) 会降低 SELECT 查询的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8587448/

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