SELECT coupon,COUNT(1) recCount
FROM xx_coupon_card
GROUP BY coupon
這條SQL用了9秒,資料量3500萬
uj5u.com熱心網友回復:
建議用視圖索引試試,
-- 創建視圖索引
create view dbo.vxx_coupon_card
with schemabinding
as
select coupon,count(1) recCount
from xx_coupon_card
group by coupon
create unique clustered index ix_vxx_coupon_card_coupon on vxx_coupon_card(coupon)
-- 重試查詢
select coupon,count(1) recCount
from xx_coupon_card
group by coupon
uj5u.com熱心網友回復:
千萬級的記錄數量,使用一條陳述句,怎么優化效果也不會好,因為瓶頸不在統計運算,而在磁盤讀寫,除非你的 Where 條件只讀取很少的資料,換固態盤會好很多,要知道大資料方面的優化處理可不是簡單地優化 SQL 陳述句這么簡單。uj5u.com熱心網友回復:
要看 coupon 欄位 group by 之后有多少條記錄,記錄越多耗時越多。uj5u.com熱心網友回復:
#1版主做法相當于自動統計結果,效率最高。視圖相當于結果表,查結果表不用計算當然秒出
唯一缺點是如果增刪改特別頻繁,死鎖機率會增加。
確定這點沒問題可大膽試
uj5u.com熱心網友回復:
儲存時sort coupon?uj5u.com熱心網友回復:
就這句sql陳述句來說,沒有什么值得優化的地方了。但是這個陳述句的實際使用場景是什么呢?值得斟酌。
uj5u.com熱心網友回復:
找臺更好的服務器uj5u.com熱心網友回復:
千萬級別9秒合適了,你還要怎么樣?uj5u.com熱心網友回復:
樓2 說的對,千萬級別的資料量,性能問題在于磁盤的讀取,可以增加資料庫的快取,索引,適當的優化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/76258.html
標籤:應用實例
上一篇:關于將消費金額分為100等份
下一篇:這是什么軟體啊?
