gpt4 book ai didi

mysql - 选择计数查询需要 2 分钟才能在 mysql 中得到计数结果

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

我使用mysql数据库,它的表名为license_csv,它有1800万条记录,并且使用 MYISAM 引擎,当我尝试在没有 where 条件的情况下对记录进行计数时,计数所需时间不到 1 秒,但是当我应用 where 条件时,需要 2 分钟 才能得到计数结果,我已应用 索引这2列lic_statelic_city,计数结果仍然需要2分钟,任何人都可以帮助我现在需要做什么那个查询?在这里我还添加了我的查询,

SELECT COUNT(*) as total 
from license_csv WHERE
lic_state like '%ca%' AND lic_city LIKE '%fresno%'

最佳答案

您的查询的问题是您在字符串两侧都使用了 % 通配符。这会破坏现有的索引。因为索引是连续的,MySQL 无法将它们用于这种类型的条件,因为没有任何东西可以告诉他从哪里开始搜索。

可能的选项:

  • 如果可能,切换到相等而不是LIKE;然后,您可以利用 (lic_state, lic_sity)
  • 上的索引
  • 否则,删除左侧的通配符(lic_state like 'ca%')可能会有所帮助
  • 切换到全文搜索
  • 将 CA 代码和城市列表存储在另一个表中(该表应该比许可证表小得多),并在许可证表中有一列引用其主键;然后在搜索中JOIN该表。使用此选项,应用搜索条件时要搜索的记录范围会更小

关于mysql - 选择计数查询需要 2 分钟才能在 mysql 中得到计数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58038746/

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