小编ani*_*van的帖子

提高大数据集的查询性能

作为日常 cron 工作的一部分,我需要运行一个处理大量数据的查询。此数据与访问网站的访问者有关,并使用我们之前捕获的数据更新数据。

该查询依赖于 2 个派生表(本FROM节中的选择查询)来完成其工作——

SELECT  
  new_visits.visitor_id, new_visits.visit_id, new_visits.visit_first_action_time,
  new_visits.purchased as purchased,  
  ifnull(existing_visitors.purchased, 0) as existing_purchased 
FROM   

    ( SELECT          
        tv.visitor_id, tv.visit_id, tv.visit_first_action_time, 
        if(tc.idgoal=0,1,0) as purchased                       
      FROM 
        tbl_visit tv left outer join tbl_conversion tc         
      ON 
        tv.visit_id = tc.visit_id AND tc.idgoal = 0                       
      WHERE
        tv.idsite= 12 AND tv.visit_id >= 477256              
      ORDER BY tv.visit_id       
      LIMIT 1000 ) new_visits

   LEFT JOIN          

   ( SELECT 
       visitor_id, max(visit_seq) as visit_seq, purchased 
     FROM 
       tbl_last_input_visit where site_id = 12 
     GROUP BY visitor_id ) existing_visitors      

   ON new_visits.visitor_id …
Run Code Online (Sandbox Code Playgroud)

mysql

5
推荐指数
1
解决办法
2567
查看次数

标签 统计

mysql ×1