MySQL--三級(jí)模式、JOIN和范式

數(shù)據(jù)庫(kù)的三級(jí)模式:

模式:是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述装盯,是所有用戶的公共數(shù)據(jù)視圖


外模式:用戶模式坷虑,他是數(shù)據(jù)庫(kù)用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征描述,與某一應(yīng)用有關(guān)埂奈,保證數(shù)據(jù)庫(kù)安全的一個(gè)強(qiáng)有力的措施

內(nèi)模式:又稱存儲(chǔ)模式迄损,他是描述數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述

外模式/模式:保證了數(shù)據(jù)與程序的邏輯獨(dú)立性(指當(dāng)總體邏輯結(jié)構(gòu)改變,通過對(duì)映像的相應(yīng)改變保持局部邏輯結(jié)構(gòu)的不變账磺,從而能應(yīng)用程序也可以不變)

模式/內(nèi)模式:可以在內(nèi)模式改變的情況下模式保持不變芹敌,從而應(yīng)用程序也不必改變


MySQL是只支持一種JOIN算法Nested-Loop Join(嵌套循環(huán)鏈接)

1.定義

  Nested Loops也稱為嵌套迭代,它將一個(gè)聯(lián)接輸入用作外部輸入表(顯示為圖形執(zhí)行計(jì)劃中的頂端輸入)垮抗,將另一個(gè)聯(lián)接輸入用作內(nèi)部(底端)輸入表氏捞。外部循環(huán)逐行消耗外部輸入表。內(nèi)部循環(huán)為每個(gè)外部行執(zhí)行冒版,在內(nèi)部輸入表中搜索匹配行液茎。最簡(jiǎn)單的情況是,搜索時(shí)掃描整個(gè)表或索引辞嗡;這稱為單純嵌套循環(huán)聯(lián)接捆等。如果搜索時(shí)使用索引,則稱為索引嵌套循環(huán)聯(lián)接续室。如果將索引生成為查詢計(jì)劃的一部分(并在查詢完成后立即將索引破壞)栋烤,則稱為臨時(shí)索引嵌套循環(huán)聯(lián)接。偽碼表示如下:

for each row R1 in the outer table

for each row R2 in the inner table

if R1 joins with R2

return (R1, R2)

三類:

? ? 1挺狰、Simple Nested-Loop Join(要對(duì)S表進(jìn)行RN次訪問明郭,效率低下)

? ? 2、Index Nested-Loop Join(如果非驅(qū)動(dòng)表的關(guān)聯(lián)鍵是主鍵的話丰泊,這樣來說性能就會(huì)非常的高)

? ? 3薯定、Block Nested-Loop Join

? ? ? ? ? Block Nested-Loop Join對(duì)比Simple Nested-Loop Join多了一個(gè)中間處理的過程,可以將多次比較合并到一次趁耗,降低了非驅(qū)動(dòng)表的訪問頻率沉唠,在MySQL當(dāng)中,我們可以通過參數(shù)join_buffer_size來設(shè)置join buffer的值苛败,然后再進(jìn)行操作

三種范式:

第一范式:字段不可分(通俗理解即一個(gè)字段只存儲(chǔ)一項(xiàng)信息)

第二范式:又逐漸,非主鍵字段依賴主鍵(通俗理解是任意一個(gè)字段都只依賴表中的同一個(gè)字段

第三范式:非主鍵字段不能相互依賴(一張表最多只存兩層同類型信息


1NF:原子性径簿,字段不可再分(所以會(huì)存在插入時(shí)異常)

2NF:唯一性罢屈,一個(gè)表只能說明一個(gè)事物

3NF:每列都與主鍵有直接關(guān)系,不存在傳遞依賴

反三范式

有時(shí)為了提高運(yùn)行效率篇亭,提高讀性能缠捌,就必須降低范式標(biāo)準(zhǔn),適當(dāng)保留冗余數(shù)據(jù)。

降低范式就是增加字段曼月,減少了查詢時(shí)的關(guān)聯(lián)谊却,提高查詢效率,因?yàn)樵跀?shù)據(jù)庫(kù)的操作中查詢的比例要遠(yuǎn)遠(yuǎn)大于DML的比例

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哑芹,一起剝皮案震驚了整個(gè)濱河市炎辨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聪姿,老刑警劉巖碴萧,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異末购,居然都是意外死亡破喻,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門盟榴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來曹质,“玉大人,你說我怎么就攤上這事擎场∨胤保” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵顶籽,是天一觀的道長(zhǎng)玩般。 經(jīng)常有香客問我,道長(zhǎng)礼饱,這世上最難降的妖魔是什么坏为? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮镊绪,結(jié)果婚禮上匀伏,老公的妹妹穿的比我還像新娘。我一直安慰自己蝴韭,他們只是感情好够颠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著榄鉴,像睡著了一般履磨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上庆尘,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天剃诅,我揣著相機(jī)與錄音,去河邊找鬼驶忌。 笑死矛辕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播聊品,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼飞蹂,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了翻屈?” 一聲冷哼從身側(cè)響起陈哑,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎妖胀,沒想到半個(gè)月后芥颈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赚抡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年爬坑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涂臣。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盾计,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赁遗,到底是詐尸還是另有隱情署辉,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布岩四,位于F島的核電站哭尝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏剖煌。R本人自食惡果不足惜材鹦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耕姊。 院中可真熱鬧桶唐,春花似錦、人聲如沸茉兰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽规脸。三九已至坯约,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間燃辖,已是汗流浹背鬼店。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留黔龟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像氏身,于是被迫代替她去往敵國(guó)和親巍棱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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

  • MySQL技術(shù)內(nèi)幕:SQL編程 姜承堯 第1章 SQL編程 >> B是由MySQL創(chuàng)始人之一Monty分支的一個(gè)版...
    沉默劍士閱讀 2,412評(píng)論 0 3
  • 摘要:用事例和圖片簡(jiǎn)單的說明了mysql 中兩表join的算法蛋欣,主要包括Nested-Loop Join Algo...
    暖夏未眠丶閱讀 914評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理航徙,服務(wù)發(fā)現(xiàn),斷路器陷虎,智...
    卡卡羅2017閱讀 134,628評(píng)論 18 139
  • 她開車沒有聽電臺(tái)的習(xí)慣到踏,只有在沒選擇時(shí)。 偶爾想來點(diǎn)新鮮尚猿,有點(diǎn)像是玩大轉(zhuǎn)輪窝稿,這個(gè)時(shí)候按下去,下一秒跳出來的會(huì)是什么...
    幺微閱讀 204評(píng)論 0 0
  • 腳本語言,你可能更需要的是 Lua 不同的腳本語言有不同的特性凿掂,第一接觸的腳本語言伴榔,可能會(huì)影響自己對(duì)整個(gè)腳本語言的...
    ios122閱讀 6,913評(píng)論 1 10