學(xué)習(xí)筆記

          Simple is beautiful.

          導(dǎo)航

          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          統(tǒng)計(jì)

          公告

          ...

          常用鏈接

          留言簿(1)

          隨筆分類(2)

          隨筆檔案(56)

          Weblog

          搜索

          最新評論

          評論排行榜

          數(shù)據(jù)庫中的索引

          可以利用索引快速訪問數(shù)據(jù)庫表中的特定信息。索引是對數(shù)據(jù)庫表中一個(gè)或多個(gè)列(例如,table1 表的姓氏 (id) 列)的值進(jìn)行排序的結(jié)構(gòu)。如果想按特定職員的姓來查找他或她,則與在表中搜索所有的行相比,索引有助于更快地獲取信息。
          索引提供指針以指向存儲在表中指定列的數(shù)據(jù)值,然后根據(jù)指定的排序次序排列這些指針。數(shù)據(jù)庫使用索引的方式與使用書的目錄很相似:通過搜索索引找到特定的值,然后跟隨指針到達(dá)包含該值的行。
          在數(shù)據(jù)庫關(guān)系圖中,可以為選定的表創(chuàng)建、編輯或刪除索引/鍵屬性頁中的每個(gè)索引類型。當(dāng)保存附加在此索引上的表或包含此表的數(shù)據(jù)庫關(guān)系圖時(shí),索引同時(shí)被保存。
          通常情況下,只有當(dāng)經(jīng)常查詢索引列中的數(shù)據(jù)時(shí),才需要在表上創(chuàng)建索引。索引將占用磁盤空間,并且降低添加、刪除和更新行的速度。不過在多數(shù)情況下,索引所帶來的數(shù)據(jù)檢索速度的優(yōu)勢大大超過它的不足之處。然而,如果應(yīng)用程序非常頻繁地更新數(shù)據(jù),或磁盤空間有限,那么最好限制索引的數(shù)量。
          在創(chuàng)建索引前,必須確定要使用的列和要?jiǎng)?chuàng)建的索引類型。

           

          索引類型
          索引列
          可基于數(shù)據(jù)庫表中的單列或多列創(chuàng)建索引。當(dāng)某些行中的某一列具有相同的值時(shí),多列索引能區(qū)分開這些行。
          如果經(jīng)常在同時(shí)搜索兩列或多列或按兩列或多列排序時(shí),索引也很有幫助。例如,如果經(jīng)常在同一查詢中為姓和名兩列設(shè)置準(zhǔn)則,那么在這兩列上創(chuàng)建多列索引將很有意義。
          確定索引的有效性:
          檢查查詢中的 WHERE 和 JOIN 子句。在任一子句中包括的每一列都是索引可以選擇的對象。

          試驗(yàn)新的索引,檢查它對運(yùn)行查詢性能的影響。

          考慮表中已創(chuàng)建的索引數(shù)量。最好不要在一個(gè)表中創(chuàng)建大量的索引。

          檢查表中已創(chuàng)建的索引定義。最好避免包含共享列的重疊索引。

          檢查列中唯一數(shù)據(jù)值的數(shù)量,并與表中的行數(shù)進(jìn)行比較。比較的結(jié)果就是該列的可選擇性,這有助于確定該列是否適合建立索引,如果適合,確定索引的類型是什么。
          索引類型
          根據(jù)數(shù)據(jù)庫的功能,可在數(shù)據(jù)庫設(shè)計(jì)器中創(chuàng)建三種類型的索引 — 唯一索引、主鍵索引和聚集索引。

          唯一索引
          唯一索引不允許兩行具有相同的索引值。
          如果現(xiàn)有數(shù)據(jù)中存在重復(fù)的鍵值,則大多數(shù)數(shù)據(jù)庫都不允許將新創(chuàng)建的唯一索引與表一起保存。當(dāng)新數(shù)據(jù)將使表中的鍵值重復(fù)時(shí),數(shù)據(jù)庫也拒絕接受此數(shù)據(jù)。例如,如果在 employee 表中的職員姓氏 (lname) 列上創(chuàng)建了唯一索引,則所有職員不能同姓。
          主鍵索引
          數(shù)據(jù)庫表通常有一列或列組合,其值用來唯一標(biāo)識表中的每一行。該列稱為表的主鍵。
          在數(shù)據(jù)庫關(guān)系圖中為表定義一個(gè)主鍵將自動創(chuàng)建主鍵索引,主鍵索引是唯一索引的特殊類型。主鍵索引要求主鍵中的每個(gè)值是唯一的。當(dāng)在查詢中使用主鍵索引時(shí),它還允許快速訪問數(shù)據(jù)。。
          聚集索引
          在聚集索引中,表中各行的物理順序與鍵值的邏輯(索引)順序相同。表只能包含一個(gè)聚集索引。
          如果不是聚集索引,表中各行的物理順序與鍵值的邏輯順序不匹配。聚集索引比非聚集索引有更快的數(shù)據(jù)訪問速度。

          posted on 2007-06-09 01:57 Ecko 閱讀(668) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 云霄县| 临朐县| 曲沃县| 中方县| 栾城县| 永春县| 永清县| 广南县| 合肥市| 建瓯市| 临沧市| 东阳市| 麻城市| 云浮市| 唐海县| 宜春市| 鱼台县| 洞口县| 枝江市| 瑞安市| 蒙城县| 棋牌| 会宁县| 威宁| 五华县| 慈利县| 怀来县| 巧家县| 开平市| 崇仁县| 庄浪县| 永安市| 谢通门县| 尚志市| 子长县| 屏南县| 临桂县| 澄迈县| 伊宁县| 怀来县| 交口县|