mysql的索引型別以及優缺點

2021-08-19 03:53:59 字數 2126 閱讀 7993

索引被用來快速找出在乙個列上用一特定值的行。沒有索引,mysql不得不首先以第一條記錄開始並然後讀完整個表直到它找出相關的行。

資料表越大,花費時間越多。如果表對於查詢的列有乙個索引,mysql能快速到達乙個位置去搜尋到資料檔案的中間,沒有必要考慮所有資料。

0、檢視索引  show index from 資料庫表名

1.普通索引

特點:是最基本的索引,它沒有任何限制。

2.唯一索引

特點:與前面的普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。

3.主鍵索引

特點;是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值。一般是在建表的時候同時建立主鍵索引

4.組合索引

特點:指多個欄位上建立的索引,只有在查詢條件中使用了建立索引時的第乙個字段,索引才會被使用。使用組合索引時遵循**最左字首**集合

例如:`alter table `table_name` add index index_name ( `column1`, `column2`, `column3` )`

這個表結構,每次使用索引的時候必須帶上最左側的索引值'column1',不然將會索引無效。

5.全文索引

從3.23.23版開始支援全文索引和全文檢索,fulltext,可以在char、varchar或text型別的列上建立。

1、key

首先要明確,key 是資料庫的物理結構,它包含兩層意義,一是約束(偏重於約束和規範資料庫的結構完整性),二是索引(輔助查詢用的)。包括primary key, unique key, foreign key 等。

2、index

index是資料庫的物理結構,它只是輔助查詢的,它建立時會在另外的表空間(mysql中的innodb表空間)以乙個類似目錄的結構儲存。索引要分類的話,分為字首索引、全文本索引等;因此,索引只是索引,它不會去約束索引的字段的行為。

3、key值(pri, uni, mul)

pri主鍵約束

uni唯一約束;

mul可以重複。(就是我們常說的index索引)

4、區別

當我們只是普通的建立索引的時候,此時的key和index是沒區別的。當我們建立唯一索引的時候,此時相當於同時使用key的uni模式限制欄位的唯一性,同時給該字段加上索引(index)模式。

所以就很明確了,key和index一直都是相輔相成的。特別是在我們建立索引的時候,我們就需要不同的key來約束索引的字段。

此處參考部落格:

mysql中key 、primary key 、unique key 與index區別

1.雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行insert、update和delete。因為更新表時,不僅要儲存資料,還要儲存一下索引檔案。

2.建立索引會占用磁碟空間的索引檔案。一般情況這個問題不太嚴重,但如果你在乙個大表上建立了多種組合索引,索引檔案的會增長很快。

索引只是提高效率的乙個因素,如果有大資料量的表,就需要花時間研究建立最優秀的索引,或優化查詢語句。

1、效能優化過程中,選擇在哪個列上建立索引是最重要的步驟之一。可以考慮使用索引的主要有兩種型別的列:在where子句中出現的列,在join子句中出現的列。

2、考慮列中值的分布,索引的列的基數越大,索引的效果越好。

3、使用短索引,如果對字串列進行索引,應該指定乙個字首長度,可節省大量索引空間,提公升查詢速度。

4、利用最左字首(一般是指聯合索引,也就是組合索引)

5、不要過度索引,只保持所需的索引。每個額外的索引都要占用額外的磁碟空間,並降低寫操作的效能。在修改表的內容時,索引必須進行更新,有時可能需要重構,因此,索引越多,所花的時間越長。

6、like語句操作

一般情況下不推薦使用like操作,如果非使用不可,如何使用也是乙個問題。like 「%aaa%」 不會使用索引而like 「aaa%」可以使用索引。

mysql博大精深,越學習越深感知識之無限。

end

MySQL備份型別 以及 優缺點

3.資料庫備份型別 一 按照資料庫的執行狀態分類 1 熱備 在資料庫執行時,直接進行備份,對執行的資料庫沒有影響 2 冷備 在資料庫停止執行的時候進行備份,這種備份方式最為簡單,只需要拷貝資料庫物理檔案即可。3 溫備 同樣是在資料庫執行的時候進行備份的,但對當前資料庫的操作會產生影響。資料庫熱備與冷...

mysql索引的型別和優缺點

今天同事問我關於mysql索引的事,我告訴他索引對於大資料量的查詢很有幫助,但對資料的修改和新增則有影響,今年1月份 大資料量的處理時我們就用到了新增索引,不過由於最近真正的開發不多,不少東西都忘了,所以回來趕緊複習一下。現在來介紹了資料庫索引,及其優 缺點。針對mysql索引的特點 應用進行了詳細...

mysql索引的型別和優缺點

轉的,寫的不錯.現在來介紹了資料庫索引,及其優 缺點。針對mysql索引的特點 應用進行了詳細的描 述。分析了如何避免mysql無法使用,如何使用explain分析查詢語句,如何優化mysql索引的應用。本文摘自 mysql 5權威指南 3rd 的8.9節。索引是一種特殊的檔案 innodb資料表上...