原MySql陳述句為:
select count( distinct testcases.full_name)
from jobs
left join perform on perform.compare = 1
and perform.performvalue <> ''
and perform.gvalue <> ''
and jobs.id = perform.job_id
left join testcases on perform.testcase_id = testcases.id
left join testplans on perform.testplan_id = testplans.id
left join perform_items on perform.performitems_id = perform_items.id
where
date_format(jobs.testdate, '%Y-%m-%d') = '2019-12-31'
現在perform已經按月份分表,每個表大約五百萬資料
上面這種sql怎么改寫成能查詢所有perform分表的sql陳述句。請大神指點。
uj5u.com熱心網友回復:
或者說,把上邊SQL陳述句拆分,對每個月份的表用上面的sql執行一遍,然后代碼層進行聚合查詢結果。這樣行嗎?PS,perform分表后,一年內資料有用,最多十二個表。
uj5u.com熱心網友回復:
用視圖,union所有表即可uj5u.com熱心網友回復:
union all 性能可以嗎uj5u.com熱心網友回復:
不是性能好不好, 是沒有其它更好辦法。
再說了, 性能主要取決于索引和你的sql寫法是否用能到索引。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/80433.html
標籤:應用實例
上一篇:SQL子查詢
下一篇:如何成為一名黑客
