1. 程式人生 > >mysql中儲存引擎為Innodb的索引介紹

mysql中儲存引擎為Innodb的索引介紹

一、簡介

索引(mysql中也加鍵,即key,建索引時就會用到)是儲存引擎用於快速查詢到記錄的一種資料結構。

在mysql中,索引是在儲存引擎層(不是服務層)實現的。索引有聚簇索引、覆蓋索引。

二、儲存引擎為Innodb的索引知識點

1、索引通常是用B-tree樹這種資料結構實現的,Innodb使用的B+tree。

2、索引樹上的節點是有序的。

三、索引型別

1、聚簇索引

聚簇索引,也是一種儲存方式,同一結構上儲存了B-tree索引和資料行,即索引的葉子頁存放的就是資料行。一個表只能有一個聚簇索引。

通常Innodb是通過主鍵聚集資料的,若沒主鍵,則會選擇一個唯一的非空索引代替,若還沒有,則會隱式定義一個主鍵作為聚簇索引。

2、覆蓋索引

覆蓋索引,即索引中就包含了查詢結果所需要的欄位。

四、索引的作用

1、快速檢索資料

2、通過覆蓋索引直接獲取資料

3、查詢結果排序(order by操作)

五、索引注意事項

1、索引採用匹配最左字首,即查詢條件在索引中從左匹配,中間不跳過索引列,斷了就只能使用到匹配上的一部分索引。

2、對於範圍查詢(如select * from stu where id>2),mysql無法使用範圍列後面的其它索引,因此遇這種情況,可以的話,儘量用多個等值條件查詢

(即in代替,如select * from stu where id in(3,4))。

3、若要使用索引,查詢中的列必須是獨立的列,即不能是表示式的一部分(如select * from stu where id+2=3),

也不能是函式的引數(select * from stu where date(create_time))。

4、對於有多個索引的表,查詢時,儲存引擎會自動選擇最優的索引使用。

5、檢視索引,如show index from stu;

相關推薦

mysql儲存引擎Innodb索引介紹

一、簡介 索引(mysql中也加鍵,即key,建索引時就會用到)是儲存引擎用於快速查詢到記錄的一種資料結構。 在mysql中,索引是在儲存引擎層(不是服務層)實現的。索引有聚簇索引、覆蓋索引。 二、儲存引擎為Innodb的索引知識點 1、索引通常是用B-tree樹這種資料結

InnoDB儲存引擎B+樹索引介紹

一、InnoDB索引概述:InnoDB儲存引擎支援B+樹索引、雜湊索引、全文索引和空間索引,後兩種很少用到,本文主要介紹B+樹索引。 B+樹是從最早的平衡二叉樹(AVL)演變而來,但是B+樹不是一個二

mysqlmyisam引擎innodb引擎的比較 以及 utf8_bin和utf8_general_ci的比較

  一:Mysql中MyISAM引擎和InnoDB引擎的比較 結論 如果不清楚自己應該用什麼引擎,那麼請選擇InnoDB,Mysql5.5+的版本預設引擎都是InnoDB,早期的Mysql版本預設的引擎是MyISAM(ISAM) MyISAM 和 InnoDB的適用場景 MyISA

Mysql更改預設引擎Innodb的步驟方法

mysql預設是關閉InnoDB儲存引擎的使用的,而Mysql預設引擎是MyISAM,而MyISAM並不支援事務處理,因為最近專案中的需要所以要更換引擎,通過查詢網上的資料後解決了,現在將步驟方法分享給大家,有需要的朋友們可以參考借鑑,下面來一起看看吧。 前言 I

mysql儲存引擎型別和索引型別

mysql的儲存引擎,常用的有innodb和myisam innodb支援外來鍵,事務,行鎖,安全性更高,寫入快查詢慢,適合大資料量 myisam查詢快寫入慢,支援全文索引,表鎖(MyISAM同一個表上的讀鎖和寫鎖是互斥的,容易阻塞), (myisam一個table

MySQL InnoDB儲存引擎體系架構 —— 索引高階

        眾所周知,在MySQL的InnoDB引擎,為了提高查詢速度,可以在欄位上新增索引,索引就像一本書的目錄,通過目錄來定位書中的內容在哪一頁。         InnoDB支援的索引有如下幾種: B+樹索引 全文索引 雜湊索引         筆者上一篇文

mysql儲存引擎innodb、myisam對插入影響和索引對插入的影響

前言 一直好奇mysql的儲存引擎innodb和myisam對插入影響和索引對插入的影響。 這次我就來做個測試,以下測試供大家參考。 drop table userinfo; CREATE TAB

Mysql儲存引擎索引

可以說資料庫必須有索引,沒有索引則檢索過程變成了順序查詢,O(n)的時間複雜度幾乎是不能忍受的。我們非常容易想象出一個只有單關鍵字組成的表如何使用B+樹進行索引,只要將關鍵字儲存到樹的節點即可。當資料庫一條記錄裡包含多個欄位時,一棵B+樹就只能儲存主鍵,如果檢索的是非主鍵欄位,則主鍵索引失去作用,又變成順序查

mysql儲存引擎介紹

在資料庫中存的就是一張張有著千絲萬縷關係的表,所以表設計的好壞,將直接影響著整個資料庫。而在設計表的時候,我們都會關注一個問題,使用什麼儲存引擎。等一下,儲存引擎?什麼是儲存引擎? 什麼是儲存引擎?   MySQL中的資料用各種不同的技術儲存在檔案(或者記憶體)中。這些技術中的

簡述mysql儲存引擎,myisam和innodb的區別

mysql儲存引擎 MySQL的儲存引擎是MySQL體系架構中的重要組成部分, 也是MySQL體系結構的核心,外掛式的儲存引擎更是它區別於其它資料庫的重要特徵。 它處於MySQL體系架構中Server端底層,是底層物理結構的實現,用於將資料以各種不同的技術方式儲存到檔案或者記憶體中,

Mysql常用儲存引擎——與——索引

1、InnoDB儲存引擎 InnoDB相對來說屬於一種均衡性的儲存引擎,中規中矩,各方面都還不錯,最大的特點是支援事物 2、MyISAM儲存引擎 MyISAM的查詢效率很高,但是不支援事物 Mysql5.5之後預設都使用InnoDB 索引:優化查詢 索引是優化查詢的,索引一般加在

Mysql儲存引擎介紹

1.前言 mysql> show table status like 'user' ; +------+--------+---------+------------+------+----------------+-------------+-----

MySQL——儲存引擎InnoDB、MyISAM、MEMORY)

MySQL是我們經常使用的資料庫處理系統(DBMS),不知小夥伴們有沒有注意過其中的“儲存引擎”(storage_engine)呢?有時候面試題中也會問道MySQL幾種常用的儲存引擎的區別。這次就簡短侃一下儲存引擎那些事兒。 先去查一下“引擎”概念。 引擎(Engin

MySQL技術內幕 InnoDB儲存引擎InnoDB體系架構

      後臺執行緒 1.Master Thread 2.IO Thread 3.Purge Thread 4.Page Cleaner Thread      記憶體     重做日誌在以下三

最全MySQL面試60題(含答案):儲存引擎+資料庫鎖+索引+SQL優化

Mysql中有哪幾種鎖? MyISAM支援表鎖,InnoDB支援表鎖和行鎖,預設為行鎖 表級鎖:開銷小,加鎖快,不會出現死鎖。鎖定粒度大,發生鎖衝突的概率最高,併發量最低 行級鎖:開銷大,加鎖慢,會出現死鎖。鎖力度小,發生鎖衝突的概率小,併發度最高 Mysql中有哪些

MySQL技術內幕:InnoDB儲存引擎MySQL儲存引擎

目錄   InnoDB儲存引擎 MyISAM儲存引擎 NDB儲存引擎 Memory儲存引擎 Archive 儲存引擎 Federated儲存引擎 Maria儲存引擎  其它儲存引擎   InnoDB儲存引擎

MySql資料庫儲存引擎(MyISAM與InnoDB

  MySql可以將資料以不同的技術儲存在檔案(記憶體)中,這種技術就稱為儲存引擎。而每一種儲存引擎也使用不同的儲存機制、索引技巧、鎖定水平,最終提供廣泛且不同的功能。常見的儲存引擎有MyISAM,InnoDB,Memory,Archive等。   本文主要介

MySQL架構設計——MyISAM儲存引擎InnoDB儲存引擎

——從MySQL5.1開始,MySQL引入了一個新的概念,外掛式儲存引擎體系結構。可以做到儲存引擎層與SQL層各自更為獨立,耦合更小,最重要的是方便了儲存引擎的載入與移出,可以做到執行時載入新的儲存引

MySQL使用儲存過程資料庫全部的表增加備用欄位

需求描述 要為資料庫裡的所有的表統一加上十六個備用欄位,前提是備用欄位名取表名前三位,拼接上備用1-16 , 16個欄位中,其中8個varchar, 4個int, 4個datetime 1.建立一個簡單的表 DROP TABLE customer_detail_info; C

更改mysql預設引擎Innodb

mysql預設是關閉InnoDB儲存引擎的使用的,將InnoDB設定為預設的引擎如下。1. 檢視mysql儲存引擎情況: mysql>show engines。 InnoDB | YES,說明此mysql資料庫伺服器支援InnoDB引擎。2. 設定InnoDB為預設引