索引和目錄在書哪里
索引和目錄在書哪里
索引在書首頁,目錄頁在書的第二頁或者第三頁。索引是根據(jù)一定需要,把書刊中的主要內(nèi)容或各種題名摘錄下來,標(biāo)明出處,頁碼,按一定次序分條排列,以供人查閱的資料。
目錄是按次序編排以供查考的圖書或篇章的名目,圖書目錄,書刊上列出的篇章名目,大多放在正文前。
索引和目錄的作用
索引是指一類特殊的數(shù)據(jù)結(jié)構(gòu),它由索引鍵和指向數(shù)據(jù)文件中相應(yīng)記錄的記錄指針或記錄號組成。索引鍵是記錄的一個或一組數(shù)據(jù)項。索引用來提高數(shù)據(jù)查詢效率,但同時引入存儲代價和更新代價。
在關(guān)系數(shù)據(jù)庫中,索引是一種單獨的、物理的對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種存儲結(jié)構(gòu)。它是某個表中一列或若干列值的**和相應(yīng)的指向表中物理標(biāo)識這些值的數(shù)據(jù)頁的邏輯指針清單。索引的作用相當(dāng)于圖書的目錄,可以根據(jù)目錄中的頁碼快速找到所需的內(nèi)容。
書的目錄會幫助我們了解這本書講了什么,大部分還會體現(xiàn)出框架結(jié)構(gòu)以及主題思想,這對我們進(jìn)行下面的閱讀指引了方向。
什么是數(shù)據(jù)庫表的索引?
建立索引的優(yōu)缺點:為什么要創(chuàng)建索引呢? 這是因為,創(chuàng)建索引可以大大提高系統(tǒng)的性能。 **、通過創(chuàng)建**性索引,可以保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的**性。
第二、可以大大加快 數(shù)據(jù)的檢索速度,這也是創(chuàng)建索引的最主要的原因。
第三、可以加速表和表之間的連接,特別是在實現(xiàn)數(shù)據(jù)的參考完整性方面特別有意義。 第四、在使用分組和排序子句進(jìn)行數(shù)據(jù)檢索時,同樣可以顯著減少查詢中分組和排序的時間。 第五、通過使用索引,可以在查詢的過程中,使用優(yōu)化隱藏器,提高系統(tǒng)的性能。 也許會有人要問:增加索引有如此多的優(yōu)點,為什么不對表中的每一個列創(chuàng)建一個索引呢?這種想法固然有其合理性,然而也有其片面性。
雖然,索引有許多優(yōu)點, 但是,為表中的每一個列都增加索引,是非常不明智的。這是因為,增加索引也有許多不利的一個方面:**、創(chuàng)建索引和維護(hù)索引要耗費時間,這種時間隨著數(shù)據(jù)量的增加而增加。 第二、索引需要占物理空間,除了數(shù)據(jù)表占數(shù)據(jù)空間之外,每一個索引還要占一定的物理空間。
如果要建立聚簇索引,那么需要的空間就會更大。 第三、當(dāng)對表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時候,索引也要動態(tài)的維護(hù),這樣就降低了數(shù)據(jù)的維護(hù)速度。什么樣的字段適合創(chuàng)建索引:索引是建立在數(shù)據(jù)庫表中的某些列的上面。
因此,在創(chuàng)建索引的時候,應(yīng)該仔細(xì)考慮在哪些列上可以創(chuàng)建索引,在哪些列上不能創(chuàng)建索引。一般來說,應(yīng)該在這些列上創(chuàng)建索引,例如:**、在經(jīng)常需要搜索的列上,可以加快搜索的速度; 第二、百科在作為主鍵的列上,強(qiáng)制該列的**性和組織表中數(shù)據(jù)的排列結(jié)構(gòu); 第三、在經(jīng)常用在連接的列上,這些列主要是一些外鍵,可以加快連接的速度; 第四、在經(jīng)常需要根據(jù)范圍進(jìn)行搜索的列上創(chuàng)建索引,因為索引已經(jīng)排序,其指定的范圍是連續(xù)的; 第五、在經(jīng)常需要排序的列上創(chuàng)建索引,因為索引已經(jīng)排序,這樣查詢可以利用索引的排序,加快排序查詢時間; 第六、在經(jīng)常使用在WHERE子句中的列上面創(chuàng)建索引,加快條件的判斷速度。建立索引,一般按照select的where條件來建立,比如: select的條件是where f1 and f2,那么如果我們在字段f1或字段f2上簡歷索引是沒有用的,只有在字段f1和f2上同時建立索引才有用等。
什么樣的字段不適合創(chuàng)建索引:同樣,對于有些列不應(yīng)該創(chuàng)建索引。一般來說,不應(yīng)該創(chuàng)建索引的的這些列具有下列特點:**,對于那些在查詢中很少使用或者參考的列不應(yīng)該創(chuàng)建索引。這是因為,既然這些列很少使用到,因此有索引或者無索引,并不能提高查詢速度。相反,由于增加了索引,反而降低了系統(tǒng)的維護(hù)速度和增大了空間需求。
第二,對于那些只有很少數(shù)據(jù)值的列也不應(yīng)該增加索引。這是因為,由于這些列的取值很少,例如人事表的性別列,在查詢的結(jié)果中,結(jié)果集的數(shù)據(jù)行占了表中數(shù)據(jù)行的很大比 例,即需要在表中搜索的數(shù)據(jù)行的比例很大。增加索引,并不能明顯加快檢索速度。 第三,對于那些定義為text, p_w_picpath和bit數(shù)據(jù)類型的列不應(yīng)該增加索引。
這是因為,這些列的數(shù)據(jù)量要么相當(dāng)大,要么取值很少。 第四,當(dāng)修改性能遠(yuǎn)遠(yuǎn)大于檢索性能時,不應(yīng)該創(chuàng)建索 引。這是因為,修改性能和檢索性能是互相矛盾的。當(dāng)增加索引時,會提高檢索性能,但是會降低修改性能。
當(dāng)減少索引時,會提高修改性能,降低檢索性能。因此,當(dāng)修改性能遠(yuǎn)遠(yuǎn)大于檢索性能時,不應(yīng)該創(chuàng)建索引。
如何查詢數(shù)據(jù)庫或者表中的索引
oracle對于數(shù)據(jù)庫中的表信息,存儲在系統(tǒng)表中。查詢已創(chuàng)建好的表索引,可通過相應(yīng)的sql語句到相應(yīng)的表中進(jìn)行快捷的查詢:1.根據(jù)表名,查詢一張表的索引select*fromuser_indexeswheretable_name=upper(\’表名\’);2.根據(jù)索引號,查詢表索引字段select*fromuser_ind_columnswhereindex_name=(\’索引名\’);3.根據(jù)索引名,查詢創(chuàng)建索引的語句selectdbms_metadata.get_ddl(\’index\’,\’索引名\’,[\’用戶名\’])fromdual;–[\’用戶名\’]可省,默認(rèn)為登錄用戶ps:dbms_metadata.get_ddl還可以得到建表語句,如:selectdbms_metadata.get_ddl(\’table\’,\’表名\’,[\’用戶名\’])fromdual;//取單個表的建表語句,[\’用戶名\’]可不輸入,默認(rèn)為登錄用戶selectdbms_metadata.get_ddl(\’table\’,u.table_name)fromuser_tablesu;//取用戶下所有表的建表語句當(dāng)然,也可以用pl/sqldeveloper工具來查看相關(guān)的表的各種信息。
數(shù)據(jù)庫索引
1,什么是索引 索引是關(guān)系數(shù)據(jù)庫中對數(shù)據(jù)庫表中一列或所列數(shù)據(jù)進(jìn)行排序的存儲結(jié)構(gòu)。好比是字典的目錄 2,索引的應(yīng)用場景 數(shù)據(jù)庫中存放大量的數(shù)據(jù)時,直行sql語句將花費較大時間,時間過長將影響用戶體驗,并且我們應(yīng)用中大多數(shù)接口都具有查詢功能,**都將落在數(shù)據(jù)庫查詢中,所以需要提高數(shù)據(jù)庫查詢的速度就需要使用到索引,就像通過目錄查字典就會很快查到結(jié)果 3,數(shù)據(jù)庫查詢原理 通過IO讀寫在磁盤中一塊一塊查找目標(biāo)數(shù)據(jù),該過程稱為全表掃描 4,IO讀寫是在磁盤中一條一條查,索引也是如此,為什么索引快 因為索引采用了不同的數(shù)據(jù)結(jié)構(gòu)(B+樹),該數(shù)據(jù)結(jié)構(gòu)在查詢上有明顯優(yōu)勢 5,索引的分類 主鍵索引,普通索引,**索引,聯(lián)合索引,全文索引。
其中聯(lián)合索引需要滿足最左前綴法則才能實現(xiàn)索引。
數(shù)據(jù)庫的索引以及在哪些列上創(chuàng)建索引
選擇開始菜單中→程序→【managementsqlserver2008】→【sqlservermanagementstudio】命令,打開【sqlservermanagementstudio】窗口,并使用windows或sqlserver身份驗證建立連接。在【對象資源管理器】窗口中展開服務(wù)器,然后選擇【數(shù)據(jù)庫】節(jié)點右鍵單擊【數(shù)據(jù)庫】節(jié)點,從彈出來的快捷菜單中選擇【新建數(shù)據(jù)庫】命令。
執(zhí)行上述操作后,會彈出【新建數(shù)據(jù)庫】對話框。
在對話框、左側(cè)有3個選項,分別是【常規(guī)】、【選項】和【文件組】。完成這三個選項中的設(shè)置會后,就完成了數(shù)據(jù)庫的創(chuàng)建工作,在【數(shù)據(jù)庫名稱】文本框中輸入要新建數(shù)據(jù)庫的名稱。例如,這里以“新建的數(shù)據(jù)庫”。在【所有者】文本框中輸入新建數(shù)據(jù)庫的所有者,如sa。
根據(jù)數(shù)據(jù)庫的使用情況,選擇啟用或者禁用【使用全文索引】復(fù)選框。在【數(shù)據(jù)庫文件】列表中包括兩行,一行是數(shù)據(jù)庫文件,而另一行是日記文件。通過單擊下面的【添加】、【刪除】按鈕添加或刪除數(shù)據(jù)庫文件。
切換到【選項頁】、在這里可以設(shè)置數(shù)據(jù)庫的排序規(guī)則、恢復(fù)模式、兼容級別和其他屬性。切換到【文件組】頁,在這里可以添加或刪除文件組。完成以上操作后,單擊【確定】按鈕關(guān)閉【新建數(shù)據(jù)庫】對話框。
至此“新建的數(shù)據(jù)”數(shù)據(jù)庫創(chuàng)建成功。新建的數(shù)據(jù)庫可以再【對象資源管理器】窗口看到。