開發日誌

回上一層 →

2020-05-27 後端工程師 alvin chiu 改善資料庫的效能 - MySQL索引介紹

Photo by Campaign Creators on Unsplash

 

前言

工程師一定都會遇到一個問題,當資料量越來越大時,如何改善專案的執行速度?除了學習演算法改善程式碼的寫法外,也有可能是SQL 在query時資料回傳的時間過長,導至程式因等不到資料庫資料而無法進行下一步。

所以就說個改善資料庫的簡單方法 - 索引

 


 

索引就像資料庫的目錄一樣。

想像今天字典的目錄頁因為某些因素破損無法使用,只能一頁一頁尋找要查的字,最終會花費較多的時間。

而資料庫也一樣

即使電腦的運算速度比人快很多,在遇到龐大的資料時一樣需要尋找的時間,這時候我們就幫資料庫加上目錄(索引),也就能加速查詢。

 

 

以MySQL為例

常見索引分為幾種類型

 

Primary 

使用主鍵索引意味著在該資料表內必須是獨一無二的值,且不能使用Null,通常用在資料表的id作為獨立的參考,使用整數型態且自動遞增,在設定主鍵時就會自動生成。

可參考下面兩種做法

 

 

Unique

與主鍵一樣必須是獨一無二的值,但可以使用Null,建立方式如下

 

Index

最常見的索引類型,在不屬於上述幾種情況下就會使用這種索引,通常會給索引一個名稱,在使用時可以對應。

建立的方法很簡單,可參考下面做法

 

 


索引正確的使用可以幫助資料庫在讀取時加速,但較小的table可以不使用,在讀取時的成效並不顯著。

 

參考自

資料庫索引的重要性

KeyData


專人服務

專人服務

LINE 立即聯繫