您的位置:首頁技術文章
文章詳情頁

mysql - 這個數據庫合計用 視圖做,和直接算好存在數據庫里,到時候調用起來哪個快?

瀏覽:77日期:2022-06-21 10:26:19

問題描述

mysql - 這個數據庫合計用 視圖做,和直接算好存在數據庫里,到時候調用起來哪個快?

大家看這個表,其實主科總分,副科總分,總分 都能通過 前面的的數據算出來,

我想問問,要是 不考慮存儲空間的情況下,

是把 主科總分,副科總分,總分 在插入數據的時候,就算出來好,還是 用 VIEW 算好?

這個好的意思,是減少服務器負擔,還是搜索速度快.

問題解答

回答1:

從第三范式的角度看,主科總分、副科總分、總分這三列屬于依賴于其他列的數據,不應該作為單獨的列放到數據庫表中。

如果考慮數據讀取的壓力很大,不想在應用服務器或數據庫端再做計算,那么可以按照冗余列的方式存儲在表中。在上面所說的場景中,學生的成績錄入后修改的次數應該很少,因此冗余列的更新成本較低,屬于典型的讀多寫少的情況,因此有冗余列總體上服務器的壓力會比較低。

回答2:

看你是插入數據多,還是讀取結果多;插入數據時多時就把計算放在視圖內,讀取數據多時就把sql計算結果放在表里,但讀取的壓力遠遠低于插入吧,這個比例還是要權衡下,建議選擇放在視圖內。

国产综合久久一区二区三区