提高查詢新增資料記錄速度的方法

2021-06-19 03:49:15 字數 2053 閱讀 9088

我們經常需要查詢新增的資料記錄,比如新開發的客戶,這就需要判斷這些客戶原來是否存在,用的比較多的是用not exists來區分新增客戶。當資料庫表記錄很多時,查詢速遞需要很長時間,長得難以忍受。

例如,我們查詢新增客戶量收,語句如下:

select b.city,b.ssxs,a.clct_bureau_org_code,b.zj_mc,a.sender_cust_code,a.sender_dept_name,

min(a.clct_date),max(a.clct_date),count(*) yjzl,sum(a.actual_total_fee) yjsr

from tb_evt_mail_clct a, (select * from sncn_zd_jg where jgfl = 'sd') b

where a.clct_bureau_org_code = b.zj_code

and a.clct_date between to_date('2013-11-1', 'yyyy-mm-dd') and

to_date('2013-11-10', 'yyyy-mm-dd')

and length(a.sender_cust_code) = 14

and not exists (select 1 from tb_evt_mail_clct t

where t.clct_date between to_date('2013-1-1', 'yyyy-mm-dd') and

to_date('2013-10-31', 'yyyy-mm-dd')

and t.sender_cust_code = a.sender_cust_code)

group by b.city,b.ssxs,a.clct_bureau_org_code,b.zj_mc,a.sender_cust_code,a.sender_dept_name

order by b.city,b.ssxs,a.clct_bureau_org_code,b.zj_mc,a.sender_cust_code,a.sender_dept_name

這個查詢需要幾個小時才能出來,如果換一種方法,採用下面的語句,只要幾十秒就可以了。

select b.city,b.ssxs,a.clct_bureau_org_code,b.zj_mc,a.sender_cust_code,a.sender_dept_name,

min(a.clct_date),max(a.clct_date),count(*) yjzl,sum(a.actual_total_fee) yjsr

from tb_evt_mail_clct a, (select * from sncn_zd_jg where jgfl = 'sd') b,

(select distinct t.sender_cust_code from tb_evt_mail_clct t

where t.clct_date between to_date('2013-1-1', 'yyyy-mm-dd') and

to_date('2013-10-31', 'yyyy-mm-dd')) c

where a.clct_bureau_org_code = b.zj_code

and a.clct_date between to_date('2013-11-1', 'yyyy-mm-dd') and

to_date('2013-11-10', 'yyyy-mm-dd')

and length(a.sender_cust_code) = 14

and a.sender_cust_code=c.sender_cust_code(+)

and c.sender_cust_code is null

group by b.city,b.ssxs,a.clct_bureau_org_code,b.zj_mc,a.sender_cust_code,a.sender_dept_name

order by b.city,b.ssxs,a.clct_bureau_org_code,b.zj_mc,a.sender_cust_code,a.sender_dept_name

mysql技巧 提高插入資料 新增記錄 的速度

問題描述 普通台式電腦,採集資料,1000萬資料量。採集回來的資料插入表中的時候很慢,每條約100毫秒。解決方法 1 加大mysql配置中的bulk insert buffer size,這個引數預設為8m bulk insert程式設計客棧 buf 2 改寫所有insert語句為insert de...

提高查詢資料速度

在實際專案中,通過設計表架構時,設計系統結構時,查詢資料時綜合提高查詢資料效率 1.適當冗餘 資料庫在設計時遵守三正規化,同時業務資料 對資料的操作,比如資料審核,對某人評分等 和基礎資料 比如資料詳情,使用者描述等 要分開儲存,放在不同表中。在設計資料庫時,三正規化能夠最大限度的節省 資料庫儲存所...

提高查詢速度方法總結

這個帖子主要總結提高查詢速度的方法,涉及到減少連線資料庫次數 建立索引 優化語句等方面。關於索引,推薦 的這篇文章 改善sql語句的效率 資料量很大怎樣加快索檢速度 索引建立方法的區別 頻繁插入刪除資料需要更新索引 測試了一下sql server 2005 全文檢索 其他關於效率的高頻問題 判斷乙個...