• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            聚集索引和非聚集索引的區(qū)別

            轉(zhuǎn)載自:http://www.cnblogs.com/flashicp/archive/2007/05/08/739245.html


            聚集索引非聚集索引的區(qū)別:
                   漢語字典的正文本身就是一個(gè)聚集索引。比如,我們要查“安”字,就會(huì)很自然地翻開字典的前幾頁,因?yàn)?#8220;安”的拼音是“an”,而按照拼音排序漢字的字典是以英文字母“a”開頭并以“z”結(jié)尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”開頭的部分仍然找不到這個(gè)字,那么就說明您的字典中沒有這個(gè)字;同樣的,如果查“張”字,那您也會(huì)將您的字典翻到最后部分,因?yàn)?#8220;張”的拼音是“zhang”。也就是說,字典的正文部分本身就是一個(gè)目錄,您不需要再去查其他目錄來找到您需要找的內(nèi)容。正文內(nèi)容本身就是一種按照一定規(guī)則排列的目錄稱為“聚集索引”。
                如果您認(rèn)識某個(gè)字,您可以快速地從自動(dòng)中查到這個(gè)字。但您也可能會(huì)遇到您不認(rèn)識的字,不知道它的發(fā)音,這時(shí)候,您就不能按照剛才的方法找到您要查的字,而需要去根據(jù)“偏旁部首”查到您要找的字,然后根據(jù)這個(gè)字后的頁碼直接翻到某頁來找到您要找的字。但您結(jié)合“部首目錄”和“檢字表”而查到的字的排序并不是真正的正文的排序方法,比如您查“張”字,我們可以看到在查部首之后的檢字表中“張”的頁碼是672頁,檢字表中“張”的上面是“馳”字,但頁碼卻是63頁,“張”的下面是“弩”字,頁面是390頁。很顯然,這些字并不是真正的分別位于“張”字的上下方,現(xiàn)在您看到的連續(xù)的“馳、張、弩”三字實(shí)際上就是他們在非聚集索引中的排序,是字典正文中的字在非聚集索引中的映射。我們可以通過這種方式來找到您所需要的字,但它需要兩個(gè)過程,先找到目錄中的結(jié)果,然后再翻到您所需要的頁碼。

            我們把這種目錄純粹是目錄,正文純粹是正文的排序方式稱為“非聚集索引”。

            通過以上例子,我們可以理解到什么是“聚集索引”和“非聚集索引”。

            進(jìn)一步引申一下,我們可以很容易的理解:每個(gè)表只能有一個(gè)聚集索引,因?yàn)槟夸浿荒馨凑找环N方法進(jìn)行排序。
            得出查詢速度的方法是:在各個(gè)select語句前加:
            declare @d datetime
            set @d=getdate()
            并在select語句后加:
            select [語句執(zhí)行花費(fèi)時(shí)間(毫秒)]=datediff(ms,@d,getdate())

            1、用聚合索引比用不是聚合索引的主鍵速度快;
            2、用聚合索引比用一般的主鍵作order by時(shí)速度快,特別是在小數(shù)據(jù)量情況下。
                  事實(shí)上,如果數(shù)據(jù)量很小的話,用聚集索引作為排序列要比使用非聚集索引速度快得明顯的多;而數(shù)據(jù)量如果很大的話,如10萬以上,則二者的速度差別不明顯。
            3、使用聚合索引內(nèi)的時(shí)間段,搜索時(shí)間會(huì)按數(shù)據(jù)占整個(gè)數(shù)據(jù)表的百分比成比例減少,而無論聚合索引使用了多少個(gè);
            4 、日期列不會(huì)因?yàn)橛蟹置氲妮斎攵鴾p慢查詢速度。

            從publish 表中取出第 n 條到第 m 條的記錄: 
            SELECT TOP m-n+1 * 
            FROM publish 
            WHERE (id NOT IN 
                (
            SELECT TOP n-1 id 
                 
            FROM publish)) 
            id 為publish 表的關(guān)鍵字 

            只所以把“查詢優(yōu)化”和“分頁算法”這兩個(gè)聯(lián)系不是很大的論題放在一起,就是因?yàn)槎叨夹枰粋€(gè)非常重要的東西――聚集索引。

            在前面的討論中我們已經(jīng)提到了,聚集索引有兩個(gè)最大的優(yōu)勢:
            1、以最快的速度縮小查詢范圍;
            2、以最快的速度進(jìn)行字段排序。

            第1條多用在查詢優(yōu)化時(shí),而第2條多用在進(jìn)行分頁時(shí)的數(shù)據(jù)排序。
                  而聚集索引在每個(gè)表內(nèi)又只能建立一個(gè),這使得聚集索引顯得更加的重要。聚集索引的挑選可以說是實(shí)現(xiàn)“查詢優(yōu)化”和“高效分頁”的最關(guān)鍵因素。
                  但要既使聚集索引列既符合查詢列的需要,又符合排序列的需要,這通常是一個(gè)矛盾。

            聚集索引是如此的重要和珍貴,所以一定要將聚集索引建立在:
            1、您最頻繁使用的、用以縮小查詢范圍的字段上;
            2、您最頻繁使用的、需要排序的字段上。

            posted on 2011-03-31 16:26 楊粼波 閱讀(637) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            中文字幕日本人妻久久久免费| 久久久久久综合网天天| 日本精品久久久中文字幕| 精品国产青草久久久久福利| 亚洲国产成人久久一区久久| 久久精品亚洲中文字幕无码麻豆| 一本大道加勒比久久综合| 综合久久精品色| 99久久成人18免费网站| 无码AV波多野结衣久久| 久久精品亚洲乱码伦伦中文| 久久久久久夜精品精品免费啦| 亚洲第一永久AV网站久久精品男人的天堂AV | 久久久久人妻精品一区| 久久九九亚洲精品| 亚洲AV无码成人网站久久精品大| 久久久久成人精品无码中文字幕| 久久久久久国产精品无码下载| 国产午夜福利精品久久2021| AV无码久久久久不卡蜜桃| 久久精品综合一区二区三区| 久久免费高清视频| 99久久精品日本一区二区免费| 99久久综合国产精品免费| 久久这里有精品视频| 亚洲国产天堂久久综合网站| 久久丫精品国产亚洲av不卡 | 亚洲日本va午夜中文字幕久久| 亚洲欧美精品伊人久久| 久久精品国产亚洲欧美| 国产亚洲精品美女久久久| 亚洲国产另类久久久精品小说| 中文字幕无码久久精品青草| 青春久久| 日本WV一本一道久久香蕉| 精品久久久久久久国产潘金莲| 久久久久亚洲精品男人的天堂| 久久精品国产亚洲精品| 久久亚洲AV永久无码精品| 少妇久久久久久被弄到高潮| 无码乱码观看精品久久|