Mysql邏輯設(shè)計與物理設(shè)計

一煞躬、邏輯設(shè)計

1.范式設(shè)計

(1)數(shù)據(jù)范式設(shè)計一

  • 數(shù)據(jù)庫表中的所有字段都只具有單一屬性
  • 單一屬性的列是由基本的數(shù)據(jù)類型所構(gòu)成
  • 表是簡單的二維表
    如:

錯誤的范式
字段name-age不是單一屬性

id name-age
1 xiaoming-18

正確的范式

id name age
1 xiaoming 18

(2)數(shù)據(jù)范式設(shè)計二

  • 表中只存在一個業(yè)務(wù)逐漸,而不能存在非主鍵列只對部分主鍵的依賴關(guān)系。
    錯誤范式:產(chǎn)品與訂單的ID沒有直接的關(guān)聯(lián)關(guān)系
    產(chǎn)品表
id name
1 游戲機(jī)
2 手機(jī)

訂單表

id address prd_id
1 北京 1
2 上海 1

正確范式:
產(chǎn)品表

id name
1 游戲機(jī)
2 手機(jī)

訂單表

id address
1 北京
2 上海

訂單中間表

id order_id prd_id
1 1 1
2 2 1

(3)數(shù)據(jù)范式設(shè)計三

  • 非主鍵列不能依賴其他表的非主鍵列。
    錯誤范式:
    訂單與客戶姓名關(guān)聯(lián)
    訂單與客戶編號關(guān)聯(lián)
    客戶姓名和客戶編號關(guān)聯(lián)季率。
    不應(yīng)該將客戶編號和客戶姓名存放在訂單中漾稀,如果修改用戶表中的姓名和編號修改
    則需要對訂單中的客戶編號和姓名進(jìn)行修改。
id address 客戶姓名 客戶編號
1 北京 小明 bj123
2 上海 如花 sh123

2.反范式設(shè)計

  • 反范化設(shè)計為了提高范式化導(dǎo)致性能和讀取的效率問題攀唯,從而適當(dāng)?shù)膶?shù)據(jù)范式設(shè)計進(jìn)行違反。
  • 通過少量的冗余數(shù)據(jù)渴丸,提高讀取效率和性能上的問題侯嘀,這種方式就是空間換時間。

3.范式化與反范式化的優(yōu)缺點

范式設(shè)計

優(yōu)點:

  • 盡可能減少數(shù)據(jù)的冗余
  • 范式化比反范式化的更新操作更快
  • 范式化的表比反范式化的表更小谱轨。
    缺點:
  • 對于表的查詢需要對多個表進(jìn)行關(guān)聯(lián)
  • 更難進(jìn)行索引優(yōu)化

反范式設(shè)計

優(yōu)點:

  • 減少表的關(guān)聯(lián)
  • 可以更好的進(jìn)行索引的優(yōu)化
    缺點:
  • 存在數(shù)據(jù)冗余和冗余數(shù)據(jù)的維護(hù)
  • 多數(shù)據(jù)的修改需更多的成本去處理

二戒幔、物理設(shè)計

(1)物理設(shè)計的過程

  • 定義數(shù)據(jù)、表和字段的命名規(guī)范
  • 選擇合適的存儲引擎
  • 字段選擇適合的數(shù)據(jù)類型
  • 根據(jù)業(yè)務(wù)設(shè)計合理表和表之間的關(guān)聯(lián)關(guān)系
  • 建立數(shù)據(jù)庫結(jié)構(gòu)

(2)命名規(guī)范

  • 數(shù)據(jù)庫土童、 表诗茎、字段必須遵循可讀性原則。
  • 數(shù)據(jù)庫献汗、 表敢订、字段必須遵循表意性原則,表的名字能夠描述表的功能罢吃、模塊等楚午。
  • 數(shù)據(jù)庫、 表尿招、字段必須遵循長名原則矾柜,盡可能的少用縮寫的名字。
  • 數(shù)據(jù)庫泊业、 表把沼、字段應(yīng)使用英文或者拼音的專有名詞。不要使用拼音吁伺。

(3)存儲引擎的選擇

對比項 MyISAM InnoDB
主外鍵 不支持 支持
事務(wù) 不支持 支持
行表鎖 表鎖饮睬,不適合高并發(fā)操作 行鎖,適合高并發(fā)操作
緩存 緩存索引篮奄,不緩存查詢的數(shù)據(jù) 不僅緩存索引捆愁,還會緩存查詢數(shù)據(jù),對內(nèi)存要求較高窟却,而且內(nèi)存的大小會對性能造成影響
表空間 小昼丑,因為MyISAM會壓縮
關(guān)注點 性能 事務(wù)

表級鎖:開銷小,加鎖快夸赫;不會出現(xiàn)死鎖菩帝;鎖定粒度大,發(fā)生鎖沖突的概率最高,并發(fā)度最低。
行級鎖:開銷大呼奢,加鎖慢宜雀;會出現(xiàn)死鎖;鎖定粒度最小握础,發(fā)生鎖沖突的概率最低,并發(fā)度也最高辐董。
頁面鎖:開銷和加鎖時間界于表鎖和行鎖之間;會出現(xiàn)死鎖禀综;鎖定粒度界于表鎖和行鎖之間简烘,并發(fā)度一般。
僅從鎖的角度來說:
表級鎖更適合于以查詢?yōu)橹鞫希挥猩倭堪此饕龡l件更新數(shù)據(jù)的應(yīng)用孤澎。
行級鎖則更適合于有大量按索引條件并發(fā)更新少量不同數(shù)據(jù),同時又有并發(fā)查詢的應(yīng)用依鸥,如一些在線事務(wù)處理系統(tǒng)亥至。

(4)數(shù)據(jù)類型的選擇

  • 優(yōu)先考慮使用數(shù)字類型
  • 其次日期和時間類型
  • 最后字符串類型
  • 對于相同級別的數(shù)據(jù)類型,優(yōu)先考慮使用占用空間較少的數(shù)據(jù)類型贱迟。
  • 對精度有要求的時候,選擇精度高的數(shù)據(jù)類型絮供。 int<float<double<decimal.

datetime 與timestamp 都是日期類型衣吠,datetime與時區(qū)無關(guān),而timestamp與時區(qū)有關(guān)壤靶。timestamp本質(zhì)是使用int進(jìn)行存儲缚俏。所以效率會比datetime高。但是要考慮時區(qū)的問題贮乳。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忧换,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子向拆,更是在濱河造成了極大的恐慌亚茬,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浓恳,死亡現(xiàn)場離奇詭異刹缝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)颈将,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門梢夯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人晴圾,你說我怎么就攤上這事颂砸。” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵人乓,是天一觀的道長梗醇。 經(jīng)常有香客問我,道長撒蟀,這世上最難降的妖魔是什么叙谨? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮保屯,結(jié)果婚禮上手负,老公的妹妹穿的比我還像新娘。我一直安慰自己姑尺,他們只是感情好竟终,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著切蟋,像睡著了一般统捶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柄粹,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天喘鸟,我揣著相機(jī)與錄音,去河邊找鬼驻右。 笑死什黑,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的堪夭。 我是一名探鬼主播愕把,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼森爽!你這毒婦竟也來了恨豁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤爬迟,失蹤者是張志新(化名)和其女友劉穎橘蜜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雕旨,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡扮匠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凡涩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棒搜。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖活箕,靈堂內(nèi)的尸體忽然破棺而出力麸,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布克蚂,位于F島的核電站闺鲸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏埃叭。R本人自食惡果不足惜摸恍,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赤屋。 院中可真熱鬧立镶,春花似錦、人聲如沸类早。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涩僻。三九已至缭召,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逆日,已是汗流浹背嵌巷。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留屏富,地道東北人晴竞。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像狠半,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子颤难,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 0. MySQL邏輯架構(gòu) 最上層是一些客戶端和連接服務(wù)神年,包含本地sock通信和大多數(shù)基于客戶端/服務(wù)端工具實現(xiàn)的類...
    beg4閱讀 1,026評論 0 1
  • 轉(zhuǎn) # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    呂品?閱讀 9,698評論 0 44
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常行嗤。 O...
    我想起個好名字閱讀 5,176評論 0 9
  • 數(shù)據(jù)庫開發(fā)規(guī)范1. 數(shù)據(jù)庫命名規(guī)范前綴對象前綴命名: 前綴命名一般用小寫表的前綴: 業(yè)務(wù)模塊組名前綴存儲過程前綴:...
    PowerYangSoft閱讀 2,436評論 0 8
  • 別人尊重你已日,并不是你很優(yōu)秀,而是別人很優(yōu)秀栅屏。 愛人者飘千,人恒愛之;敬人者栈雳,人恒敬之护奈。 心寬一尺,路寬一...
    范敬暉閱讀 264評論 1 1