gpt4 book ai didi

php - 查询检查太多行,如何减少?

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

以下查询效率不高,我需要让它运行得更快。

id  select_type table   type    possible_keys   key key_len ref rows    Extra
1 PRIMARY sob_datas ALL sob_form_id,sob_form_id_2 NULL NULL NULL 365990 Using where
2 DEPENDENT SUBQUERY sub_sob_datas ALL sob_form_id,sob_form_id_2 NULL NULL NULL 365990 Using where

如何优化该查询? sob_field_value 是一个文本 字段

我在每种表单中提取具有不同值的字段。

SELECT
sob_datas.id,
sob_datas.sob_field_name,
sob_datas.sob_field_value
FROM sob_datas
WHERE sob_form_id = '.$proof['SobForm']['id'].' AND
EXISTS(
SELECT
sub_sob_datas.id
FROM sob_datas AS sub_sob_datas
WHERE sub_sob_datas.sob_form_id = '.$original['SobForm']['id'].' AND
sub_sob_datas.sob_field_name = sob_datas.sob_field_name AND
sub_sob_datas.sob_field_value != sob_datas.sob_field_value
)

我还应该指出,我将仅使用新值更新已更改的字段

最佳答案

很难理解这里要做什么:)所以希望我捕获了重点,这就是你正在寻找/工作的东西。如果没有请告诉我,我会尝试找出答案。

一些测试数据可能有助于该过程(5-10 行左右)以及预期从这些行中获取的内容。但这是我的尝试:

    SELECT
sob_datas.id,
sob_datas.sob_field_name,
sob_datas.sob_field_value
FROM sob_datas sd
JOIN sob_datas ssd ON sd.sob_field_name = ssd.sob_field_name
WHERE sd.sob_form_id = '.$proof['SobForm']['id'].'
AND sd.sob_field_value != ssd.sob_datas.sob_field_value

关于php - 查询检查太多行,如何减少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5721712/

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