數(shù)據(jù)庫設計規(guī)范和設計工具_第1頁
數(shù)據(jù)庫設計規(guī)范和設計工具_第2頁
數(shù)據(jù)庫設計規(guī)范和設計工具_第3頁
數(shù)據(jù)庫設計規(guī)范和設計工具_第4頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、數(shù)據(jù)庫設計規(guī)范和設計工具Mysql設計、使用及數(shù)據(jù)字典工具規(guī)范化設計規(guī)范行業(yè)規(guī)范3大范式第一范式(1NF )無重復的列-一張表不能夠有相同的字段,這是所有范式的基礎第二范式(2NF )屬性完全依賴于主鍵 消除部分子函數(shù)依賴 -一張表必須要有唯一標 示第三范式(3NF )屬性不依賴于其它非主屬性消除傳遞依賴反范式設計(冗余吉構設計)-提升性能的手段從數(shù)據(jù)庫的設計角度遵循范式?jīng)]有什么問題,但是在實際的項目設計中會出現(xiàn)很大的問題, 需要額外查詢更多字表。反范式設計的目的:用空間來換取時間,把數(shù)據(jù)冗余在多個表中,當查詢時可以減少或者是避免表之間的關聯(lián)。數(shù)據(jù)冗余可以帶來很好的讀取性能,比如NOSQL模型

2、大量使用反范式設計。http:/blog.csd n.n et/zha ngmi nemail/article/details/56834253 n/archive/2010/02/16/1668803.html nyue/p/4519858.html第三方規(guī)范sharding -jdbc Sql 書寫規(guī)范分片鍵必須放在where條件第一位(有可能是新版本bug );查詢分片必須攜帶分片鍵,例如分片鍵是CREATE_DATE ,分片前是 SELECT ID FROM TABLE WHERE ID=?,分片后查詢需要 SELECT ID FROM TABLE WHERE CREATE_DATE=

3、? AND ID=? 不攜帶分片鍵仍然可以獲得正確結果,但是會進行全表查詢,性能低下;sharding -jdbc功能及限制http:/da ngda ngdotcom.github.io/shard in g-jdbc/01-start/features/http:/da ngda ngdotcom.github.io/shard in g-jdbc/01-start/limitati ons/http:/da ngda ngdotcom.github.io/shard in g-jdbc/01-start/sql-supported/我們的規(guī)范說明:本規(guī)范適用于新的設計,已存在的歷史設計暫

4、不做調(diào)整。本規(guī)范適用于wdzjoltp事務處理型應用,不適用于olap分析型應用。DB設計ER圖創(chuàng)建和維護ER圖和數(shù)據(jù)字典設計ER圖有助于思考實體與實體關系,ER圖能明確表達實體關系(1:1 , 1:N , M:N)在DB設計階段要考慮業(yè)務場景、及相應的查詢語句和索引創(chuàng)建和維護數(shù)據(jù)字典:必須含有表定義說明,字段含義說明字段枚舉值和含義需要完整羅列,填寫到 comment中分庫分表設計 設計階段要考慮業(yè)務的數(shù)據(jù)量,進行擴展性、hash算法設計,分片技術選型設計事務型應用跟錢有關的應用必須使用事務需要考慮鎖的設計選擇innodb樂觀鎖、行鎖、避免死鎖,跨DB事務最終一致性善用冗余設計 如評論量、瀏

5、覽量、? 表定義表名命名統(tǒng)一小寫、有意義的名字前綴:表名不加前綴(不同業(yè)務應該分開存儲到不同的庫中,如果實際中單個庫涉及到多個業(yè)務,使用業(yè)務類型作為前綴,如hongbao_紅包業(yè)務的表,”openplat_開放平臺業(yè)務的表)、索引idx_、視圖前綴v_、存儲過程前綴sp_、觸發(fā)器前綴tr_;表定義必須含有comment說明注釋;表定義 必須有明確的 字符集UTF-8 ;表定義 必須有明確的存儲引擎(MylSAM、InnoDB等);必須有明確的主鍵字段定義、約束定義、外鍵定義? 字段定義字段命名 統(tǒng)一小寫、用有意義的英文或拼音命名不允許非null字段,確定default取值;必須有含義說明、完整

6、的字段枚舉值和含義在comment說明注釋;必須有明確的 字符集UTF -8 ;? 類型選擇能使用字符串類型(string )就不用文本類型(text)能使用數(shù)值型(int)的就不用字符串類型(string) int(10)-不能限定長度 能使用時間類型(date,time,datetime)的就不用字符串類型能使用小值類型(tinyint,smallint,mediumint,int,bigint)的就不用大值類型(tin yi nt,smalli nt,mediumi nt,i nt,bigi nt)善用數(shù)值類型,unsigned 、decimal用于精度要求非常高的類型,如decimal

7、(12,2)善用二進制類型binary慎用timestamp、存儲過程、觸發(fā)器、like、正則、? 避免復雜的SQL禁止用子查詢0 表連接最多兩層o分頁計數(shù)count (子查詢-只需要where部分)o 禁止使用mysql函數(shù)o 性能不佳的情況將join拆分為多個單表查詢后臺新聞分頁查詢 -SELECT REPLYCOUNT , TYPE NAME, SHORT LINK, TYPE ID, NEWS ID, NEWS IDX, RESOURCE FROM, DISPLAY FLG, TOP FLG, PUBLISH DATE, TITLE, AUTHOR, SUMMARY, ORIGINAL

8、 FLG, WDZJ ONLY, SUBJECT TYPE, HITS, PIC URL, OUT HTML FILE URL, VERIFY FLG, VERIFY USER NAME, VERIFY USER ID, VERIFY DATE, KEYWORDS, DESCRIPTION, STAYLONG, SEO TITLE, INSUSER NAME, WDZJ USER LEVEL LABEL FROM (SELECT T.REPLY COUNT AS REPLYCOUNT, T1.TYPE NAME, T1.SHORT LINK, T.TYPE ID, T.NEWS ID, T.N

9、EWS IDX,T.RESOURCE FROM, T.DISPLAY FLG, T.TOPFLG, T.PUBLISH DATE, T.TITLE,T.SHORT TITLE, T.AUTHOR, T.SUMMARY , T.ORIGINAL FLG, T.WDZJ ONLY, T.SUBJECT TYPE, T.HITS, T.RECOMMEND, T.PICURL, T.OUTHTML FILE URL, T.VERIFY FLG, T.VERIFY USER NAME, T.VERIFY USER ID, T.VERIFY DATE, T.KEYWORDS, T.DESCRIPTION,

10、 T.STAY LONG, T.SEO TITLE, TNS USER NAME, T.WDZJ USER LEVEL LABEL FROM WDZJ NEWS TYPE T1, WDZJ NEWS T WHERE T.TYPE ID = T1.TYPE ID AND T.APP NEWS FLG = O AND T.NEWS FLG = O AND T.TYPE ID = 47 AND ( T1. LEVEL = 0,22,47 OR T1. LEVEL LIKE 0,22,47,% ) AA ORDER BY AA.NEWS IDX DESC, AA.PUBLISH_DATE DESCse

11、lect title from WDZJ NEWS where type id regexp A4$; #查詢類型 id 為 4 的新聞? 慎用全表掃描檔案信批報告 取數(shù)沒有分頁,現(xiàn)在是取出所有數(shù)據(jù)在內(nèi)存分頁 -取合適大小的分頁數(shù) 量(全量靜態(tài)化 合適大小1000條,常規(guī)業(yè)務應該按照實際恩也大小查詢?nèi)?0條)? 善用預處理查詢,禁用拼sql方式規(guī)避sql注入、sql語句緩存提升性能? SQL性能查詢計劃分析explain慢查詢分析 mysql記錄慢查詢(運維周期提供慢查詢記錄郵件,每2周解決topIO的慢查詢),應用記錄慢查詢索引使用? 索引使用生產(chǎn)環(huán)境db更新運維更新L不符合以下規(guī)范的打回修改? 含有null字段;?沒有default value缺省取值;?表定乂無comment說明注釋;? 表定義缺少明確的字符

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論