後端工程師必備知識:數據庫索引講座

後端工程師必備知識:數據庫索引數據庫

咱們常常在後端工程師的招聘信息上看到諸如「熟悉 SQL 語句優化」、「瞭解數據庫和索引原理」這樣的要求,這是由於後端工程師最主要的工做就是和數據打交道,當數據達到必定規模以後就會對性能有必定要求,而正確地創建和使用索引是優化數據庫性能時最早應該被考慮到的、最簡單有效的方式。segmentfault

不少人對於索引的概念僅僅停留在「有索引會快」,但至於爲何快,甚至一個查詢究竟能不能用上索引,則瞭解得不夠清楚。後端

提及來在中文社區中,對於 每種類型的索引可以適用於什麼樣的查詢 的資料仍是比較少的,不少文章只是一筆帶過、抄來抄去。所以我收集了不少資料,與朋友同事進行討論,最後製做了這個小系列,內容包括:緩存

  • 索引對性能的影響(正確的索引能夠給查詢性能帶來數量級的提高)
  • B-Tree(能夠將索引看做有序的列表,咱們能夠在上面進行相似二分查找的快速搜索)
  • 單列索引適用的查詢(全匹配、前綴匹配、範圍查詢、排序)
  • 單列索引不適用的查詢(後綴匹配)
  • 索引的屬性(主鍵、彙集、惟1、稀疏)
  • 區分度(一個字段上的值之間有多麼不一樣)
  • 複合索引的概念(多個字段構成的索引)
  • 複合索引適用的查詢(多字段全匹配、匹配的同時範圍查詢或排序、只使用左側的字段等)
  • 複合索引不適用的查詢(直接使用右側的字段、範圍查詢或排序字段不在最右側等)
  • 最左匹配原則(順序對於複合索引很是重要)
  • 自動建立索引的一些嘗試
  • 找到沒有使用索引的查詢(Slow Query 和 EXPLAIN)
  • JOIN 查詢與索引
  • 對數據庫進行性能優化的順序(建立索引、添加緩存、調整查詢、調整數據結構)

這個講座分爲上下兩集,總計一小時,由於是錄播,已將不流暢的部分剪輯掉了,信息密度比較高。適合有必定後端開發和數據庫(MySQL 或 MongoDB)使用經驗,即將獨立面對較高數據量站點的維護,或對數據庫索引有興趣的開發者收看:講座連接,若有相關問題歡迎在 SegmentFault 上留言交流。性能優化

相關文章
相關標籤/搜索