1. 程式人生 > 實用技巧 >高分子物理材料碩士是如何跨專業拿到頭條美團開發崗位offer的?這篇文章告訴你

高分子物理材料碩士是如何跨專業拿到頭條美團開發崗位offer的?這篇文章告訴你

技術標籤:資料庫

索引是什麼

索引(index)是在資料庫表的欄位中新增,是為了提高查詢效率存在的一種機制。
索引相當於書的目錄,為了縮小搜尋範圍而存在的一種機制。想要查詢表中的資料,有索引會精準查詢,效率更高。
任何資料庫中,主鍵會自動新增索引物件。
任何資料庫中,任何一張表中一行記錄在硬碟上儲存都有一個硬碟的物理儲存編號。
在MySQL中,索引是一個單獨的物件,不同的儲存引擎儲存方式不同。

一張表中索引個數

一張表中一個欄位可以新增一個索引,也可以多個欄位聯合起來新增索引。

mysql查詢方式

  1. 全表查詢
  2. 按照索引檢索。

索引也要排序

索引排序和TreeSet一樣。底層是自平衡二叉樹。遵循左小右大的原則,採用中序的遍歷方式。中序就是中左右的方式。

哪裡新增索引

在MySQL中,主鍵上以及unique欄位上都會自動新增索引。

  • 資料量龐大就新增索引,這個和硬體相關,硬體越牛逼,就不需要建立索引。
  • 該欄位經常出現在where 後面,以條件的形式存在。
  • 該欄位很少DML操作(insert,update,delerte),就要新增索引。
  • 子段的唯一性越高,新增索引查詢效率越高。

建立(新增)索引(index)

--給單一欄位新增索引
create index 索引名 on 表名(欄位);

--給多個欄位新增聯合索引
create index 索引名 on 表名(欄位1,欄位2...);

刪除索引

drop index 索引名 on 表名;
--這樣就刪除了一張表中某個索引

檢視一個SQL語句是否使用索引

explain select * from t_user where name = 'zhangsan';
--explain 加上查詢語句
--查詢語句前面加上explain

索引失效

  1. 模糊查詢以%開頭。例如 select name from t_user where name like '%san';
  2. .or兩邊欄位都有索引才會用索引,只要有一個沒有索引,那麼就不會優先使用索引查詢。
  3. 很多時候可以讓索引失效…請參考其他文章,視訊等。