亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                Oracle之SQL基礎篇

                建表的幾條原則

              1. 數(shù)據(jù)量是隨著時間持續(xù)增加(像訂單類表),并且運行一年后,表記錄數(shù)超過2000萬條,則需要考慮表分區(qū)。
              2. 如果表數(shù)據(jù)基本上是靜態(tài)的(像用戶信息表),一般不考慮分區(qū)。如果記錄數(shù)接近億條,則可以考慮用HASH分區(qū)。
                • 表命名規(guī)范
              3. 表名只能使用字母、數(shù)字和下劃線,字母都小寫。
              4. 數(shù)據(jù)庫里若存在多個用戶,則以用戶名簡寫開頭,比如用戶庫的表以USR_開頭,訂單庫的表以ORD_開頭;若只有一個用戶,則以t(表)或v(視圖)開頭。
              5. 臨時表以tmp_開頭;備份表以bak_開頭。
              6. 表的字段數(shù)量不超過30個,在非必要的情況下不要使用clob等大字段。一張表里所有字段的總長度盡量小,絕對不要超過8000(數(shù)據(jù)塊大小就是8K)。
              7. 不同表里相同意義的字段,取名一樣。列如A表的更新時間字段取名update_time,那B表就不要再取名modify_time。
              8. 選擇字段類型的時候,能用number就不要用varchar2。做查詢的時候,同等條件的number效率比varcha2高。
              9. 值為枚舉型值的字段,用number(1)或者char(1);如果有超過10個以上的枚舉值,用char(2)。多個表里該類字段的值定義要一致。如a表status=0表示正常,則b表也應一樣定義。這里可以約定一下:用char做類型時,值為A、B、C這樣的字母類型;用number做類型時,值為0-9,這樣方便區(qū)分。
              10. 字段盡量設置為not null,或者設置默認值。
                • 備注
              11. 表和字段,都需要有comment,尤其是枚舉型值字段。
              12. 索引

                • 與mysql索引區(qū)別
              13. 在mysql中,每個表都會有一個id字段做主鍵,也就是聚簇索引,其它的輔助索引都要通過聚簇索引來查詢。
              14. 在oracle中,所有的索引都是通過rowid直接查詢的,不存在“二次查詢”,所有如果該id字段不與其他表做管理,則在表設計時不需要該字段。
                • 指定表空間
              15. 將表數(shù)據(jù)和索引數(shù)據(jù)分開存儲。建索引時明確指定表空間。
                • 數(shù)量
              16. 索引數(shù)量不宜過多,一般情況下4個以內(nèi);索引太多會影響記錄的插入。
                • 復合索引
              17. 個人認為為了限制記錄的唯一性時,可以建唯一索引;否則如果幾個字段均有可能作為查詢條件時,可以分成多個索引。
              18. 復合索引字段的先后順序很重要,第一個字段必須是查詢時使用最頻繁的,否則有可能用不到索引。舉個不恰當?shù)睦樱河脩粜畔⒈砝镉凶C件類型(cert_type)和證件號碼(cert_no),建唯一索引的時候,索引字段順序肯定是需要cert_no,cert_type,而不是cert_type, cert_no。因為查詢的時候,很有可能只是用了cert_no,而沒用到cert_type。我說“不恰當”,是因為oracle的CBO比較厲害,在使用cert_type,cert_no作為復合索引的時候,oracle會分析后以跳躍索引處理,仍然能用到索引。
              19. SQL基本規(guī)范

                • 日期類型字段用法

                錯誤用法:to_char(create_time)>’20220101’

                正確用法:create_time>to_date(‘20220101’,’yyyymmdd’)+0.999

                說明:create_time為date類型,如果create_time字段有索引,加了函數(shù)就會用不到索引。

                • 寫查詢條件時,字段類型必須一致

                比如,status為char(1),就不要寫成status=1,而是status=’1’。否則后續(xù)若status字典值擴展了,用了字母,sql就會報錯。

                • 索引列字段不用函數(shù),查詢時要盡可能將函數(shù)操作移至等號右邊。
                • 盡量避免使用order by和group by排序操作,大量的排序操作影響性能。如必須使用排序操作,盡量用在有索引的列上。
                • 數(shù)據(jù)清理時的注意點:
              20. 做delete或update數(shù)據(jù)時,首先要select count(*)一下,計算一下受影響的記錄數(shù)。
              21. 如果受影響記錄數(shù)是百萬級的,或者查詢條件是全表掃描的,那務必在查詢條件增加個rownum<=10000,一次影響1萬條。
              22. 舉例1:(刪除500萬行記錄)
              23. declare

                i integer:=500;

                begin

                while i>0 loop

                delete from oper_log t where t.create_time<to_date('20220228','yyyymmdd') and rownum<=10000;

                commit;

                i := i-1;

                end loop;

                end;

              24. 舉例2:(按天清理數(shù)據(jù)到備份表)
              25. declare

                i integer:=200;

                mindate varchar2(8) :=’20211001′;

                maxdate varchar2(8) :=’20211231′;

                currdate varchar2(8) := mindate;

                begin

                while currdate <= maxdate loop

                insert into bak_oper_log

                select * from oper_log t where t.create_time<to_date(currdate,'yyyymmdd');

                delete from oper_log t where t.create_time<to_date(currdate,'yyyymmdd');

                commit;

                currdate := to_char(to_date(currdate,’yyyymmdd’)+1,’yyyymmdd’);

                end loop;

                end;

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月21日 18:16
                下一篇 2022年6月21日 18:16

                相關推薦

                • 客服的崗位職責怎么寫(客服工作內(nèi)容及職責)

                  各位小伙伴們大家周一好,又到了每周一給大家分享干貨內(nèi)容的時候啦~ 本期來跟大家分享一下客服工作管理流程以及客服崗位里面的每項職能崗位的核心細則,也是干貨滿滿推薦收藏~ 一.補償流程…

                  2022年11月25日
                • 什么是推廣cpa一篇文章帶你看懂CPA推廣渠道

                  CPA渠道 CPA指的是按照指定的行為結(jié)算,可以是搜索,可以是注冊,可以是激活,可以是搜索下載激活,可以是綁卡,實名認證,可以是付費,可以是瀏覽等等。甲乙雙方可以根據(jù)自己的情況來定…

                  2022年11月25日
                • 抖音直播帶貨有哪些方法技巧(抖音直播帶貨有哪些痛點)

                  如今抖音這個短視頻的變現(xiàn)能力越來越突顯了,尤其是在平臺上開通直播,更具有超強的帶貨屬性,已經(jīng)有越來越多的普通人加入到其中了。不過直播帶貨雖然很火,但是也不是每個人都能做好的,那么在…

                  2022年11月24日
                • 淘寶直播開通后帶貨鏈接怎么做(淘寶直播需要開通淘寶店鋪嗎)

                  直播帶貨無論是對于商家來說還是主播收益都是非常可觀的,所以不少平臺都有直播帶貨功能,一些小伙伴也想加入淘寶直播,那么淘寶直播開通后帶貨鏈接怎么做?下面小編為大家?guī)硖詫氈辈ラ_通后帶…

                  2022年11月24日
                • 明查|美國新冠后遺癥患者中有16%癥狀嚴重以致無法工作?

                  點擊進入澎湃新聞全球事實核查平臺 速覽 – 網(wǎng)傳數(shù)據(jù)比例無權威信源佐證,該比例有可能是結(jié)合了美國疾病防控中心和布魯金斯學會的數(shù)據(jù)得出,但這兩個機構的調(diào)研目的和樣本都不同…

                  2022年11月24日
                • 小紅書入駐條件及費用(小紅書開店)

                  小紅書喊你回家開店! 有不少用戶都發(fā)現(xiàn),最近在逛小紅書的時候,筆記上面多出了一個圖片標簽,點進入之后便可進入下單頁面,還可以通過商品頁面找到相關店鋪,大大縮短了交易路徑。 “很方便…

                  2022年11月23日
                • 快手限流多久能解除(快手限流什么意思)

                  我相信很多人都看中了快手平臺的商機,都爭先恐后地想要搶占機會,可一些人剛剛作出一點成績,就被降權了,自己也不知道什么原因。所以今天就來聊聊快手賬號降權操作分享,趕快來看看避免違規(guī)!…

                  2022年11月23日
                • Win11 22H2再出新問題Bug:無法彈出USB設備

                  作為Windows 11的首次大更新,在Win11 22H2發(fā)布后并沒有帶來預想的場景,各種問題頻現(xiàn)成為了一種常態(tài)。 近日有消息稱,Win11 22H2存在一個占用沖突Bug,當用…

                  2022年11月22日
                • 想學美工從哪里學起(淘寶美工如何自學)

                  其實學習淘寶美工這件事情,不并像大家想的那么艱難,萬事開頭難,只要我們邁出第一步,并且在以后的每一步都踏踏實實、認認真真的去做,那么學習淘寶美工并不是一件如登天一樣的難事。如果說我…

                  2022年11月22日
                • 重慶高風險區(qū)一般多長時間解除(重慶成都是高風險區(qū)嗎)

                  重慶這幾天的疫情新增情況也是比較嚴重的,大家對近期的重慶疫情防控措施也都十分關注,據(jù)悉目前重慶還存在不少的疫情高風險地區(qū)。那么,重慶高風險區(qū)一般多長時間解除?對于高風險地區(qū)解封時間…

                  2022年11月21日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息