1. 程式人生 > >presto 判斷數據量是否大於一個比較小的值的優化

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

limit 數據 rom 下場 文件操作 測試 發現 速度慢 需要

問題來源於以下場景:

我們需要對一張數據表做導出文件操作,需要判斷如果數據量不多的時候,直接導出提供下載,如果數據量超過一定數值,則異步處理導出和下載。

這裏就引入一個問題,如果我們直接count一張表,當表比較大的時候,太過耗時:

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

需要如何優化?

我們根據自己的需求,是不需要知道數據量具體又多少,只是想知道多不多的問題。

這個時候,我們能不能限制下數據長度,假設我們要判斷超過5000數據量時異步導出。那麽我們先限定數據量為5001,然後再count,避免掃描所以數據。

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

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

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