gpt4 book ai didi

mysql - MySQL SELECT 查询速度慢

转载 作者:行者123 更新时间:2023-11-29 14:29:30 31 4
gpt4 key购买 nike

我的 MySQL SELECT 查询速度很慢,我似乎无法对其进行故障排除。

这很简单,在一张大约有 600,000 条记录的表上。

SELECT * 
FROM `civicrm_contact` contact
WHERE contact.external_identifier =123456

Select 查询需要 3-6 秒的时间,这使得导入依赖于该查询的另外 600,000 条记录完全不切实际。

表索引如附图所示:Table Indexes

如果我根据contact.id=123456进行搜索,那么查询时间会下降到大约0.004s。 contact.id 是表上的主键。 external_identifier 是唯一索引。

最佳答案

我知道这是一个旧线程,但由于它与 CiviCRM 有关,我想我应该提出我的想法。该修复实际上不是最佳实践,因为您已经更改了核心打包表之一以使查询运行得更快。虽然这对你来说可能没问题,但我绝对不会向所有人推荐这个。

您的解决方案可能突出显示了查询的问题,您似乎告诉查询您期望一个数字,但实际上数据存储为 VARCHAR。所以我认为简单地在值周围加上单引号就可以了?

选择*来自 civicrm_contact 联系人WHERE contact.external_identifier = '123456'

如果没有这个,我非常确定(与 Oracle 合作多年)将会发生隐式数据类型转换,因此查询将无法使用 INDEX。

解释计划应该证明这个理论。

谢谢

帕尔韦兹

关于mysql - MySQL SELECT 查询速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284377/

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