首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL查询速度更快

问MYSQL查询速度更快
EN

Stack Overflow用户
提问于 2016-03-21 12:28:11
回答 2查看 58关注 0票数 1

怎样才能让这个查询更快呢?这只是一种选择字段的方法,您可以在其中输入varchar文本。

代码语言:javascript
复制
    SELECT
        F.field_name,
        FI.farmer_name,
        FI.lname_farmer,
        FI.farmer_email,
        FI.farmer_group,
        L.first_name,
        L.last_name,
        L.email,
        EI.extension_name,
        EI.lname_ext,
        EI.other_prof,
        EI.extension_name
    FROM
        anReference AS R
    INNER JOIN anFieldInfo AS F ON R.ref_id = F.ref_id
    INNER JOIN anFarmerInfo AS FI ON F.ref_id = R.ref_id
    INNER JOIN anCropInfo AS C ON C.ref_id = R.ref_id
    INNER JOIN anLocalTechnician AS L ON L.ref_id = R.ref_id
    INNER JOIN anSessionExtension AS SE ON SE.ref_id = R.ref_id
    INNER JOIN anExtensionInfo AS EI ON EI.extension_id = SE.extension_id
    where   R.date_accessed BETWEEN '2016-03-20 00:00:00'
AND NOW() AND (
            F.field_name LIKE '%test%'
            OR FI.farmer_name LIKE '%test%'
            OR FI.lname_farmer LIKE '%test%'
            OR FI.farmer_email LIKE '%test%'
            OR FI.farmer_group LIKE '%test%'
            OR L.first_name LIKE '%test%'
            OR L.last_name LIKE '%test%'
            OR L.email LIKE '%test%'
            OR EI.extension_name LIKE '%test%'
            OR EI.lname_ext LIKE '%test%'
            OR EI.other_prof LIKE '%test%'
            OR EI.extension_name LIKE '%test%'
        ) AND r.category = 0;

我已经试过使用concat了,但效果不是很好。

EN

回答 2

Stack Overflow用户

发布于 2016-03-21 13:44:26

计划A。在每个表中的每组字段上创建一个FULLTEXT索引,然后对每个表使用一个MATCH..AGAINST来执行文本搜索。但是,由于数据分散在4个表中,因此执行4个SELECTs的UNION,每个表有一个MATCH。注意:它只适用于“单词”,并有其他限制。请提供SHOW CREATE TABLE;没有它,除了这个“挥手”之外,我不能做更多的事情。

下面是解决这个问题的方法:考虑如何编写SELECT来测试一个表的字段,然后执行所有的JOINing以获得所需的结果。对其他3个表重复上述步骤。然后将4个SELECTs UNION DISTINCT在一起。

B计划:构建另一个表,将所有这些字段合并在一列中;搜索该表。

计划C:更改UI。

计划D:即使有糟糕的LIKE '%text%',计划A中描述的UNION可能会更快一点。这是因为临时表将会有更少的东西可用。

A计划会快得多,但注意事项可能会阻止它的使用。B计划不会更快。

VIEW us语法糖;而不是性能助推器。

票数 2
EN

Stack Overflow用户

发布于 2016-03-21 12:43:13

请为您的上述查询创建一个视图,并使用View it比当前查询更快地获取数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36123165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档