成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數據庫索引實際上是如何工作的

數據庫
數據庫具有組織化的數據存儲功能。存儲具有用于放置數據的特定結構。每種數據庫類型都有其自己的用于存儲數據的格式。針對特定用例對它們進行了調整和優化。

 [[383221]]

數據庫具有組織化的數據存儲功能。存儲具有用于放置數據的特定結構。每種數據庫類型都有其自己的用于存儲數據的格式。針對特定用例對它們進行了調整和優化。在下面的示例中,我們有一個包含汽車信息的數據庫:

 

數據庫索引實際上是如何工作的

 

> Example of a database table with cars

看起來很好,很容易瀏覽它。但是你有沒有問過自己的數據是如何存儲的?

內部存儲器

每個數據庫都內部存儲在文件中,并應用了特定的編碼和格式。為簡單起見,讓我們假設一個數據庫由CSV文件支持。它是這樣的:

ID,Brand,Model,Color,Price

1,Ford,Focus,Grey,42000

2,Toyota,Prius,White,40500

3,BMW,M5,Red,60000

4,Audi,A3,Black,38000

5,Toyota,Camry,White,51500

6,VW,Golf,Grey,32000

這一切都很簡單。用只有六個條目進行查找不是問題。你能想象你有100,000個條目嗎?經過文件會變得非常慢。查詢時間與文件的大小成比例地增加。當我們知道數據庫會隨著時間的推移而增長時,我們需要找到一個解決方案。

在這里索引到救援。

數據庫索引

數據庫索引是一種數據結構,用于加快檢索數據的操作。它是什么樣子的?

如果我們需要通過ID 6從我們的表中檢索一輛汽車,則直接跳到相應的行時會更快地跳轉,而不會通過其余循環。這是索引的主要思想。我們還需要保存指向各個條目的偏移量。

最簡單的方法是保留哈希中每個條目的偏移量。關鍵是我們要索引的列的值(在此示例中,它是ID列)。哈希值是數據庫文件中的偏移量。對于ID = 1,偏移量為0。對于ID = 2,偏移量為24。它看起來像這樣:

Hash Index {1:0, 2:24, 3:51, 4:70, 5:92, 6:118}

1 => {0} ---------> 1,Ford,Focus,Grey,42000

2 => {24} ---------> 2,Toyota,Prius,White,40500

3 => {51} ---------> 3,BMW,M5,Red,60000

4 => {70} ---------> 4,Audi,A3,Black,38000

5 => {92} ---------> 5,Toyota,Camry,White,51500

6 => {118} ---------> 6,VW,Golf,Grey,32000

添加索引后,通過ID查詢汽車將返回結果更快。檢索請求進入散列索引,并占用相應ID的偏移量。然后它開始在必要的條目中完全從偏移量讀取數據庫文件。

索引是實現唯一性約束的正確方法。當您想要保證某個列中的值是唯一的,則需要列上的索引。否則,每個插入操作都會卡住檢查新數據是否已存在。

也可以具有多個索引。如果我們需要通過任何其他列快速查詢,我們也會添加一個索引。例如,我們可以通過顏色添加顏色和查詢快車的索引。但每個新索引都會為數據庫帶來額外的成本。

索引開銷

首先,每個索引哈希都需要額外的內存。我們添加的索引越多,將使用更多的內存。重要的是要記住僅在經常查詢的列上添加索引。否則,對每一列建立索引將消耗大量內存。

其次,對于快速讀取操作,寫入操作會略微慢。每次向表添加條目時,我們也必須在哈希索引中創建一個項目。類似的情況適用于更新或刪除數據。這是我們必須處理的權衡。

總結

  • 數據庫索引是增強讀取查詢的好方法。
  • 唯一性約束需要索引列。
  • 通過每個新索引,將消耗更多內存。
  • 添加索引對寫作和更新的操作產生了影響。

這就是簡單的哈希索引的工作方式。還有許多其他使用數據庫索引的方法,例如排序字符串表或B樹。他們使用更復雜的邏輯和優化的結構來獲得更好的性能結果。

但是,保存偏移量的想法保持不變。通過正確使用索引,在使用數據庫時,您將可以達到一個新的水平。

責任編輯:華軒 來源: 今日頭條
相關推薦

2018-10-24 17:50:42

備份

2020-10-14 10:56:15

WPS魔方網表

2024-01-17 16:56:07

CIO混合云微服務

2024-01-22 09:43:50

數據庫方案

2020-08-25 07:44:18

數據庫數據安全

2021-01-15 11:22:29

iOS加密措施數據

2016-03-28 10:32:36

Hadoop數據庫引擎BI

2023-07-13 13:19:03

2018-10-09 11:27:14

物聯網RFID模擬傳感器

2023-06-12 08:25:33

2010-05-13 13:49:09

MySQL數據庫

2022-08-16 14:40:09

SQL數據庫內存結構

2021-10-22 15:58:11

網絡安全網絡攻擊惡意程序

2010-05-20 15:22:37

2010-05-28 11:41:46

MySQL數據庫備份

2021-07-12 11:46:15

數據庫Autoscaling阿里云

2021-07-01 10:45:08

硬盤數據庫性能

2010-04-07 17:45:22

Oracle位圖索引

2017-10-23 13:52:31

數據庫硬件

2010-04-19 09:26:04

Oracle數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩电影a | 婷婷久久五月天 | 国产一区久久 | 国产粉嫩尤物极品99综合精品 | 99精品欧美一区二区三区 | 成人日b视频 | 久久亚洲欧美日韩精品专区 | 羞羞色在线观看 | 国产成人免费视频网站视频社区 | 亚洲欧美在线免费观看 | 一区二区成人 | 亚洲精品视频一区二区三区 | 四虎在线观看 | av网站免费在线观看 | 天天色图 | 男人的天堂视频网站 | 亚洲精品乱码久久久久久9色 | 国产一区不卡在线观看 | 成人无遮挡毛片免费看 | 97久久精品午夜一区二区 | 欧美一区免费 | 午夜爱爱毛片xxxx视频免费看 | 欧美一区视频 | 欧美日韩成人一区二区 | 第一av | 精品少妇一区二区三区日产乱码 | 四虎首页| 久久一区二区三区四区五区 | 男女啪啪高潮无遮挡免费动态 | 特级黄一级播放 | 欧美五月婷婷 | 日本视频免费观看 | 亚洲最大av网站 | 国产电影一区二区在线观看 | 久久久精品一区二区三区 | 国产在线97 | 91久久精品视频 | 国产在线视频三区 | 色免费在线视频 | 亚洲成人综合在线 | 日韩成人中文字幕 |