日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

mysql中,索引,主鍵,唯一索引,聯(lián)合索引的區(qū)別

 好亂非常亂 2016-10-12
索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一個(gè)組成部分),它們包含著對(duì)數(shù)據(jù)表里所有記錄的引用指針。
普通索引(由關(guān)鍵字KEY或INDEX定義的索引)的唯一任務(wù)是加快對(duì)數(shù)據(jù)的訪問速度。


普通索引允許被索引的數(shù)據(jù)列包含重復(fù)的值。如果能確定某個(gè)數(shù)據(jù)列將只包含彼此各不相同的值,在為這個(gè)數(shù)據(jù)列創(chuàng)建索引的時(shí)候就應(yīng)該用關(guān)鍵字UNIQUE把它定義為一個(gè)唯一索引。也就是說,唯一索引可以保證數(shù)據(jù)記錄的唯一性。


主鍵,是一種特殊的唯一索引,在一張表中只能定義一個(gè)主鍵索引,主鍵用于唯一標(biāo)識(shí)一條記錄,使用關(guān)鍵字 PRIMARY KEY 來創(chuàng)建。
索引可以覆蓋多個(gè)數(shù)據(jù)列,如像INDEX(columnA, columnB)索引,這就是聯(lián)合索引。


主鍵分為復(fù)合主鍵和聯(lián)合主鍵
復(fù)合主鍵就是指你表的主鍵含有一個(gè)以上的字段組成 。
例如;
create table test 

   name varchar(19), 
   id number, 
   value varchar(10), 
   primary key (id,name) 

上面的id和name字段組合起來就是你test表的復(fù)合主鍵 (若其一為單索引字段時(shí),左邊的id才會(huì)有索引)
它的出現(xiàn)是因?yàn)槟愕膎ame字段可能會(huì)出現(xiàn)重名,所以要加上ID字段這樣就可以保證你記錄的唯一性 
一般情況下,主鍵的字段長(zhǎng)度和字段數(shù)目要越少越好 




聯(lián)合主鍵,顧名思義就是多個(gè)主鍵聯(lián)合形成一個(gè)主鍵組合,體現(xiàn)在聯(lián)合。
(主鍵原則上是唯一的,別被唯一值所困擾。) 
索引可以極大的提高數(shù)據(jù)的查詢速度,但是會(huì)降低插入、刪除、更新表的速度,因?yàn)樵趫?zhí)行這些寫操作時(shí),還要操作索引文件。


簡(jiǎn)單的例子 
主鍵A跟主鍵B組成聯(lián)合主鍵 
主鍵A跟主鍵B的數(shù)據(jù)可以完全相同(困擾吧,沒關(guān)系),聯(lián)合就在于主鍵A跟主鍵B形成的聯(lián)合主鍵是唯一的。 
下例主鍵A數(shù)據(jù)是1,主鍵B數(shù)據(jù)也是1,聯(lián)合主鍵其實(shí)是11,這個(gè)11是唯一值,絕對(duì)不充許再出現(xiàn)11這個(gè)唯一值。(這就是多對(duì)多關(guān)系) 
主鍵A數(shù)據(jù) 主鍵B數(shù)據(jù) 
1      1 
2      2 
3      3 
主鍵A與主鍵B的聯(lián)合主鍵值最多也就是 
11 
12 
13 
21 
22 
23 
31 
32 
33

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多