每日五道java面試題之mysql數據庫篇(三)

在這里插入圖片描述

目錄:

  • 第一題. 百萬級別或以上的數據如何刪除?
  • 第二題. 前綴索引
  • 第三題. 什么是最左前綴原則?什么是最左匹配原則?
  • 第四題. B樹和B+樹的區別
  • 第五題. 使用B樹和B+樹好處

第一題. 百萬級別或以上的數據如何刪除?

關于索引:由于索引需要額外的維護成本,因為索引文件是單獨存在的文件,所以當我們對數據的增加,修改,刪除,都會產生額外的對索引文件的操作,這些操作需要消耗額外的IO,會降低增/改/刪的執行效率。所以,在我們刪除數據庫百萬級別數據的時候,查詢MySQL官方手冊得知刪除數據的速度和創建的索引數量是成正比的。

  1. 所以我們想要刪除百萬數據的時候可以先刪除索引(此時大概耗時三分多鐘)
  2. 然后刪除其中無用數據(此過程需要不到兩分鐘)
  3. 刪除完成后重新創建索引(此時數據較少了)創建索引也非常快,約十分鐘左右。
  4. 與之前的直接刪除絕對是要快速很多,更別說萬一刪除中斷,一切刪除會回滾。那更是坑了。

第二題. 前綴索引

語法:index(field(10)),使用字段值的前10個字符建立索引,默認是使用字段的全部內容建立索引。

前提:前綴的標識度高。比如密碼就適合建立前綴索引,因為密碼幾乎各不相同。

實操的難度:在于前綴截取的長度。

我們可以利用select count(*)/count(distinct left(password,prefixLen));,通過從調整prefixLen的值(從1自增)查看不同前綴長度的一個平均匹配度,接近1時就可以了(表示一個密碼的前prefixLen個字符幾乎能確定唯一一條記錄)

第三題. 什么是最左前綴原則?什么是最左匹配原則?

  • 顧名思義,就是最左優先,在創建多列索引時,要根據業務需求,where子句中使用最頻繁的一列放在最左邊。
  • 最左前綴匹配原則,非常重要的原則,mysql會一直向右匹配直到遇到范圍查詢(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4如果建立(a,b,c,d)順序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引則都可以用到,a,b,d的順序可以任意調整。
  • =和in可以亂序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意順序,mysql的查詢優化器會幫你優化成索引可以識別的形式

第四題. B樹和B+樹的區別

  • 在B樹中,你可以將鍵和值存放在內部節點和葉子節點;但在B+樹中,內部節點都是鍵,沒有值,葉子節點同時存放鍵和值。
  • B+樹的葉子節點有一條鏈相連,而B樹的葉子節點各自獨立。
    在這里插入圖片描述

第五題. 使用B樹和B+樹好處

使用B樹的好處

B樹可以在內部節點同時存儲鍵和值,因此,把頻繁訪問的數據放在靠近根節點的地方將會大大提高熱點數據的查詢效率。這種特性使得B樹在特定數據重復多次查詢的場景中更加高效。

使用B+樹的好處

由于B+樹的內部節點只存放鍵,不存放值,因此,一次讀取,可以在內存頁中獲取更多的鍵,有利于更快地縮小查找范圍。 B+樹的葉節點由一條鏈相連,因此,當需要進行一次全數據遍歷的時候,B+樹只需要使用O(logN)時間找到最小的一個節點,然后通過鏈進行O(N)的順序遍歷即可。而B樹則需要對樹的每一層進行遍歷,這會需要更多的內存置換次數,因此也就需要花費更多的時間

如果我的內容對你有幫助,請點贊,評論,收藏。創作不易,大家的支持就是我堅持下去的動力
在這里插入圖片描述

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

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

相關文章

【設計】設計一個web版的數據庫管理平臺后端精要

需求 springboot設計開發一個系統&#xff0c;在這個系統的數據庫表中存放著2000個數據庫實例&#xff0c;有MySQL、Oracle、sql server3種數據庫類型&#xff0c;用戶可以在頁面上選擇不同的實例&#xff0c;連接這些實例上的數據庫&#xff0c;來執行業務sql 實現 Service…

光伏儲能MPPT控制系統如何進行浪涌靜電保護?

MPPT&#xff08;Maximum Power Point Tracking&#xff09;是太陽能電池板光伏發電系統中重要的一種控制技術。MPPT控制器能夠實時偵測太陽能板的發電電壓&#xff0c;并追蹤最高電壓電流值&#xff08;VI&#xff09;&#xff0c;使系統以最大功率輸出對蓄電池充電&#xff0…

06 - ip route和route -n的區別

1 ip route和route -n的區別 ip route 和 route -n 都是用于查看和管理Linux系統路由表的命令。但下面是它們的區別&#xff1a; ip route&#xff1a;是Linux系統中的現代工具&#xff0c;它屬于iproute2套件&#xff1b;它提供了更多的選項&#xff0c;可以更精確地控制路由表…

使用git的小筆記

平時工作中使用git存儲項目代碼&#xff0c; 常用的命令 拉取倉庫代碼 git clone http://100.100.100.100:9080/my_test/test.git 拉取到以后&#xff0c; 先切換到自己的分支 git checkout my_name 一頓魔改代碼 然后 add 新增的文件或者修改的文件 git add * 然后提交 并寫…

【go從入門到精通】什么是go?為什么要選擇go?

go的出生&#xff1a; go語言&#xff08;或Golang&#xff09;是Google開發的開源編程語言&#xff0c;誕生于2006年1月2日下午15點4分5秒&#xff0c;于2009年11月開源&#xff0c;2012年發布go穩定版。Go語言在多核并發上擁有原生的設計優勢&#xff0c;Go語言從底層原生支持…

攔截大語言模型API調用 無需深究文檔源碼

背景眾多庫致力于通過自動重構或創建提示符來優化大語言模型的輸出。這些建庫宣稱能夠使大語言模型的輸出更加&#xff1a; 安全(例如&#xff1a;安全護欄) 可預測(例如&#xff1a;智能指導) 結構化(例如&#xff1a;指令生成器) 魯棒(例如&#xff1a;語言鏈) … 或者針…

如何在 Windows 上安裝 ONLYOFFICE 文檔 8.0

使用社區版&#xff0c;您可以在本地服務器上安裝 ONLYOFFICE 文檔&#xff0c;并將在線編輯器與 ONLYOFFICE 協作平臺或其他熱門系統集成在一起。 ONLYOFFICE 文檔是什么 ONLYOFFICE 文檔是一個功能強大的文檔編輯器&#xff0c;支持處理文本文檔、電子表格、演示文稿、可填寫…

FPGA時序約束與分析--數據到達路徑和數據需求路徑

文章目錄 前言一、定義二、時序模型三、公式推導前言 時序約束的定義–設計者根據實際的系統功能,通過時序約束的方式提出時序要求; FPGA 編譯工具根據設計者的時序要求,進行布局布線;編譯完成后, FPGA 編譯工具還需要針對布局布線的結果,套用特定的時序模型( FPGA 器件…

Andorid 13 修改默認音量區間、默認音量值

Andorid 13 默認音量區間是 [0,15] &#xff0c;默認音量 5。 需求是&#xff1a;音量區間為 [0,100] &#xff0c;默認音量 30 。 找到對應產品的 device.mk &#xff0c;添加如下 #default volume PRODUCT_PROPERTY_OVERRIDES \ro.config.media_vol_steps100 \ro.config.…

無人機遙感在農林信息提取中的實現方法與GIS融合應用

在新一輪互聯網信息技術大發展的現今&#xff0c;無人機、大數據、人工智能、物聯網等新興技術在各行各業都處于大爆發的前夜。為了將人工智能方法引入農業生產領域。首先在種植、養護等生產作業環節&#xff0c;逐步擺脫人力依賴&#xff1b;在施肥灌溉環節構建智慧節能系統&a…

openlayers 路線規劃 高德坐標轉wgs84 wgs84轉天地圖

在https://blog.csdn.net/qq_36287830/article/details/136321365改善而來的 需要進行坐標轉換 不轉換你畫的線和實際數據是無法一一對應的 會出現偏移 關鍵代碼 模擬請求后獲取到數據場景 fetch(./a.json).then(async (res) > {//等待數據格式化為Jsonlet json await res.…

【C++第三課 - 類和對象中】構造函數、析構函數、拷貝構造函數

目錄 類的6個默認成員函數構造函數自己寫的構造函數默認生成的構造函數 析構函數概念特征 拷貝構造函數特征 運算符重載 、 >、 < 賦值重載Date類的完善構造函數的完善用復用 類的6個默認成員函數 默認成員函數&#xff1a;不寫編譯器也會默認生成一份 構造函數 自己…

利用Python批量替換文檔中特定參數的數值

情況&#xff1a;有一份文檔需要將其中252個不同值的"sza“替換為另外一組數據 &#xff1b; 其中&#xff0c;替換參數值.txt 的格式就是把要替換的數據粘貼到 txt中&#xff0c;成一列就可以了&#xff1b; PS&#xff1a;要是想改文本文檔里的其他參數&#xff0c;把代…

UnityShader——09數學知識3

方陣 行與列數量相等的矩陣,n*n階矩陣 對角矩陣 當對角線以外的矩陣內元素全為0&#xff0c;則稱之為對角矩陣&#xff0c;對角矩陣的前提是必須是方陣 單位矩陣 對角線元素全為1&#xff0c;其余元素全為0&#xff0c;屬于對角矩陣的一部分 矩陣和向量 把1 * n階矩陣稱…

多個地區地圖可視化

1. 配置Json文件 1.1 獲得每個省份的json數據 打開 阿里云數據可視化平臺 主頁。 在搜索框中輸入所需省份。 將json文件下載到本地。 1.2 將各省份的json數據進行融合 打開 geojson.io 主頁 點擊 open&#xff0c;上傳剛剛下載的 json 文件&#xff0c;對多個省份不斷…

【CSP試題回顧】201409-1-相鄰數對

CSP-201409-1-相鄰數對 解題代碼 #include <iostream> #include <vector> using namespace std;vector<int>arr; int num;int main() {ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n;cin >> n;for (int i 0; i < n; i){int t;…

設計模式總結(三)

上一篇總結了設計模式的創建型模式&#xff0c; 接下來總結一下設計模式的幾種結構型模式。 1. 適配器模式 適配器模式允許將一個類的接口轉換成客戶端所期望的另一個接口。適配器模式通常用于以下情況&#xff1a; 當你需要使用一個已經存在的類&#xff0c;但是它的接口與你…

不愧是華為出來的,太厲害了...

&#x1f345; 視頻學習&#xff1a;文末有免費的配套視頻可觀看 &#x1f345; 關注公眾號【互聯網雜貨鋪】&#xff0c;回復 1 &#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 實習去了博彥科技&#xff08;外包&#xff09;&#xff0c;做的…

設計模式筆記——建造者模式

設計模式&#xff08;創建型&#xff09;—— 建造者模式 這是一個學生類&#xff0c;它有四個屬性&#xff0c;通過構造方法創建它的對象&#xff0c;我們需要填入四個參數&#xff0c;這就導致創建對象的代碼有點長&#xff08;如果他有更多屬性時&#xff0c;那會更加恐怖&…

賦能中國制造,大道云行發布智能制造分布式存儲解決方案

《中國制造2025》指出&#xff0c;“制造業是國民經濟的主體&#xff0c;是立國之本、興國之器、強國之基。” 智能制造引領產業提質增效 智能制造是一種利用先進的信息技術、自動化技術和智能技術來優化和升級制造業生產過程的方法。它將人工智能、大數據、物聯網、機器學習等…