gpt4 book ai didi

mysql - 当字段值不明确时如何优化 MySQL 查询

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

假设我有一个 MySQL 表,其中有一个名为 balance 的索引字段。但是,该表包含 95% 的行的余额 = 0。所以如果我要走:

Select * from mytable where balance > 0.02

如果表有超过 100 万行,查询将花费很长时间,因为 BTree 索引没有一组不同的余额值。

在这种情况下,不改变数据,如何优化SQL查询

最佳答案

首先,您的查询可能会返回很多行。这需要时间。

如果只需要几个,可以加上limit:

Select *
from mytable
where balance > 0.02
limit 100;

其次,如果您有任何特别大的列,那么这些列可能会占用返回行的时间。如果这是一个问题,则只选择您真正需要的列。

第三,索引可能会有所帮助。如果只有很少的行满足 where 子句,则 balance 上的索引应该可以加快查询速度。但是,如果很多行都符合筛选条件,那么您将返回大量数据——这可能需要一些时间。

此外,这假设名为 mytable 的东西确实是一个表。如果它是一个 View ,那么所有的赌注都没有了。您需要优化 View 而不是查询。

关于mysql - 当字段值不明确时如何优化 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42025298/

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