成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > Sql Server查詢性能優(yōu)化之不可小覷的書簽查找介紹

Sql Server查詢性能優(yōu)化之不可小覷的書簽查找介紹

熱門標(biāo)簽:重慶防封電銷機(jī)器人供應(yīng)商 400電話申請(qǐng)需要開戶費(fèi)嗎 西安青牛防封電銷卡 威海智能語音外呼系統(tǒng) 溫州語音外呼系統(tǒng)代理 山西語音外呼系統(tǒng)價(jià)格 北京辦理400電話多少 南京電銷外呼系統(tǒng)運(yùn)營商 智能語音外呼系統(tǒng)哪個(gè)牌子好
小小程序猿SQL Server認(rèn)知的成長
1.沒畢業(yè)或工作沒多久,只知道有數(shù)據(jù)庫、SQL這么個(gè)東東,渾然分不清SQL和Sql Server Oracle、MySql的關(guān)系,通常認(rèn)為SQL就是SQL Server
2.工作好幾年了,也寫過不少SQL,卻渾然不知道索引為何物,只知道數(shù)據(jù)庫有索引這么個(gè)東西,分不清聚集索引和非聚集索引,只知道查詢慢了建個(gè)索引查詢就快了,到頭來索引也建了不少,查詢也確實(shí)快了,偶然問之:汝建之索引為何類型?答曰:。。。
3.終于受到刺激開始奮發(fā)圖強(qiáng),買書,gg查資料終于知道原來索引分為聚集索引和非聚集索引,頓時(shí)淚流滿面,嗚呼哀哉,吾終知索引為何物也。
4.再進(jìn)一步學(xué)習(xí)之亦知聚集索引為物理索引、非聚集索引為邏輯索引,聚集索引為數(shù)據(jù)的存儲(chǔ)順序,非聚集索引是邏輯索引既對(duì)聚集索引的索引
5.再往后學(xué)會(huì)了查看執(zhí)行計(jì)劃,通過查詢計(jì)劃終于對(duì)查詢過程有了大概了解,也知道了聚集索引掃描和表掃描沒有用到索引,看到聚集索引、索引查找高興的眉飛色舞,看到RID、鍵查找暗自竊喜,瞧,鍵查找肯定就是關(guān)鍵字查找了,用著索引呢,效率肯定高,于是每次寫完sql都要觀看下其執(zhí)行計(jì)劃,表掃描的干貨統(tǒng)統(tǒng)不要,俺只要索引查找、鍵查找。
6.自信滿滿的過著悠哉的小日子,突然有一天迷茫了,為嘛俺明明在這個(gè)字段上建立了索引,它她妹的老給我顯示聚集索引掃描的,難道查詢優(yōu)化器發(fā)燒了,實(shí)際執(zhí)行下,發(fā)現(xiàn)實(shí)際的執(zhí)行計(jì)劃還是表掃描,這下徹底迷惑了,興許是查詢優(yōu)化器顯示的有問題吧。
7.繼續(xù)深入學(xué)習(xí)終發(fā)現(xiàn),數(shù)據(jù)庫這潭水太深了,了解的太片面了,想想從猿到人的進(jìn)化過程吧,恩恩,現(xiàn)在就是一個(gè)靈智初開的程序猿,向著偉大的程序員奮勇前進(jìn)
恩恩,跑題了,進(jìn)入我們的主題:數(shù)據(jù)庫的書簽查找
認(rèn)識(shí)書簽查找
書簽查找這個(gè)詞可能對(duì)于很多開發(fā)人員比較陌生,很多人都遇到過,但是卻沒引起足夠的重視以至于一直都忽略它的存在了
定義:當(dāng)查詢優(yōu)化器使用非聚集索引進(jìn)行查找時(shí),如果所選擇的列或查詢條件中的列只部分包含在使用的非聚集索引和聚集索引中時(shí),就需要一個(gè)查找(lookup)來檢索其他字段來滿足請(qǐng)求。對(duì)一個(gè)有聚簇索引的表來說是一個(gè)鍵查找(key lookup),對(duì)一個(gè)堆表來說是一個(gè)RID查找(RID lookup),這種查找即是——書簽查找(bookmark lookup)。簡單的說就是當(dāng)你使用的sql查詢條件和select返回的列沒有完全包含在索引列中時(shí)就會(huì)發(fā)生書簽查找。
書簽查找的重要性
1.書簽查找發(fā)生條件:只有在使用非聚集索引進(jìn)行數(shù)據(jù)查找時(shí)才會(huì)產(chǎn)生書簽查找,聚集索引查找、聚集索引掃描和表掃描不會(huì)發(fā)生書簽查找。
2.書簽查找發(fā)生頻率:書簽查找發(fā)生頻率非常高,甚至可以說大部分查詢都會(huì)發(fā)生書簽查找,我們知道一個(gè)表只能建立一個(gè)聚集索引,所以我們的查詢更多的會(huì)使用非聚集索引,非聚集索引不可能覆蓋所有的查詢列,所以會(huì)經(jīng)常性產(chǎn)生書簽查找。
3.書簽查找的影響:導(dǎo)致索引失效的主要原因之一。書簽查找根據(jù)索引的行定位器從表中讀取數(shù)據(jù),除了索引頁面的邏輯讀取外,還需要數(shù)據(jù)頁面的邏輯讀取,如果查詢的結(jié)果返回?cái)?shù)據(jù)量較大會(huì)導(dǎo)致大量的邏輯讀或者索引失效,這也是為什么我們查看查詢計(jì)劃時(shí)有時(shí)明明在查詢列上建立了索引,查詢優(yōu)化器卻依然使用表掃描的原因。
4.如何消除書簽查找:
  1.使用聚集索引查找,聚集索引的葉子節(jié)點(diǎn)就是數(shù)據(jù)行本身,因此不存在書簽查找
  2.聚集索引掃描、表掃描,說白了就是啥索引都不建直接全表掃描,肯定不會(huì)發(fā)生書簽查找,不過效率嗎。。。
  3.使用非聚集索引的鍵列包含所有查詢或返回的列,這個(gè)不靠譜,非聚集索引最大鍵列數(shù)為16,最大索引鍵大小為900字節(jié),就算你有勇氣在16列上全部建立索引,那如果表的列數(shù)超過16列了你咋辦,還有索引列長度之和不能超過900字節(jié),所以不可能讓非聚集索引包含所有列,而且索引涉及到得列越多維護(hù)索引的開銷也就越大。
  4.使用include,嗯,這是個(gè)好東東,索引做到只能包含16列且不能超過900字節(jié),include不受此限制,最多可以包含1023列怎么也夠你用了,而且對(duì)長度也沒有限制你可以隨心所欲的包含nvarchar(max)這也的列,當(dāng)然了text之流就不要考慮了
  5.其它,其它還有神馬呢,這個(gè)我也不知道了,估計(jì)應(yīng)該、可能、大概木有了吧,若有知道的兄弟可以告訴我聲哈

可能上面說的有點(diǎn)抽象,我們開看看具體的例子
一般我們的數(shù)據(jù)庫都會(huì)建上聚集索引(一般大家喜歡建表時(shí)有用沒有肯定先來個(gè)自增ID列當(dāng)主鍵,這個(gè)主鍵SQL Server默認(rèn)就給你創(chuàng)建成聚集索引了),故我們這里都假設(shè)表上已經(jīng)建立了聚集索引,不考慮堆表(就是沒有聚集索引的表)

1.首先創(chuàng)建表Users、插入一些示例數(shù)據(jù)并建立聚集索引PK_UserID 非聚集索引IX_UserName
復(fù)制代碼 代碼如下:

--懶得的肥兔 --創(chuàng)建表Users
Create table Users
(
UserID int identity,
UserName nvarchar(50),
Age int,
Gender bit,
CreateTime datetime
)
--在UserID列創(chuàng)建聚集索引PK_UserID
create unique clustered index PK_UserID on Users(UserID)
--在UserName創(chuàng)建非聚集索引IX_UserName
create index IX_UserName on Users(UserName)

--插入示例數(shù)據(jù)
insert into Users(UserName,Age,Gender,CreateTime)
select N'Bob',20,1,'2012-5-1'
union all
select N'Jack',23,0,'2012-5-2'
union all
select N'Robert',28,1,'2012-5-3'
union all
select N'Janet',40,0,'2012-5-9'
union all
select N'Michael',22,1,'2012-5-2'
union all
select N'Laura',16,1,'2012-5-1'
union all
select N'Anne',36,1,'2012-5-7'

2.執(zhí)行以下查詢并查看查詢計(jì)劃,可以看到第一個(gè)SQL執(zhí)行聚集索引掃描,第二個(gè)SQL執(zhí)行聚集索引查找都沒有使用到書簽查找
復(fù)制代碼 代碼如下:

select * from Users
select * from Users where UserID=4


3.比較以下幾個(gè)查詢SQL,觀察其查詢計(jì)劃,思考下為什么會(huì)發(fā)生書簽查找
復(fù)制代碼 代碼如下:

--查詢1:使用索引IX_UserName,選擇列UserID,UserName,查詢條件列為UserName
select UserID,UserName from Users with(index(IX_UserName)) where UserName='Robert'

--查詢2:使用索引IX_UserName,選擇列UserID,UserName,Age,查詢條件列為UserName
select UserID,UserName,Age from Users with(index(IX_UserName)) where UserName='Robert'

--查詢3:使用索引IX_UserName,選擇列UserID,UserName,查詢條件列為UserName,Age
select UserID,UserName from Users with(index(IX_UserName)) where UserName='Robert' and Age=28

--查詢4:使用索引IX_UserName,選擇列所有列,查詢條件列為UserName
select * from Users with(index(IX_UserName)) where UserName='Robert'

分析:

  查詢1:選擇的列UserID是聚集索引PK_UserID的鍵列,UserName為索引IX_UserName的鍵列,查詢條件列為UserName,由于索引IX_UserName包含了查詢用到得所有列,所以僅需要掃描索引即可返回查詢結(jié)果,不需要再額外的去數(shù)據(jù)頁獲取數(shù)據(jù),故不會(huì)發(fā)生書簽查找

  查詢2:選擇列Age不包含在聚集索引PK_UserID和IX_UserName中,故需要進(jìn)行額外的書簽查找

  查詢3:查詢條件Age列不包含在聚集索引PK_UserID和IX_UserName中,故需要進(jìn)行額外的書簽查找

  查詢4:包含了所有的列,Age、Gender、CreateTime列均不在聚集索引PK_UserID和IX_UserName中,所以需要書簽查找以定位數(shù)據(jù)

 這里解釋下:查詢中用到的列無論是一列還是多列不在索引覆蓋范圍查詢開銷基本上一樣,每條記錄均只需要一次書簽查找開銷,不會(huì)說因?yàn)椴樵?只有一個(gè)Age列,查詢4有Age、Gender、CreateTime 3列不在索引覆蓋范圍而導(dǎo)致額外的開銷 

分析:
  查詢1:選擇的列UserID是聚集索引PK_UserID的鍵列,UserName為索引IX_UserName的鍵列,查詢條件列為UserName,由于索引IX_UserName包含了查詢用到得所有列,所以僅需要掃描索引即可返回查詢結(jié)果,不需要再額外的去數(shù)據(jù)頁獲取數(shù)據(jù),故不會(huì)發(fā)生書簽查找
  查詢2:選擇列Age不包含在聚集索引PK_UserID和IX_UserName中,故需要進(jìn)行額外的書簽查找
  查詢3:查詢條件Age列不包含在聚集索引PK_UserID和IX_UserName中,故需要進(jìn)行額外的書簽查找
  查詢4:包含了所有的列,Age、Gender、CreateTime列均不在聚集索引PK_UserID和IX_UserName中,所以需要書簽查找以定位數(shù)據(jù)

 這里解釋下:查詢中用到的列無論是一列還是多列不在索引覆蓋范圍查詢開銷基本上一樣,每條記錄均只需要一次書簽查找開銷,不會(huì)說因?yàn)椴樵?只有一個(gè)Age列,查詢4有Age、Gender、CreateTime 3列不在索引覆蓋范圍而導(dǎo)致額外的開銷  

書簽查找是怎么發(fā)生的

和許多人一樣看到大神們畫的二叉樹索引結(jié)構(gòu)圖就腦袋大,看得云里霧里,所以這里我們以表Users為例來說聚集索引(PK_UserID)和非聚集索引(IX_UserName)的結(jié)構(gòu)可以簡單的表示為下圖

首先我們來看聚集索引PK_UserID,對(duì)于聚集索引來說數(shù)據(jù)行就是其葉子節(jié)點(diǎn),故當(dāng)執(zhí)行聚集索引查找時(shí)找到了具體的鍵值后就可以直接去葉子節(jié)點(diǎn)獲取所有需要的數(shù)據(jù)不需要進(jìn)行額外的邏輯讀,比如select * from Users where UserID=2,根據(jù)值2在索引PK_UserID中找到UserID為2的值后去葉子節(jié)點(diǎn)就可以拿到所需數(shù)據(jù),然后返回查詢結(jié)果

然后看非聚集索引IX_UserName,上面我們說過非聚集索引覆蓋的列為非聚集索引的鍵列+包含的列+聚集索引的鍵列,對(duì)于IX_UserName來說就是如圖中所示鍵列UserName保存在索引的二叉樹節(jié)點(diǎn)中,聚集索引的列包含在其葉子節(jié)點(diǎn)中,這也就形成了對(duì)列(UserName,UserID)的覆蓋,對(duì)于查詢1(select UserID,UserName from Users with(index(IX_UserName)) where UserName='Robert')來說查詢只用到了UserName,UserID列,這樣只需要掃描索引IX_UserName即可拿到所有數(shù)據(jù)然后進(jìn)行結(jié)果返回,而對(duì)于查詢2、查詢3來說由于需要用到Age列,而索引IX_UserName中并沒有包含Age列,這時(shí)就需要個(gè)書簽查找(bookmark lookup)根據(jù)葉節(jié)點(diǎn)中的RowID去定位到具體的數(shù)據(jù)行獲取Age列值,對(duì)于示例查詢來說先根據(jù)索引IX_UserName定位Robert所在行,然后根據(jù)RowID=3去數(shù)據(jù)表里獲取Age值,然后完成查詢,對(duì)于查詢4來說需要更多的列(Age,Gender,CreateTime),同樣定位到Robert所在行RowID=3,去數(shù)據(jù)表一次性拿到Age,Gender,CreateTime數(shù)據(jù)然后返回,這樣就形成了書簽查找(查詢計(jì)劃中顯示為鍵查找或RID查找)

書簽查找的對(duì)查詢性能的影響
--這是我們現(xiàn)在使用的索引create index IX_UserName on Users(UserName)

打開IO統(tǒng)計(jì)并執(zhí)行下面兩個(gè)查詢
復(fù)制代碼 代碼如下:

--set statistics io onselect * from Users where UserName like 'ja%'select * from Users with(index(IX_UserName)) where UserName like 'ja%'


兩個(gè)查詢都返回2條數(shù)據(jù),聚集索引掃描僅僅2次邏輯讀,使用索引IX_UserName卻達(dá)到了6次的邏輯讀

我們示例的數(shù)據(jù)量比較小,所以感受不明顯,不過我們卻也看到了我們?cè)赨serName列上市建立了索引 IX_UserName,默認(rèn)情況下查詢優(yōu)化器并沒有使用我們的索引,而是選擇了表掃描,僅僅需要2次邏輯讀就拿到了我們需要的數(shù)據(jù),在我們使用索引提示強(qiáng)制查詢優(yōu)化器使用索引IX_UserName后,同樣也是返回2條數(shù)據(jù),邏輯讀缺達(dá)到了驚人的6次,看查詢計(jì)劃使用IX_UserName后發(fā)生了書簽查找,而這個(gè)開銷主要是有書簽查找造成的,而且隨著我們返回?cái)?shù)據(jù)量的增加,由書簽查找導(dǎo)致的邏輯讀將會(huì)成直線上升,造成的結(jié)果就是查詢開銷比進(jìn)行全表掃描還要大的多,最終導(dǎo)致索引失效

使用覆蓋索引避免書簽查找

覆蓋索引是指非聚集索引上的列(鍵列+包含列) + 聚集索引的鍵列包含了查詢中用到的所有列,對(duì)于索引IX_UserName來說索引覆蓋列就是(UserName,UserID)。若查詢中只用到了索引所覆蓋的列,那么只需掃描索引即可完成查詢,若用到了索引覆蓋范圍以外的列就需要書簽查找來獲取數(shù)據(jù),當(dāng)這種查找發(fā)生次較多時(shí)就會(huì)導(dǎo)致索引失效從而導(dǎo)致表掃描,因?yàn)椴樵儍?yōu)化器是基于開銷的優(yōu)化器,當(dāng)其發(fā)現(xiàn)使用非聚集索引引發(fā)的書簽查找開銷比表掃描開銷還大時(shí)就會(huì)放棄使用索引,轉(zhuǎn)向表掃描。

1.在UserName,Age列上重建索引IX_UserName,這時(shí)對(duì)于索引IX_UserName來說覆蓋列變?yōu)?UserName,Age,UserID),再次執(zhí)行上面的查詢SQL可以發(fā)現(xiàn)查詢計(jì)劃已經(jīng)發(fā)生變化
復(fù)制代碼 代碼如下:

drop index IX_UserName on Userscreate index IX_UserName on Users(UserName,Age)

我們可以看到查詢2、查詢3的書簽查找已經(jīng)消失,因?yàn)樗饕齀X_UserName包含了查詢中用到得所有列(UserID,UserName,Age),查詢4因?yàn)檫x擇返回所有列我們的索引沒有包含Gender和CreateTime列,故還是會(huì)進(jìn)行書簽查找

這時(shí)索引IX_UserName結(jié)構(gòu)表示如下

  
可見對(duì)于查詢2、查詢3僅僅通過索引IX_UserName既可以拿到需要的列UserName,Age,UserID,而對(duì)于查詢4索引并沒有全部覆蓋還是需要進(jìn)行書簽查找

2.繼續(xù)修改我們的索引IX_UserName,使用include包含非鍵列(鍵列就是索引上的列,非鍵列就是索引之外的列,對(duì)于include來說就是存放于非聚集索引葉子節(jié)點(diǎn)上的列,聚集索引的列也放在非聚集索引的葉子節(jié)點(diǎn)上)
復(fù)制代碼 代碼如下:

drop index IX_UserName on Userscreate index IX_UserName on Users(UserName,Age) include(Gender,CreateTime)


可以看到我們修改索引使用include包含了Gender,CreateTime后,索引IX_UserName達(dá)到了對(duì)數(shù)據(jù)表Users的所有列的全覆蓋,這時(shí)候毫無疑問的查詢2、查詢3沒有出現(xiàn)書簽查找,查詢4的書簽查找也消失了。

此時(shí)索引IX_UserName 結(jié)構(gòu)如下

索引IX_UserName已經(jīng)達(dá)到了對(duì)Users表的全覆蓋,對(duì)于我們的查詢2、查詢3、查詢4來說,僅通過索引IX_UserName即可完成查詢,不需要進(jìn)行書簽查找。

這時(shí)我們?cè)賮砜匆幌逻@兩個(gè)查詢的開銷及查詢計(jì)劃,可以看到不需要我們進(jìn)行索引提示,查詢優(yōu)化器已經(jīng)自動(dòng)選擇了我們的索引,邏輯讀也降至了2次

select * from Users where UserName like 'ja%'select * from Users with(index(IX_UserName)) where UserName like 'ja%'

關(guān)于Include請(qǐng)參考 SQL Server 索引中include的魅力(具有包含性列的索引)

  這里說明下書簽查找對(duì)查詢性能有著較大的影響并且基本上不可避免,這并不意味著書簽查找就是洪水猛獸,原來我們不是也不知道啥叫書簽查找么,查詢性能一樣也不差,是吧,呵呵。書簽查找也說明了為什么我們不推薦寫sql時(shí)使用select *,也解釋了為什么有時(shí)候我們的索引會(huì)失效,同時(shí)可以作為優(yōu)化查詢性能考慮的一個(gè)方面,在設(shè)計(jì)表和索引時(shí)盡量規(guī)避書簽查找?guī)淼呢?fù)面影響,比如非聚集索引盡量選擇高選擇性的列即返回盡量少的行,需要大批量數(shù)據(jù)查詢時(shí)盡量使用聚集索引等?! ?

  本文中為了便于演示僅僅使用了有幾條數(shù)據(jù)的表,而且查詢中為了使用索引都用了索引提示,實(shí)際開發(fā)中請(qǐng)不要使用索引提示,查詢優(yōu)化器大多數(shù)情況下會(huì)為我們生成最優(yōu)(最優(yōu)不代表開銷最小,只要開銷足夠小即認(rèn)為最優(yōu))的執(zhí)行計(jì)劃,索引結(jié)構(gòu)里面用到得RowID也僅僅是為了演示虛構(gòu)出來的,我們只要認(rèn)為它是對(duì)于數(shù)據(jù)行的一個(gè)標(biāo)識(shí)位就行了。

  此文旨在讓我們認(rèn)識(shí)書簽查找并意識(shí)到書簽查找的意義,從而對(duì)于索引失效原因有清晰的認(rèn)識(shí),更好的理解查詢計(jì)劃。
您可能感興趣的文章:
  • SQL Server里書簽查找的性能傷害

標(biāo)簽:新余 金昌 貸款群呼 黃山 河源 宜春 中衛(wèi) 濟(jì)寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Sql Server查詢性能優(yōu)化之不可小覷的書簽查找介紹》,本文關(guān)鍵詞  Sql,Server,查詢,性能,優(yōu)化,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Sql Server查詢性能優(yōu)化之不可小覷的書簽查找介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于Sql Server查詢性能優(yōu)化之不可小覷的書簽查找介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲欧洲高清| 欧美另类一区二区| 一区二区三区产品免费精品久久75| 人人在线97| 国产精品扒开腿做爽爽爽软件| www.欧美免费| 欧美成人bangbros| 在线免费国产视频| 黑人精品一区| 高潮毛片又色又爽免费| www.毛片.com| 成年黄网站在线观看免费| 色乱码一区二区三在线看| 久久777国产线看观看精品| 久久久人成影片一区二区三区观看| 先锋影音av中文字幕| 日本欧美韩国| 国产区视频在线播放| 一区二区不卡在线视频 午夜欧美不卡'| av丝袜在线| 二区三区中文字幕| 黄色精品免费| 亚洲精品国产一区二区| 久久久久久av无码免费网站下载| 韩国福利在线| 国产亚洲精品久久久久久无几年桃| 亚洲精品成av人片天堂无码| 99re视频在线观看| 国产91色在线观看| 日韩理论电影院| 欧美xxxx日本和非洲| 亚洲婷婷在线观看| 欧美精品一本久久男人的天堂| 久草综合在线视频| 欧美日韩亚洲一区二区| 一本久道久久综合狠狠爱亚洲精品| 日本h视频在线观看| 色综合久久av| 日本一级一片免费视频| 亚洲视频一区在线| 欧美性感一类影片在线播放| 一区二区三区在线不卡| 牛人盗摄一区二区三区视频| 国产精品毛片在线看| 2021天堂中文幕一二区在线观| 色婷婷综合久久久中字幕精品久久| 国产午夜一区二区| 精品国产乱码久久久久久1区2区| 91精品国产91久久综合桃花| 亚洲高清免费观看高清完整版在线观看| 男人的天堂一区二区| 成人在线视频福利| 亚洲最大福利视频网站| 亚洲天堂小视频| 亚洲欧美日韩一区在线观看| 亚洲国产精品久久久久秋霞不卡| 国产一区二区三区在线免费观看| 免费男女羞羞的视频网站中文字幕妖精视频| 色欲AV无码精品一区二区久久| 国产精品久久中文字幕| 亚洲精品一区在线观看香蕉| 欧美系列亚洲系列| 狠狠躁夜夜躁人人爽视频| 国产视频在线观看网站| 亚洲va欧美va人人爽午夜| 极品粉嫩国产18尤物| 九七影院97影院理论片久久| 国产精品美女久久久久av爽| 久久精品丝袜高跟鞋| av色在线观看| 青青草原在线亚洲| 成人妇女淫片aaaa视频| 亚洲在线偷拍自拍| 欧美综合亚洲图片综合区| 91麻豆一二三四在线| 99精品在免费线中文字幕网站一区| 中文在线a√在线8| 欧美亚洲色图校园春色| 香港伦理在线| 亚洲欧洲偷拍精品| 欧洲一级毛片| 国产精品无码一区二区三| 久久九九全国免费| 久久999免费视频| 国产女同性恋一区二区| 1024亚洲| 久久久久99精品成人片试看| 国产xxxx在线观看| 91日韩视频在线观看| 在线观看国产一区二区三区| 国产在线精品国自产拍免费| 午夜精品免费看| 亚洲国产日韩欧美一区二区三区| 性生交大片免费看l| 亚洲精品乱码久久久久| 午夜影院免费在线观看| 韩国中文免费在线视频| 久久视频免费在线播放| 成人av在线观| 777777国产7777777| 久久国产精品久久精品国产| 欧美成人精品一区二区男人小说| 国产一区二区在线|播放| 亚洲第一免费网站| 亚洲综合一区二区不卡| 欧美日韩激情视频在线观看| 成人精品动漫| 久久久久免费| www.四虎成人| 精品欧美日韩在线| 狂野欧美性猛交xxxx| 美女久久网站| 精品在线网站观看| 日韩欧美不卡一区| 免费看日本毛片| 日本久久久久久久| 国产日产在线观看| 菠萝蜜视频在线观看入口| 97超碰中文字幕| 超碰在线网站| 91av在线免费视频| 日本在线免费观看视频| 国产高中女学生第一次| 日韩欧美视频一区二区| 欧美激情视频一区二区三区| 第三区美女视频在线| 国产一区视频在线观看免费| aaa日本高清在线播放免费观看| 久热精品在线观看| 国产视频在线视频| 在线看黄色网| 国产一级片一区二区| 大奶在线精品| 亚洲精品一区二区三区四区高清| 亚洲人人精品| 少妇高潮一区二区三区69| 日本一区二区在线观看视频| 欧美一区二区三区爽爽爽| 女生裸体无遮挡天堂网站免费| 日产午夜精品一线二线三线| 国产欧美久久久久久| 久久av红桃一区二区禁漫| 日韩美女视频网站| 欧美唯美清纯偷拍| 欧美日韩精品一区二区三区视频播放| 亚洲国产一区二区三区a毛片| 国产美女永久免费| 久久众筹精品私拍模特| aaa欧美日韩| 国产高清精品软件丝瓜软件| 色综合天天综合网天天狠天天| 国内精品偷拍视频| 国产麻豆精品一区二区三区v视界| 久久中文字幕导航| 亚洲精品无码国产| 久热国产精品视频一区二区三区| www.超碰在线.com| 欧美三级乱人伦电影| 精品av综合导航| 日韩精品在线私人| 国产区视频在线观看| 精品视频免费在线播放| 欧美性高跟鞋xxxxhd| 女同性恋一区二区三区| 可以免费看不卡的av网站| 欧美久久一二三四区| 伊人天天久久大香线蕉av色| 久久免费黄色网址| 国产精品丝袜久久久久久app| www.xxxx欧美| 麻豆亚洲精品| 五月天丁香社区| 欧洲亚洲免费视频| 国产免费一区二区三区最新6| 日韩精品久久一区| 国产+成+人+亚洲欧洲| 粉嫩一区二区三区在线观看| 日韩爱爱小视频| 亚洲精品77777| 欧美一区二区三区播放老司机| 久久久久高清精品| 亚洲福利一区二区| 国产欧美精品在线播放| 夜夜狠狠擅视频| 国产成人禁片免费观看| 国产一区二区三区不卡在线| 窝窝社区一区二区| 国产日韩精品一区二区浪潮av| av中文字幕在线播放| 亚洲区小说区图片区qvod按摩| 美日韩在线视频| 欧美r级在线观看| 日韩精品中午字幕| 欧美在线观看视频一区二区三区| 免费看成人人体视频| 精品美女永久免费视频| 国产黄网在线观看| 久久av免费观看| 欧美aaaaaa| 在线视频精品一区| 久久久国产一区二区| 综合网插菊花| 有码中文亚洲精品| 91亚洲欧美| 免费网站你懂的| 日韩欧美在线观看一区二区| 欧美亚洲午夜视频在线观看| 伊人久久大香线蕉无限次| 色猫咪免费人成网站在线观看| 国产精品一区三区在线观看| 国产在线天堂www网在线观看| 欧美一区1区三区3区公司| 久久亚洲精品无码va白人极品| 久久久久久久久综合影视网| 日韩电影在线观看中文字幕| 播播国产欧美激情| 久久99国内| 久久久久久久久久久久久久久久久久久久| 国产伦精品一区二区三区免| 一区 二区 三区| 国产99视频在线| 日韩高清不卡av| 亚洲熟女一区二区三区| 日日干夜夜操| 欧美精品videossex88| 激情久久五月| 亚洲级视频在线观看免费1级| 一本岛在线视频| 国产在线不卡一卡二卡三卡四卡| 日本黄色女人| **欧美日韩vr在线| 丰满少妇一区二区三区专区| 欧美影院精品| 成熟丰满熟妇高潮xxxxx视频| av中文一区| 日韩一级片在线观看| 亚洲av成人精品一区二区三区| 91最新在线免费观看| 黄色激情网站| 亚洲一卡二卡在线观看| 天天色综合成人网| 亚洲国产日韩欧美| 四虎影视精品成人| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲欧美日韩成人在线| 亚洲午夜女主播在线直播| 国内精品**久久毛片app| 日韩欧美中文在线视频| 在线观看毛片网站| 最新在线中文字幕| 国产美女精品久久| 2020国产在线| 亚洲精品少妇| 亚洲女与黑人做爰| 天天噜噜噜噜噜噜| 久久九九亚洲综合| 亚洲人午夜射精精品日韩| 在线天堂av| 视频一区二区三区在线观看| 91精选在线| 成人黄色一级大片| 久久久国产精品x99av| 日本大香伊一区二区三区| 亚洲精品aⅴ中文字幕乱码| av色综合久久天堂av综合| 少妇视频一区| 一本色道久久hezyo无码| 飘雪影视在线观看免费观看| 亚洲一道本在线| 538国产精品一区二区免费视频| 国产激情网址| 亚洲欧美色一区| 丰满少妇一区二区三区专区| 欧美三级黄网| 亚洲最新av网址| 亚洲卡通动漫在线| 国产裸体免费无遮挡| 完全免费av在线播放| 久久婷婷蜜乳一本欲蜜臀| 在线播放一区二区精品产| 欧美色视频日本高清在线观看| 国产精品久久久久99| 欧美日韩在线播放一区二区| 亚洲狠狠爱一区二区三区| 成人h动漫精品一区二区下载| 久久久久国产一区二区三区四区| 日韩久久午夜影院| 污污片在线免费视频| 国产一区二区三区在线观看网站| 免费人成在线观看网站| 欧美在线激情视频| 成人av手机在线| 亚洲美女av电影| 一区二区三区中文字幕精品精品| 极品色av影院| 色猫视频免费观看| 欧美性猛交一区二区三区精品| www红色一片_亚洲成a人片在线观看_| 久久久久久久久精| 在线免费电影观看| 男人av在线播放| 久草在线在线| 亚洲欧美成人在线| 欧美aaa在线| 91精产国品一二三| 欧美~级网站不卡| 国产成人精品一区二区三区四区| 日韩精品视频在线观看一区二区三区| 欧洲杯足球赛直播| 亚洲成人激情综合网| 99久久久久久久久久| 波多野结衣在线aⅴ中文字幕不卡| 午夜精品免费| 国产99对白在线播放| 蜜桃传媒视频麻豆一区| 日本一区二区视频| 久久久久国产精品嫩草影院| 免费一级在线观看播放网址| 国产午夜精品一区在线观看| 在线观看欧美一区二区| 在线观看一区不卡| 久久久久久久久久91| 久久久久久久久99精品大| 欧美国产亚洲精品| 国产精品久久久久白浆| 欧美大片大片在线播放| 午夜国产精品视频免费体验区| 欧亚精品在线观看|