聊聊mysql

記錄那些坑
本文會持續更新,陸續更新有關mysql技術內幕、實戰優化、面試技巧。

文章目錄

  • 前言
  • 索引
    • BTree之聚集索引
    • BTree之輔助索引
    • BTree之聯合索引
    • BTree之覆蓋索引
  • 使用到的工具
    • 1、py_innodb_page_info工具
    • 2、hexdump工具
  • 總結


前言

重中之重的MySql數據庫

mysql數據庫不僅在工作中經常使用,面試中也是必問的內容。本文主要內容參考“mysql技術內幕”一書。


提示:以下是本篇文章正文內容,下面案例可供參考

索引

數據庫要想查的快,索引得利用好。
數據庫要想入的快,索引太多可不好。
mysql中索引類型有:BTree,Full Text,Hash,RTree。

BTree之聚集索引

聚集索引:ID索引
ID索引使用BTree結構,每個表僅且只有一個!!!,(即使沒有創建主鍵,mysql會默認創建一個隱藏列作為ID索引)
BTree高度:
BTree中節點存儲鍵值和地址指針,葉子結點存儲鍵值、指針、數據。
物理上不一定是順序的,邏輯上是順序的(通過指針鏈接)。
在這里插入圖片描述

BTree之輔助索引

輔助索引就是主鍵以外的 單個字段的BTree索引類型的了。
輔助索引 葉子結點書簽:聚集索引鍵。
當通過輔助索引來尋找數據時,InnoDB存儲引擎會遍歷輔助索引并通過葉級別的指針獲得指向主鍵索引的主鍵,然后再通過主鍵索引來找到一個完整的行記錄。
在這里插入圖片描述

BTree之聯合索引

將多個字段聯合一起做索引,索引結構如下:
在這里插入圖片描述
根據圖示需要清楚,鍵值是個多元組,多元組中是按照字段的順序進行排列的。所以,在進行查詢時,如果沒有按照自從向右的字段查詢,就會打破聯合索引,使之失效!!!

注意:如果創建聯合索引(a,b,c);如果查詢a和b order by c ,就可以使用到聯合索引; 如果查詢a 直接order by c,就不會使用到索引,因為(a,c)并沒有排序

BTree之覆蓋索引

覆蓋索引常見的場景為:直接使用索引查詢出索引鍵值、主鍵的內容,根據索引的字段進行范圍或非范圍的統計。
判斷是否為覆蓋索引,使用explain,查看Extra字段,如果為Using index,就表示走了。
案例:(t表,a為主鍵,c為輔助索引,cd為聯合索引,b無索引)

  • explain SELECT a from t where c = 1 ; 為覆蓋索引
  • explain SELECT count(*) from t ; 為覆蓋索引
  • explain SELECT count(b) from t ; 全表掃描
  • explain SELECT count(b) from t where c >10 ; 非覆蓋索引,先走c的輔助索引然后走主鍵索引。
  • explain SELECT count(*) from t where d > 0 and d<10 ; 為覆蓋索引

使用到的工具

1、py_innodb_page_info工具

首先 git 下載 https://gitee.com/andy_yyf/py_innodb_page_info

clone到合適位置。

本地需要有python2 (一般服務器自帶)

執行命令:python py_innodb_page_info.py /{對應的path}/t.ibd -v

2、hexdump工具

在Windows操作系統下,可以選擇通過程序UltraEdit打開該二進制文件。在Linux環境下,使用命令hexdump-C-v mytest.ibd>mytest.txt。這里將結果重定向到了文件mytest.txt,打開mytest.txt文件,找到如下內容:xxxx

總結

提示:

本文僅僅簡單說明了有關mysql相關內容,如深入理解可讀相關層面的書籍。

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

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

相關文章

模擬人機猜數游戲

設計目的 1、加深學生對該課程基礎知識和基本理論的理解和掌握&#xff0c;培養學生綜合運用所學知識獨立 分析和解決問題的能力; 2、培養學生在計算機軟硬件開發、理論計算、查閱資料等方面的能力&#xff0c;使學生逐步樹立正 確的設計思想; 3、加強理論聯系實際&#xff0c…

邦芒支招:職場高效溝通的6個秘訣

??俗話說得好“良言一句三冬暖&#xff0c;惡語傷人六月寒。”無論在什么單位&#xff0c;社會上竟是形形色色的人等&#xff0c;人過一百&#xff0c;形形色色。每個人都想得到他人賞識、揮灑才華、爭得提升。但是&#xff0c;要和陌生的人融洽相處、溝通合作&#xff0c;是…

Android 藍牙語音通話調試

首先要清楚藍牙語音通話屬于藍牙得哪一個協議 1、HEADSET 耳機和免提模式,用于藍牙耳機 2、A2DP (advanced audio distribution profile)高級音頻及立體聲規范,包括A2DP SINK和A2DP SOURCE 3、HEALTH 健康設備規范,和一些健康設備進行通信 4、OPP (object push profi…

概率論期末速成(知識點+例題)

考試范圍 一&#xff1a; 事件關系運算性質全概率公式、貝葉斯公式古典概型 二&#xff1a; 離散分布律連續密度函數性質 -> 解決三個問題&#xff08;求待定系數、求概率、求密度函數&#xff09;分布函數 -> 解決三個問題常用分布&#xff08;最后一節課的那幾個分…

手電筒的光能飛到宇宙盡頭嗎

如果我們打開手電筒向夜空照一秒再關掉&#xff0c;我們將會看到&#xff0c;在關掉手電筒的一瞬間&#xff0c;手電筒發出的光束也會消失&#xff0c;那么&#xff0c;它發出的光哪去了呢&#xff1f;下面我們就來聊一下這個話題。實際上&#xff0c;我們看到的光束&#xff0…

Spark SQL 概述

Spark SQL 概述 Spark SQL 是 Apache Spark 的一個模塊&#xff0c;專門用于處理結構化數據。它集成了 SQL 查詢和 Spark 編程的強大功能&#xff0c;使得處理大數據變得更加高效和簡便。通過 Spark SQL&#xff0c;用戶可以直接在 Spark 中使用 SQL 查詢&#xff0c;或者使用 …

ubuntu16.04安裝低版本cmake(安裝cmake安裝)

文章目錄 ubuntu16.04安裝低版本cmake&#xff08;安裝cmake安裝&#xff09;1. **下載并解壓CMake壓縮文件**&#xff1a;- 首先&#xff0c;你需要從CMake的官方網站或其他可靠來源下載cmake-2.8.9-Linux-i386.tar.gz文件。- 然后在終端中使用以下命令解壓文件&#xff1a; 2…

BFS:多源BFS問題

一、多源BFS簡介 超級源點&#xff1a;其實就是把相應的原點一次性都丟到隊列中 二、01矩陣 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:const int dx[4]{1,-1,0,0};const int dy[4]{0,0,1,-1};vector<vector<int>> updateMatrix(vector…

Makefile--自動識別編譯環境(x86還是arm)進行編譯

在日常工作中&#xff0c;我們會在虛擬機下的x86系統進行架叉編譯&#xff0c;有時需要在arm上直接進行編譯。但工程都是一樣的&#xff0c;只是Makefile不一樣&#xff0c;這時就涉及到Makefile的靈活運用了。以下是一個自動識別編譯環境的通用Makefile&#xff1a; TARGET_A…

headerpwn:一款針對服務器響應與HTTP Header的模糊測試工具

關于headerpwn headerpwn是一款針對服務器響應與HTTP Header的模糊測試工具&#xff0c;廣大研究人員可以利用該工具查找網絡異常并分析服務器是如何響應不同HTTP Header的。 功能介紹 當前版本的headerpwn支持下列功能&#xff1a; 1、服務器安全與異常檢測&#xff1b; 2、…

PyTorch 1-深度學習

深度學習-PyTorch 一: Pytorch1> pytorch簡介2> PyTorch 特點&優勢3> pytorch簡史4> pytorch 庫5> PyTorch執行流程6> PyTorch 層次結構二: PyTorch常用的高級API和函數1> 自動求導(Autograd)2> 模型容器(Module)3> 優化器(Optimizer)4&g…

Java Stream API詳解:高效處理集合數據的利器

引言 Java 8引入了許多新特性&#xff0c;其中最為顯著的莫過于Lambda表達式和Stream API。Stream API提供了一種高效、簡潔的方法來處理集合數據&#xff0c;使代碼更加簡潔明了&#xff0c;且具有較高的可讀性和可維護性。本文將深入探討Java Stream API的使用&#xff0c;包…

QFileDialog的簡單了解

ps&#xff1a;寫了點垃圾&#xff08;哈哈哈&#xff09; 它繼承自QDialog 這是Windows自己的文件夾 這是兩者的對比圖&#xff1a; 通過看QFileDialog的源碼&#xff0c;來分析它是怎么實現這樣的效果的。 源碼組成&#xff1a; qfiledialog.h qfiledialog_p.h&#xff…

Python面試寶典第11題:最長連續序列

題目 給定一個未排序的整數數組 nums &#xff0c;找出數字連續的最長序列&#xff08;不要求序列元素在原數組中連續&#xff09;的長度。請你設計并實現時間復雜度為 O(n) 的算法解決此問題。 示例 1&#xff1a; 輸入&#xff1a;nums [100,4,200,1,3,2] 輸出&#xff1a;…

微信小程序中的數據通信

方法1: 使用回調函數 在app.js中:可以在修改globalData后執行一個回調函數,這個回調函數可以是頁面傳遞給app的一個更新函數。// app.js App({globalData: {someData: ,},setSomeData(newData, callback) {this.globalData.someData = newData;if (typeof callback === funct…

打造熱銷爆款:LazadaShopee店鋪測評與關鍵詞策略

面對Lazada和Shopee平臺上店鋪銷量難以突破的困境&#xff0c;賣家們往往尋求各種解決方案。其中&#xff0c;店鋪測評作為提升店鋪信譽、優化產品排名及增加曝光度的有效手段&#xff0c;正逐漸成為賣家關注的焦點。以下將深入探討店鋪測評的好處、實施技巧及自養號的關鍵要素…

提升校園效率:智慧校園后勤管理中的尋物管理功能

在智慧校園后勤管理體系中&#xff0c;尋物管理功能扮演著連接遺失與找回的橋梁角色&#xff0c;它充分利用現代信息技術&#xff0c;為校園內的師生提供了一套高效、便捷的失物招領解決方案。此功能圍繞以下幾個核心方面展開。 首先&#xff0c;它支持在線報失與信息登記。一旦…

如何連接到公司的服務器?

1.下載FileZilla FileZilla的下載與安裝以及簡單使用&#xff08;有圖解超簡單&#xff09;-CSDN博客 2.打開 3.輸入主機 用戶名 密碼 端口 注&#xff1a;主機支持的協議類型&#xff1a; 4.連接成功 其他方式也有很多&#xff0c;比如通過cmd&#xff0c;html網頁等等 3個…

昇思25天學習打卡營第19天|ShuffleNet圖像分類

今天是參加昇思25天學習打卡營的第19天&#xff0c;今天打卡的課程是“ShuffleNet圖像分類”&#xff0c;這里做一個簡單的分享。 1.簡介 在第15-18日的學習內容中&#xff0c;我們陸陸續續學習了計算機視覺相關的模型包括圖像語義分割、圖像分類、目標檢測等內容&#xff0c…

面試遲到了怎么辦

嗨&#xff0c;我是蘭若姐姐。作為一名面試官&#xff0c;最近面試了很多的測試候選人&#xff0c;有了很多感慨&#xff0c;借此抒發一下&#xff0c;我不知道別人面試更看重的是什么&#xff0c;但是在我這里&#xff0c;我最看重的是態度&#xff0c;其次才是技能 我覺得作…