presto 判斷數據量是否大於一個比較小的值的優化

問題來源於如下場景:異步

   咱們須要對一張數據表作導出文件操做,須要判斷若是數據量很少的時候,直接導出提供下載,若是數據量超過必定數值,則異步處理導出和下載。測試

 

這裏就引入一個問題,若是咱們直接count一張表,當表比較大的時候,太過耗時:大數據

select count(1) from table;// 數據量大的時候速度慢優化

須要如何優化?it

 

咱們根據本身的需求,是不須要知道數據量具體又多少,只是想知道多很少的問題。table

這個時候,咱們能不能限制下數據長度,假設咱們要判斷超過5000數據量時異步導出。那麼咱們先限定數據量爲5001,而後再count,避免掃描因此數據。select

select count(1) from (select 1 from table limit 5001);下載

測試發現,效果仍是比較不錯的。對大數據表,效果很好。im

相關文章
相關標籤/搜索