數(shù)據(jù)庫(kù)性能優(yōu)化(一)_第1頁(yè)
數(shù)據(jù)庫(kù)性能優(yōu)化(一)_第2頁(yè)
數(shù)據(jù)庫(kù)性能優(yōu)化(一)_第3頁(yè)
數(shù)據(jù)庫(kù)性能優(yōu)化(一)_第4頁(yè)
數(shù)據(jù)庫(kù)性能優(yōu)化(一)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)性能優(yōu)化(一)一些數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)2010.10.25引航科技產(chǎn)品(Eric)A知識(shí)大綱: (關(guān)系型)數(shù)據(jù)庫(kù)范式概念解析 數(shù)據(jù)庫(kù)索引一、范式設(shè)計(jì)范式:英文名稱是 Normal Form,它是英國(guó)人 E.F.Codd(關(guān)系數(shù)據(jù)庫(kù)的老祖宗)在上個(gè)世紀(jì)70年代提出關(guān)系數(shù)據(jù)庫(kù)模型后總結(jié)出來(lái)的,范式是關(guān)系數(shù)據(jù)庫(kù)理論的基礎(chǔ),也是我們?cè)谠O(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)過(guò)程中所要遵循的規(guī)則和指導(dǎo)方法。目前有跡可尋的共有8種范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三個(gè)范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。 1、第一范式第一范式(1NF

2、):強(qiáng)調(diào)的是列的原子性,即列不能夠再分成其他幾列。 考慮這樣一個(gè)表:【聯(lián)系人】(姓名,性別,電話) 如果在實(shí)際場(chǎng)景中,一個(gè)聯(lián)系人有家庭電話和公司電話,那么這種表結(jié)構(gòu)設(shè)計(jì)就沒(méi)有達(dá)到 1NF。要符合 1NF 我們只需把列(電話)拆分,即:【聯(lián)系人】(姓名,性別,家庭電話,公司電話)。1NF 很好辨別,但是 2NF 和 3NF 就容易搞混淆。聯(lián)系人聯(lián)系人姓名性別電話聯(lián)系人聯(lián)系人姓名性別家庭電話公司電話2、第二范式第二范式(2NF):首先是 1NF,另外包含兩部分內(nèi)容,一是表必須有一個(gè)主鍵;二是沒(méi)有包含在主鍵中的列必須完全依賴于主鍵,而不能只依賴于主鍵的一部分。一個(gè)訂單中可以訂購(gòu)多種產(chǎn)品,所以單單一個(gè)

3、 OrderID 是不足以成為主鍵的,主鍵應(yīng)該是(OrderID,ProductID)。顯而易見(jiàn) Discount(折扣),Quantity(數(shù)量)完全依賴(取決)于主鍵(OderID,ProductID),而 UnitPrice,ProductName 只依賴于 ProductID。所以 OrderDetail 表不符合 2NF。不符合 2NF 的設(shè)計(jì)容易產(chǎn)生冗余數(shù)據(jù)。 OrderDetailOrderIDProductIDUnitPriceDiscountQuantityProductNameOrderDetailOrderIDProductIDDiscountQuantityProduc

4、tProductIDUnitPriceProductName3、第三范式第三范式(3NF):首先是 2NF,另外非主鍵列必須直接依賴于主鍵,不能存在傳遞依賴。即不能存在:非主鍵列 A 依賴于非主鍵列 B,非主鍵列 B 依賴于主鍵的情況。 一個(gè)訂單表主鍵是(OrderID)。 其中 OrderDate,CustomerID,CustomerName,CustomerAddr,CustomerCity 等非主鍵列都完全依賴于主鍵(OrderID) ,所以符合 2NF。不過(guò)問(wèn)題是 CustomerName,CustomerAddr,CustomerCity 直接依賴的是 CustomerID(非主鍵

5、列),而不是直接依賴于主鍵,它是通過(guò)傳遞才依賴于主鍵,所以不符合 3NF。 OrderOrderIDOrderDateCustomerIDCustomerNameCustomerAddrCustomerCityOrderOrderIDOrderDateCustomerIDQuantityCustomerCustomerIDCustomerNameCustomerAddrCustomerCity二、數(shù)據(jù)庫(kù)索引索引是快速搜索的關(guān)鍵。MySQL索引的建立對(duì)于MySQL的高效運(yùn)行是很重要的。索引分單列索引和組合索引。單列索引,即一個(gè)索引只包含單個(gè)列,一個(gè)表可以有多個(gè)單列索引,但這不是組合索引。組合索引

6、,即一個(gè)索包含多個(gè)列。 (1)MySQL索引類型包括: (a)普通索引 這是最基本的索引,它沒(méi)有任何限制。(b)唯一索引 與普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。 (c)主鍵索引 它是一種特殊的唯一索引,不允許有空值。 (d)組合索引 如果分別一個(gè)用戶表 在 usernname,city,age上建立單列索引,讓該表有3個(gè)單列索引,查詢時(shí)和上述的組合索引效率也會(huì)大不一樣,遠(yuǎn)遠(yuǎn)低于我們的組合索引。雖然此時(shí)有了三個(gè)索引,但MySQL只能用到其中的那個(gè)它認(rèn)為似乎是最有效率的單列索引。 建立組合索引,其實(shí)是相當(dāng)于分別建立了下面三組組合索引: usernname,city,age usernname,city usernname 為什么沒(méi)有 city,age這樣的組合索引呢?這是因?yàn)镸ySQL組合索引“最左前綴”的結(jié)果。簡(jiǎn)單的理解就是只從最左面的開(kāi)始組合。(2)建立索引的時(shí)機(jī)一般來(lái)說(shuō),在WHERE和JOIN中出現(xiàn)的列需要建立索引,但也不完全如此,因?yàn)镸ySQL只對(duì),=,BETWEEN,IN,以及某些時(shí)候的LIKE才會(huì)使用索引例如下句會(huì)使用索引: S

溫馨提示

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

評(píng)論

0/150

提交評(píng)論