成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一分鐘了解索引技巧

開發 開發工具
啥?被查詢字段也要建立到索引中?下面,我們就用1分鐘時間,了解聚集索引,非聚集索引,聯合索引,索引覆蓋。

花1分鐘時間,了解聚集索引,非聚集索引,聯合索引,索引覆蓋。

索引/查詢/SQL

舉例,業務場景,用戶表,表結構為:

  1. t_user( 
  2. uid primary key, 
  3. login_name unique, 
  4. passwd, 
  5. login_time, 
  6. age, 
  7. … 
  8. ); 

聚集索引(clustered index):聚集索引決定數據在磁盤上的物理排序,一個表只能有一個聚集索引,一般用primary key來約束。

舉例:t_user場景中,uid上的索引。

非聚集索引(non-clustered index):它并不決定數據在磁盤上的物理排序,索引上只包含被建立索引的數據,以及一個行定位符row-locator,這個行定位符,可以理解為一個聚集索引物理排序的指針,通過這個指針,可以找到行數據。

舉例,查找年輕MM的業務需求:

  1. select uid from t_user where age > 18 and age < 26 

age上建立的索引,就是非聚集索引。

聯合索引:多個字段上建立的索引,能夠加速復核查詢條件的檢索

舉例,登錄業務需求:

  1. select uid, login_time from t_user where  
  2. login_name=? and passwd=? 

可以建立(login_name, passwd)的聯合索引。

聯合索引能夠滿足最左側查詢需求,例如(a, b, c)三列的聯合索引,能夠加速a | (a, b) | (a, b, c) 三組查詢需求。

這也就是為何不建立(passwd, login_name)這樣聯合索引的原因,業務上幾乎沒有passwd的單條件查詢需求,而有很多login_name的單條件查詢需求。

提問:

  1. select uid, login_time from t_user where 
  2. passwd=? and login_name=? 

能否***(login_name, passwd)這個聯合索引?

回答:可以,最左側查詢需求,并不是指SQL語句的寫法必須滿足索引的順序(這是很多朋友的誤解)

索引覆蓋:被查詢的列,數據能從索引中取得,而不用通過行定位符row-locator再到row上獲取,即“被查詢列要被所建的索引覆蓋”,這能夠加速查詢速度。

舉例,登錄業務需求:

  1. select uid, login_time from t_user where 
  2. login_name=? and passwd=? 

可以建立(login_name, passwd, login_time)的聯合索引,由于login_time已經建立在索引中了,被查詢的uid和login_time就不用去row上獲取數據了,從而加速查詢。

末了多說一句,登錄這個業務場景,login_name具備***性,建這個單列索引就好。

作業:

假設訂單有三種狀態:0已下單,1已支付,2已完成

業務需求,查詢未完成的訂單,哪個SQL更快呢?

  1. select * from order where status!=2 
  2. select * from order where status=0 or status=1 
  3. select * from order where status IN (0,1) 
  4. select * from order where status=0 
  5. union 
  6. select * from order where stauts=1 

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2022-07-18 06:16:07

單點登錄系統

2020-07-17 07:44:25

云計算邊緣計算IT

2020-07-09 07:37:06

數據庫Redis工具

2017-03-30 19:28:26

HBase分布式數據

2022-06-02 08:46:04

網卡網絡服務器

2016-09-14 15:57:53

架構分布式系統負載均衡

2020-05-21 19:46:19

區塊鏈數字貨幣比特幣

2018-06-26 05:23:19

線程安全函數代碼

2017-02-21 13:00:27

LoadAverage負載Load

2018-07-31 16:10:51

Redo Undo數據庫數據

2015-10-10 14:11:00

互聯網數據挖掘爬蟲

2020-01-30 11:26:17

QinQVLAN協議

2017-12-26 16:24:36

接口代碼數據

2018-01-14 23:19:25

靜態動態互聯網

2011-02-21 17:48:35

vsFTPd

2018-12-12 22:51:24

Java包裝語言

2016-09-12 17:28:45

云存儲應用軟件存儲設備

2019-12-24 09:10:43

Ipv6IP址協議

2017-05-23 16:13:45

2020-06-11 08:04:12

WDMDWDMMWDM
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美久久久网站 | 国产成人免费视频网站视频社区 | 亚洲精久久| 久久久久久久久久久高潮一区二区 | 欧洲一级黄 | 黑色丝袜三级在线播放 | 亚洲国产成人精品久久 | 国产在线不卡视频 | 久久国产精品一区二区三区 | 国产一二三区免费视频 | 欧美爱爱视频 | aaa一区| 国产98在线 | 免费, | 女同久久另类99精品国产 | 欧美一区二区三区一在线观看 | 日韩在线国产 | 欧美 日韩 亚洲91麻豆精品 | 久久av网 | 亚洲狠狠爱 | 精品一区二区三区四区 | 在线视频一区二区三区 | 国产高清视频一区 | 精品国产一区二区在线 | 精品国产欧美一区二区三区成人 | 爱爱视频在线观看 | 有码在线 | 福利在线观看 | 亚洲精品国产成人 | 亚洲一区在线日韩在线深爱 | 欧美午夜精品理论片a级按摩 | 午夜国产一级 | 一区二区三区高清 | h视频免费在线观看 | 精品国产乱码久久久久久果冻传媒 | 国产免费一区 | 日韩成人免费中文字幕 | 一区二区三区四区日韩 | 中文字幕日韩av | 日韩精品在线看 | 国产免费自拍 | 欧美日韩在线一区二区三区 |