數據庫表 索引

目錄

一、索引的分類

1、按存儲形式:

????????1)B-TREE索引:

????????2)位圖索引:

????????3)反向鍵索引:

????????4)基于函數的索引:

2、按唯一性:

????????1)唯一索引:

3、按列的個數:

????????1)單列索引:

????????2)復合索引(也稱為聯合索引):

二、索引的優缺點

1、優點:

2、缺點:

三、索引跟主鍵的區別

四、確認索引用沒用上

五、一般會在什么情況下加索引

六、索引創建

七、索引什么情況下會失效


一、索引的分類


1、按存儲形式:

即索引中存儲的內容不同。

????????1)B-TREE索引:

????????索引列原始數據+ROWID,工作中最常見、使用范圍最廣的索引,列基數比較大的時候使用(行業、身高)。

????????2)位圖索引:

????????位圖+ROWID,列基數比較小的時候使用(性別、婚姻狀況)。

????????3)反向鍵索引:

????????索引列原始數據的反向存儲+ROWID,為防止B-TREE索引在某葉上數據量占比過高而使用的一種索引。

????????4)基于函數的索引:

????????將索引列原始數據經函數處理后存儲+ROWID。

2、按唯一性:

索引列中的數據是否有重復值。

????????1)唯一索引:

????????索引列中不可能出現重復值。

3、按列的個數:

索引覆蓋的列的個數。

????????1)單列索引:

????????基于一個列建立的索引。

????????2)復合索引(也稱為聯合索引):

????????基于兩個或兩個以上列建立的索引。

二、索引的優缺點

1、優點:

????????1)大大加快數據的檢索速度。
????????2)創建唯一性索引,保證數據庫表中每一行數據的唯一性。
????????3)加速表和表之間的連接。
????????4)在使用分組和排序子句進行數據檢索時,可以顯著減少查詢中分組和排序的時間。

2、缺點:

????????1)索引需要占物理空間。

?????????2)當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,降低了數據的維護速度。

三、索引跟主鍵的區別

1、主鍵一定是唯一性索引,唯一性索引并不一定就是主鍵。

2、一個表中可以有多個唯一性索引,但只能有一個主鍵。

3、主鍵列不允許空值,而唯一性索引列允許空值。

4、索引可以提高查詢的速度。

5、主鍵和索引都是鍵,不過主鍵是邏輯鍵,索引是物理鍵,意思就是主鍵不實際存在,而索引實際存在在數據庫中。

6、應用范疇不同 種類不同(唯一索引、主鍵索引和聚集索引主鍵只是其中的一種)創建方式不同。

四、確認索引用沒用上

通過explain查詢sql執行計劃,主要看key使用的是哪個索引。

五、一般會在什么情況下加索引

1、主鍵自動建立唯一索引。

2、頻繁作為查詢條件的字段應該創建索引。

3、查詢中與其他表關聯的字段,外鍵關系建立索引。

4、單鍵/組合索引的選擇,組合索引的性價比更高。

5、查詢中排序的字段,排序字段若通過索引去訪問將大大提高排序速度。

6、查詢中統計或者分組字段。

7、過濾條件好的字段選擇一段選擇加索引。

六、索引創建

CREATE INDEX 索引名 ON 表名 (列)

七、索引什么情況下會失效

1、對列進行計算或者使用函數時。

2、使用了反向操作或者link時。

3、在where語句中使用or時,如果有一個列沒索引,那么其他列就會失效。

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

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

相關文章

代碼隨想錄算法訓練營第八天

344. 反轉字符串 方法&#xff1a; 方法一&#xff1a; 直接用reverse函數 注意&#xff1a; 代碼&#xff1a; class Solution { public:void reverseString(vector<char>& s) {return reverse(s.begin(), s.end());} };運行結果&#xff1a; 方法&#xff1…

解釋前端路由的概念,以及單頁應用(SPA)和多頁應用(MPA)的區別

前端路由是現代Web應用中的一種設計模式&#xff0c;它允許用戶在單個網頁應用程序&#xff08;SPA&#xff09;內部通過改變URL而無需重新加載整個頁面來切換不同的視圖或內容。在傳統的多頁應用&#xff08;MPA&#xff09;中&#xff0c;每訪問一個新頁面&#xff0c;瀏覽器…

搜索算法(算法競賽、藍橋杯)--雙向DFS+二分查找

1、B站視頻鏈接&#xff1a;B26 雙向DFS 送禮物_嗶哩嗶哩_bilibili #include <bits/stdc.h> using namespace std; int n,m; int g[46];//存儲所有物品的質量 int w[1<<23];//存儲所有能湊出來的重量 int ans,cnt;//w的個數是cnt//搜索第u個數&#xff0c;和為s; …

Geeker Admin添加若以分離版本的后臺作為后臺

添加驗證碼 下載若依賴前后端分離版本&#xff0c;配置好自己數據庫&#xff0c;redis連接地址 登錄添加驗證碼 配置自己的若依后端連接地址 添加驗證碼請求方法 登錄頁面登錄輸入框添加驗證碼&#xff0c;uuid,調用的驗證碼刷新方法 注意&#xff1a;這里要用響應式定義驗證…

5_怎么看原理圖之協議類接口之NAND Flash筆記

NAND Flash原理圖&#xff1a; 由NAND Flash的原理圖可以看出&#xff0c;做為一個存儲芯片&#xff0c;只有I/O引腳&#xff0c;并沒有地址引腳&#xff0c;怎么傳地址&#xff1f;遵循一定的規范&#xff0c;先通過LDATA把地址傳出去&#xff0c;再傳數據。具體的需要查看芯片…

vue前端數據轉換顯示

<el-table-column label"項目模板名稱" align"center" prop"tempName" width"180" :formatter"templFormat" /> :formatter"templFormat" // 模板名單 optionTempls: [], // datas value templFormat(row,…

HTTP Cookie 你了解多少?

Cookie是什么&#xff1f; 先給大家舉個例子&#xff0c;F12 打開瀏覽器的頁面之后&#xff0c;我們能在 Response Headers 的字段里面看到一個header 叫做 Set-Cookie&#xff0c;如下所示 圖中包含的 Set-Cookie 為 Set-Cookie:uuid_tt_dd10_20293537580-1709432565344-232…

Transformer模型分布式并行通信量淺析

1.數據并行DP&#xff08;樸素數據并行&#xff0c;Zero數據并行之后補充&#xff09; O ( h 2 ? l ) O(h^2*l) O(h2?l) 每臺機器做完自己的梯度后需要做一次All reduce操作來累積梯度&#xff0c;故一個batch計算發送的數據量為每層梯度大小 h 2 h^2 h2乘以層數 l l l 優點…

【李沐論文精讀】Resnet精讀

論文地址&#xff1a;Deep Residual Learning for Image Recognition 參考&#xff1a;撐起計算機視覺半邊天的ResNet【論文精讀】、ResNet論文逐段精讀【論文精讀】、【李沐論文精讀系列】 一、導論 深度神經網絡的優點&#xff1a;可以加很多層把網絡變得特別深&#xff0c;…

力扣周賽387

第一題 代碼 package Competition.The387Competitioin;public class Demo1 {public static void main(String[] args) {}public int[] resultArray(int[] nums) {int ans[]new int[nums.length];int arr1[]new int[nums.length];int arr2[]new int[nums.length];if(nums.leng…

Linux系統Docker部署RStudio Server

文章目錄 前言1. 安裝RStudio Server2. 本地訪問3. Linux 安裝cpolar4. 配置RStudio server公網訪問地址5. 公網遠程訪問RStudio6. 固定RStudio公網地址 前言 RStudio Server 使你能夠在 Linux 服務器上運行你所熟悉和喜愛的 RStudio IDE&#xff0c;并通過 Web 瀏覽器進行訪問…

第二十四章 :Docker 部署 SpringBoot

第二十四章 :Docker SpringBoot 配置文件容器外加載部署 Docker version 25.0.3, build 4debf41 ,Docker Compose version v2.24.2容器運行后,若需修改配置文件,只需修改宿主機的application-prod.yml ,重啟容器即可。 Springboot 2.x 版本 部署規劃 服務器IP192.168.92…

4. 編寫app組件

1. 代碼 main.ts // 引入createApp用于創建應用 import {createApp} from "vue"// 引入App根組件 import App from ./App.vue createApp(App).mount(#app) App.vue <!-- vue文件可以寫三種標簽1. template標簽&#xff0c;寫html結構2. script 腳本標簽&…

判斷docker 鏡像啟動成功 shell腳本

要編寫一個Shell腳本來判斷Docker鏡像是否啟動成功&#xff0c;你可以使用docker ps命令來檢查容器是否在運行狀態。以下是一個簡單的Shell腳本示例&#xff0c;用于判斷Docker鏡像是否成功啟動&#xff1a; #!/bin/bash# 指定要檢查的容器名稱或ID CONTAINER_NAME"your_c…

風險評估是什么意思?與等保測評有什么區別?

最近看到不少小伙伴在問&#xff0c;風險評估是什么意思&#xff1f;與等保測評有什么區別&#xff1f;這里我們就來簡單聊聊。 風險評估是什么意思&#xff1f; 風險評估是指對某個特定領域或項目進行全面分析和評估&#xff0c;以確定可能存在的潛在風險和危害&#xff0c;并…

2023全球軟件開發大會-上海站:探索技術前沿,共筑未來軟件生態(附大會核心PPT下載)

隨著信息技術的迅猛發展&#xff0c;全球軟件開發大會&#xff08;QCon&#xff09;已成為軟件行業最具影響力的年度盛會之一。2023年&#xff0c;QCon再次來到上海&#xff0c;匯聚了眾多業界精英、技術領袖和開發者&#xff0c;共同探討軟件開發的最新趨勢和實踐。 一、大會…

服務器感染了.ma1x0勒索病毒,如何確保數據文件完整恢復?

引言&#xff1a; 網絡安全成為至關重要的議題。.ma1x0勒索病毒是當前網絡威脅中的一種惡意軟件&#xff0c;它的出現給用戶帶來了極大的困擾。然而&#xff0c;正如任何挑戰一樣&#xff0c;我們也有方法來面對并克服.ma1x0勒索病毒。本文將全面介紹這種病毒的特點&#xff0…

MB85RC鐵電 FRAM驅動(全志平臺linux)

測試幾天發現一個bug&#xff0c;就是無法一次讀取32個字節的數據&#xff0c;1-31,33,128,512都試過了&#xff0c;唯獨無法讀取32個字節&#xff0c;驅動未報錯&#xff0c;但是讀取的都是0&#xff0c;找不到原因&#xff0c;估計應該是全志iic驅動的問題&#xff0c;暫時沒…

leetcode - 2095. Delete the Middle Node of a Linked List

Description You are given the head of a linked list. Delete the middle node, and return the head of the modified linked list. The middle node of a linked list of size n is the ?n / 2?th node from the start using 0-based indexing, where ?x? denotes th…

python中的類與對象(3)

目錄 一. 類的多繼承 二. 類的封裝 三. 類的多態 四. 類與對象綜合練習&#xff1a;校園管理系統 一. 類的多繼承 在&#xff08;2&#xff09;第四節中我們介紹了什么是類的繼承&#xff0c;在子類的括號里面寫入要繼承的父類名。上一節我們只在括號內寫了一個父類名&…