中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

索引與數據完整性的故事

發布時間:2020-07-20 15:54:21 來源:網絡 閱讀:961 作者:長路慢 欄目:關系型數據庫

    話說數據庫也有著重要的衡量指標,那么性能和安全絕對是重要的兩大板塊,在這里性能指的是處理與響應戶端服務的速度,而安全則是數據完整性規則。

    為啥要用索引?

        我們知道,當我們用select去查詢一個表內容,或者用where指定一些關鍵字,Oracle會遍歷整個表去尋找我們的數據,不會因為where找到了數據而不繼續遍歷,因為Oracle不知道是否數據表后面的字段有沒有我們要的數據,所以還會遍歷整個表數據,那么當一個大數據文件,是非常耗時的操作,為了提高我們的檢索效率,更快速更高效的去找到我們想要的數據,也算是索引設計的初衷之一。

    索引怎樣高效?

      為什么用力了索引就會高效,那么我們一起來了解一下索引的原理把,關系型數據庫每一行都會有ROWID的,那么ROWID包括該行的條件、文件中的BOLACKS等,那么說到這里大概就知道!索引建立依靠ROWID來進行的,按照索引的村存儲方法有B樹的,還有位圖索引。個人組織語言講解這兩種類型怕誤人子弟引用百度知識!

    (1)B*樹索引的存儲結構類似書的索引結構,有分支和葉兩種類型的存儲數據塊,分支塊相當于書的大目錄,葉塊相當于索引到的具體的書頁。Oracle用B*樹機制存儲索引條目,以保證用最短路徑訪問鍵值。默認情況下大多使用B*樹索引,該索引就是通常所見的唯一索引、逆序索引。

    (2)位圖索引存儲主要用于節省空間,減少oracle對數據塊的訪問。它采用位圖偏移方式來與表的行ID號對應,采用位圖索引一般是重復值太多的表字段。位圖索引之所以在實際密集型OLTP(聯機事物處理)中用的比較少,是因為OLTP會對表進行大量的刪除、修改、新建操作。Oracle每次進行操作都會對要操作的數據塊加鎖。以防止多人操作容易產生的數據庫鎖等待甚至死鎖現象。在OLAP(聯機分析處理)中應用位圖有優勢,因為OLAP中大部分是對數據庫的查詢操作,而且一般采用數據倉庫技術,所以大量數據采用位圖索引節省空間比較明顯。當創建表的命令中包含有唯一性關鍵字時,不能創建位圖索引,創建全局分區索引時也不能用位圖索引。

    以上就是百度百科對兩種結構的介紹

    格式:

        create index index_name on people(name)

    解釋:

        那么index就是創建索引的關鍵字,這時候索引就會在表people列name上建立,會根據ROWID等信息把名字信息分塊處理。

    通過本人測試不貼圖了,對10W條數據進行測試,普通查找的COST的為400左右,當為某一列建立索引之后,4左右,效率100倍!

    DML的影響

     確實在檢索方面很快,但是缺點無疑暴露,不適合頻繁插入,更改刪除等操作,為啥啊?因為當我們插入也會對索引進行修改,那么索引中不會把你修改刪除的數據從塊中清理釋放內存,只是打上標記,而且有時候可能會改變“顛覆”原結構,重要的是不釋放空間資源,所以我們在頻繁插入修改刪除的表中盡量避免索引這種機制,其次在數據量少的情況下也要去避免這種機制,因為小數據還要為索引建立格外開銷,本身不具備什么優勢。

    數據完整性(Data integrity)

     索引他就簡單的說完了,談談數據的完整性,在前面很多章節都提到過數據的完整性,我們大多數認為就是數據比較完善就是數據的完整性,其實分的很精細,數據的完整性是指數據的可靠性和精確性.

     進一步的說,數據的完整性又分為實體完整性,參照完整,域完整性,用戶自定義完整性四大類。

    實體完整性(Entity)

        簡單來說,就是行的完整性,不能為空值,保證唯一性約束。那么通常用主鍵來保證實體的完整性,當主鍵有多列還會聲明唯一性約束UNIQE來保證唯一標識。

    參照完整性 (Domain integrity)

                表與表之間的關系,對于父子表如果進行插入更新刪除操作,只完成其中一個表就會破壞參照的完整性,字表為隨著父表二變化,外鍵一般用來保證參照完整性的約束。

    域完整(Referential Integrity)

                域完整是指滿嘴特殊的數據類型或者約束的列,比如check,not null,default等都在域完整的范圍內。

    用戶自定義完整(User-defined Integrity

                用戶自定義完整多數在用戶對列中數據類型,字段的約束,比如我只想某一個字段插入什么樣的內容,或者只允許插入1500元以下工資等等,根據我們的需求通過SQL語句動作得到預期的結果這個過程保證了我們自定義的完整,如CHECK檢車約束的使用。

        更深入的知識這里不多做分享,怕誤人子弟,以上是個人參照書籍資料加上自己的理解分享給大家的知識,不足之處希望指點出一定改進!



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

朝阳区| 玛沁县| 龙江县| 鹰潭市| 西青区| 景泰县| 南开区| 江油市| 和顺县| 聊城市| 商洛市| 屏东市| 营口市| 鹤壁市| 读书| 静海县| 津南区| 淮南市| 彭泽县| 自治县| 台中市| 长宁县| 大渡口区| 海原县| 老河口市| 沈丘县| 嘉定区| 运城市| 延长县| 聊城市| 科技| 洛宁县| 轮台县| 自治县| 丹阳市| 延庆县| 铜陵市| 巴南区| 孟连| 探索| 土默特右旗|