數據庫表設計索引外鍵設計_關于索引的設計決策 數據庫管理系統

數據庫表設計索引外鍵設計

Introduction:

介紹:

The attributes whose values are required inequality or range conditions and those that are keys or that participate in join conditions require access paths.

其值為必需的不等式或范圍條件的屬性以及作為鍵或參與聯接條件的屬性需要訪問路徑。

The performance of queries largely depends upon what indexes or hashing schemas exist to expedite the processing of selections and joins. On the other hand, when we do insertion, deletion, or updating operations, the existence of indexes adds to the overhead. This overhead need to be justified in terms of the increase in efficiency by expediting queries and also the transactions.

查詢的性能很大程度上取決于存在哪些索引或哈希模式以加快選擇和聯接的處理。 另一方面,當我們執行插入,刪除或更新操作時,索引的存在會增加開銷。 需要通過加快查詢以及事務的效率來證明這種開銷。

The physical design decision for indexing falls into the following categories:

索引物理設計決策可以歸為以下幾類

1)是否也索引屬性 (1) Whether too index an attribute)

The attribute must be a key or there must be some query that uses that attribute either in a selection condition or in a join. One factor.

該屬性必須是鍵,或者必須存在一些在選擇條件或聯接中使用該屬性的查詢。 一個因素。

In favor of setting up many indexes is that some queries can be processed by just scanning the indexes without retrieving any data.

設置許多索引的好處是可以通過僅掃描索引而無需檢索任何數據來處理某些查詢。

2)要索引哪些屬性或屬性 (2) What attributes or attributes to index on)

An index can be constructed one or multiple attributes. If there are multiple attributes from one relation that are involved together in several queries,

索引可以構造一個或多個屬性。 如果一個查詢中有多個屬性同時包含在多個查詢中,

A multiattribute index is warranted. The ordering of attributes within a multiattribute index must correspond to the queries. For example, the above index assumes that queries would be based on an ordering of colors within a GARMENT_style_ #rather than vice-versa.

多屬性索引是必要的。 多屬性索引中的屬性順序必須與查詢相對應。 例如,以上索引假設查詢將基于GARMENT_style_#內的顏色順序,而不是相反。

3)是否建立聚簇索引 (3) Whether to set up a clustered index)

At most, one index per table can be primary or clustering index because this implies that the file is physically ordered on that attribute. In most RDBMS this is specified by the keyword CLUSTER.

每個表最多只能有一個索引是主索引或聚簇索引,因為這意味著該文件在該屬性上是物理排序的。 在大多數RDBMS中,這由關鍵字CLUSTER指定。

If a table requires several indexes, the decision about which one should be a clustered index depends upon whether keeping the table ordered on that attribute is needed. Range queries benefit a great deal from clustering. If several attributes require the range queries, relative benefits must be evaluated before deciding which attribute to cluster on. A clustering index may be set up as a multi-attribute index if range retrieval by that composite key is useful in report creation.

如果一個表需要多個索引,則關于哪個索引應為聚集索引的決定取決于是否需要將該表保持在該屬性上。 范圍查詢從群集中受益匪淺。 如果幾個屬性需要范圍查詢,則必須在確定要聚類的哪個屬性之前評估相對利益。 如果該復合鍵的范圍檢索在報表創建中很有用,則可以將聚類索引設置為多屬性索引。

4)是否在樹索引上使用哈希索引 (4) Whether to use a hash index over a tree index )

In general, RDBMS use B+ trees for indexing. However, ISAM and hash indexes are also provided in some systems.B+ trees support equality and range queries on the attribute used as the search key. Hash indexes work very well with equality conditions, to find a matching record during joins.

通常,RDBMS使用B +樹進行索引。 但是,某些系統中還提供了ISAM和哈希索引.B +樹支持對用作搜索關鍵字的屬性進行相等性和范圍查詢。 哈希索引在相等條件下可以很好地工作,可以在聯接期間找到匹配的記錄。

5)是否對文件使用動態哈希 (5) Whether to use dynamic hashing for the file)

For files that are very volatile, that is those that grow and shrink continuously one of the dynamic hashing schemas would be suitable. Currently, they are not offered by commercial RDBMSs.

對于非常易失的文件,即那些不斷增長和縮小的文件,動態哈希方案之一將是合適的。 當前,商業RDBMS不提供它們。

翻譯自: https://www.includehelp.com/dbms/design-decision-about-indexing.aspx

數據庫表設計索引外鍵設計

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541078.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541078.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541078.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

接口測試從零開始系列_mock技術使用

1、什么情況下會使用mock技術 (1)需要將當前被測單元和其依賴模塊獨立開來,構造一個獨立的測試環境,不關注被測單元的依賴對象,只關注被測單元的功能邏輯 ----------比如被測代碼中需要依賴第三方接口返回值進行邏輯處…

amie 規則挖掘_AMIE的完整形式是什么?

amie 規則挖掘AMIE:工程師協會的準會員 (AMIE: Associate Member of the Institution of Engineers) AMIE is an abbreviation of Associate Member of the Institution of Engineers. The Institution of Engineers India Limited (IEIL) provides this profession…

java 馬克思_單鏈表-Java

public class SinglyListNode {int val;SinglyListNode next;SinglyListNode() {}SinglyListNode(int x) {this.val x;}}/*執行用時:12 ms, 在所有 Java 提交中擊敗了66.93%的用戶內存消耗:39.5 MB, 在所有 Java 提交中擊敗了5.06%的用戶*/class MyLink…

python的pass語句_Python | 演示pass語句的示例

python的pass語句python中的pass語句 (pass statement in python) "pass" is a type of null operation or null statement, when it executes nothing happens. It is used when you want do not want to write any code/statement to execute but syntactically a …

HDS:聚焦未來的投資“凍結”

一家日本IT網站報道的有關HDS凍結對高端存儲產品的投資一事引發眾議。讓人陷入疑惑的這次聲明就是,HDS認為單純的陣列產品并非企業存儲的未來。 6月1日,IT Pro Nikkei網站發布了一篇報道,內容援引HDS一份表示將凍結高端存儲業務的簡報。這引發…

java js對象轉字符串數組_JS數組轉字符串(3種方法)【轉】

JavaScript 允許數組與字符串之間相互轉換。其中 Array 方法對象定義了 3 個方法,可以把數組轉換為字符串,如表所示。數組方法說明toString()將數組轉換成一個字符串toLocalString()把數組轉換成本地約定的字符串join()將數組元素連接起來以構建一個字符…

中美共建大數據創新研究中心

由貴陽市人民政府、工信部電子一所、美國加州大學伯克利分校合作共建的貴州伯克利大數據創新研究中心日前在貴陽揭牌。 據了解,貴州伯克利大數據創新研究中心將分兩階段建設。第一階段,2016年9月份至2017年底,將重點完成“學齡兒童大數據分析…

Python中的__init__和self是做什么的?

The __init__ and self are two keywords in python, which performs a vital role in the application. __init__和self是python中的兩個關鍵字,在應用程序中起著至關重要的作用。 To begin with, it is important to understand the concept of class and object…

Palo Alto Networks漏洞防護擴展至云端

中國北京,2016年4月12日 –下一代安全企業Palo Alto Networks?(紐交所代碼:PANW)近日宣布進一步增強其下一代安全平臺,擴展漏洞防護能力,以滿足那些依賴云環境和SaaS應用的業務對安全的需求。 企業機構需要變得更加靈活和有競爭力…

java 嵌套調用_Java嵌套類的使用

嵌套類是指被定義在另一個類內部的類,它為外部類提供服務。嵌套類分四種:靜態成員類、非靜態成員類、匿名類和局部類。一、靜態成員類與非靜態成員類的區別?在什么情況下可以用靜態成員類?我們知道在類的設計中,為了避…

c語言getenv函數_getenv()函數與C ++中的示例

c語言getenv函數C getenv()函數 (C getenv() function) getenv() function is a library function of cstdlib header. It is used to get the environment string. It accepts a parameter which is an environment variable name (platform dependent, it may either case s…

isless()函數與C ++中的示例

C isless()函數 (C isless() function) isless() function is a library function of cmath header, it is used to check whether the given first value is less than the second value. It accepts two values (float, double or long double) and returns 1 if the first …

停牌17個月 漢能薄膜真的要復牌了?

最近,停牌超過一年的漢能薄膜又有新進展。 10月7日,路透社引述知情人士的消息稱,香港證監會或將允許漢能薄膜發電復牌,不過復牌的前提是需漢能將符合一些特定條件。 該消息人士透露,證監會告知漢能,若要恢復…

hive java udf_UDF_Hive教程_田守枝Java技術博客

UDF是User-Defined Functions(用戶定義函數)的簡稱。通過以下命令可以查看HIVE中函數的相關文檔:SHOW FUNCTIONS;DESCRIBE FUNCTION ;DESCRIBE FUNCTION EXTENDED ;1、UDF函數可以直接應用于select語句,對查詢結構做格式化處理后,再輸出內容。…

python 示例_帶有示例的Python列表remove()方法

python 示例列出remove()方法 (List remove() Method) remove() method is used to remove the first occurrence of the given element, the method is called with this list (the list from which we have to remove the element) and accepts the element to be removed as…

車聯網領域,傳統TSP企業做錯了什么 ?

當下,車聯網的定義更加豐富和寬泛,除了傳統意義上的Telematics服務,數字服務、移動出行服務、電商平臺等將被融入到車聯網概念中,與用車相關的維修保養、洗車、代駕等第三方服務,也將成為整車廠整合的重點被納入到車聯…

gettimeofday_PHP gettimeofday()函數與示例

gettimeofdayPHP gettimeofday()函數 (PHP gettimeofday() function) gettimeofday() function is used to get the current time. gettimeofday()函數用于獲取當前時間。 Syntax: 句法: gettimeofday(return_float);Parameter(s): 參數: return_floa…

Shell腳本/bin/bash^M: bad interpreter錯誤解決方法

2019獨角獸企業重金招聘Python工程師標準>>> 在windows下保存了一個腳本文件,用ssh上傳到centos,添加權限執行nginx提示沒有那個文件或目錄。 shell腳本放到/etc/init.d/目錄下,再執行/etc/init.d/nginx,提示多了這句/…

java中map的遍歷方法_Java中Map的三種遍歷方式

集合中的三種遍歷方式,如下代碼:import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.TreeMap;public class TestMap {public static void main(String[] arg…

uuid hashcode_Java UUID hashCode()方法與示例

uuid hashcodeUUID類hashCode()方法 (UUID Class hashCode() method) hashCode() method is available in java.util package. hashCode()方法在java.util包中可用。 hashCode() method is used to retrieve the hash code for this UUID. hashCode()方法用于檢索此UUID的哈希碼…