成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

mysql數(shù)據(jù)庫中使用索引技巧有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹了mysql數(shù)據(jù)庫中使用索引技巧有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國電信/網(wǎng)通/移動機(jī)房,溫江服務(wù)器租用服務(wù)有保障!

花1分鐘時(shí)間,了解聚集索引,非聚集索引,聯(lián)合索引,索引覆蓋。

舉例,業(yè)務(wù)場景,用戶表,表結(jié)構(gòu)為:

t_user(

uid primary key,

login_name unique,

passwd,

login_time,

age,

…

);

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

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

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

舉例,查找年輕MM的業(yè)務(wù)需求:

select uid from t_user where age > 18 and age < 26;

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

聯(lián)合索引:多個(gè)字段上建立的索引,能夠加速復(fù)核查詢條件的檢索

舉例,登錄業(yè)務(wù)需求:

select uid, login_time from t_user where 

login_name=? and passwd=?

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

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

這也就是為何不建立(passwd, login_name)這樣聯(lián)合索引的原因,業(yè)務(wù)上幾乎沒有passwd的單條件查詢需求,而有很多l(xiāng)ogin_name的單條件查詢需求。

提問:

select uid, login_time from t_user where

passwd=? and login_name=?

能否命中(login_name, passwd)這個(gè)聯(lián)合索引?

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

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

舉例,登錄業(yè)務(wù)需求:

select uid, login_time from t_user where

login_name=? and passwd=?

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

末了多說一句,登錄這個(gè)業(yè)務(wù)場景,login_name具備性,建這個(gè)單列索引就好。

作業(yè):

假設(shè)訂單有三種狀態(tài):0已下單,1已支付,2已完成

業(yè)務(wù)需求,查詢未完成的訂單,哪個(gè)SQL更快呢?

select * from order where status!=2

select * from order where status=0 or status=1

select * from order where status IN (0,1)

select * from order where status=0

union

select * from order where stauts=1

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“mysql數(shù)據(jù)庫中使用索引技巧有哪些”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

網(wǎng)頁名稱:mysql數(shù)據(jù)庫中使用索引技巧有哪些-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://jinyejixie.com/article22/ggdjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司外貿(mào)建站、企業(yè)網(wǎng)站制作、關(guān)鍵詞優(yōu)化、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
黄石市| 天台县| 陆丰市| 大宁县| 昔阳县| 海安县| 原平市| 和平区| 禄丰县| 容城县| 永清县| 息烽县| 东安县| 北川| 临朐县| 呼图壁县| 桑日县| 汝南县| 承德县| 平和县| 勐海县| 女性| 枞阳县| 基隆市| 鹤岗市| 汤原县| 鹤山市| 革吉县| 沁源县| 张北县| 五常市| 吉林省| 邮箱| 衡水市| 历史| 栾城县| 乌兰县| 麻江县| 淮南市| 额敏县| 彭州市|