首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要提高sql性能

问需要提高sql性能
EN

Stack Overflow用户
提问于 2013-04-22 18:09:30
回答 1查看 76关注 0票数 1
代码语言:javascript
复制
Table temporary_search_table
post_id,property_status, property_address,....more 30 field

Table search_meta
meta_id,search_id,status,created_date

好的,我需要created_date昨天的总数据。对于每个temporary_search_table数据,在search_meta中可能有多个条目。因此,我们需要从search_meta中选择最后一个字段,并检查created date是昨天,而property_status是挂起的。如果是,那么我们就可以计算数量了。如果search_meta中没有数据可用于temporary_search_table中的条目,那么我们不需要在结果中计算该行的数量。

这里我附加了我的sql数据。它的工作,但30000行,它花了很多时间。

代码语言:javascript
复制
SELECT COUNT(id) FROM temporary_search_table 
    WHERE property_status = 'pending' AND (1 = (SELECT DATEDIFF(NOW(), created_date) 
    FROM search_meta WHERE post_id = search_id ORDER BY created_date DESC LIMIT 0,1 ))

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-04-22 18:19:18

除了检查表上的索引之外,最好不要使用相关子查询,而是使用直接连接。

代码语言:javascript
复制
SELECT COUNT(id) 
FROM temporary_search_table 
INNER JOIN search_meta ON post_id = search_id
WHERE property_status = 'pending' AND DATEDIFF(NOW(), created_date) = 1
ORDER BY created_date DESC 
LIMIT 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16144479

复制
相关文章

相似问题

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