久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL Server索引的原理深入解析

2024-08-31 01:05:23
字體:
供稿:網(wǎng)友

前言

此文是我之前的筆記整理而來,以索引為入口進行探討相關(guān)數(shù)據(jù)庫知識(又做了修改以讓人更好消化)。SQL Server接觸不久的朋友可以只看以下藍色字體字,簡單有用節(jié)省時間;如果是數(shù)據(jù)庫基礎(chǔ)不錯的朋友,可以全看,歡迎探討。

索引的概念

索引的用途:我們對數(shù)據(jù)查詢及處理速度已成為衡量應(yīng)用系統(tǒng)成敗的標準,而采用索引來加快數(shù)據(jù)處理速度通常是最普遍采用的優(yōu)化方法。

索引是什么:數(shù)據(jù)庫中的索引類似于一本書的目錄,在一本書中使用目錄可以快速找到你想要的信息,而不需要讀完全書。在數(shù)據(jù)庫中,數(shù)據(jù)庫程序使用索引可以重啊到表中的數(shù)據(jù),而不必掃描整個表。書中的目錄是一個字詞以及各字詞所在的頁碼列表,數(shù)據(jù)庫中的索引是表中的值以及各值存儲位置的列表。

索引的利弊:查詢執(zhí)行的大部分開銷是I/O,使用索引提高性能的一個主要目標是避免全表掃描,因為全表掃描需要從磁盤上讀取表的每一個數(shù)據(jù)頁,如果有索引指向數(shù)據(jù)值,則查詢只需要讀少數(shù)次的磁盤就行啦。所以合理的使用索引能加速數(shù)據(jù)的查詢。但是索引并不總是提高系統(tǒng)的性能,帶索引的表需要在數(shù)據(jù)庫中占用更多的存儲空間,同樣用來增刪數(shù)據(jù)的命令運行時間以及維護索引所需的處理時間會更長。所以我們要合理使用索引,及時更新去除次優(yōu)索引。

1.聚集索引和非聚集索引

索引分為聚集索引和非聚集索引

1.1 聚集索引

表的數(shù)據(jù)是存儲在數(shù)據(jù)頁中(數(shù)據(jù)頁的PageType標記為1),SqlServer一頁是8k,存滿一頁就開辟下一頁存儲。如果表有聚集索引,那么一筆一筆物理數(shù)據(jù)就是按聚集索引字段的大小升/降排序存儲在頁中。當(dāng)對聚集索引字段更新或中間插入/刪除數(shù)據(jù)時,都會導(dǎo)致表數(shù)據(jù)移動(造成性能一定影響),因為它要保持升/降排序。

注意,主鍵只是默認是聚集索引,它也可以設(shè)置為非聚集索引,也可以在非主鍵字段上設(shè)置為聚集索引,全表只能有一個聚集索引。

一個優(yōu)秀的聚集索引字段一般包含以下4個特性:

(A).自增長

總是在末尾增加記錄,減少分頁和索引碎片。

(B).不被更改

減少數(shù)據(jù)移動。

(C).唯一性

唯一性是任何索引最理想的特性,可以明確索引鍵值在排序中的位置。

更重要的是,索引鍵指唯一的話,它在每條記錄里才可以正確指向源數(shù)據(jù)行RID。如果聚集索引鍵值不唯一,SqlServer就需要內(nèi)部生成uniquifier 列組合當(dāng)作聚集鍵保證“鍵值”唯一性;如果非聚集索引鍵值不唯一,就會增加RID列(聚集索引鍵或者堆表中的行指針)保證“鍵值”唯一性。

思考(可略過):索引“鍵值”在非葉子節(jié)點也有保證唯一性,原因應(yīng)該是為了明確索引記錄在非葉子節(jié)點中的位置。比如有個非聚集索引字段Name2,表中有很多Name2='a'的記錄,導(dǎo)致Name2='a'在非葉子節(jié)點上有多條索引記錄(節(jié)點),這時候再insert一筆Name2=‘a'的記錄時,就可以根據(jù)非葉子節(jié)點的RID和新增記錄的RID很快確定要insert到哪個索引記錄(節(jié)點)上,如果沒有非葉子節(jié)點的RID,那得遍歷到所有Name2='a'的葉子節(jié)點才能確定位置。另外,當(dāng)我們select * from Table1 where Name2<='a'時,返回的數(shù)據(jù)是按非聚集索引Name2和RID排序的,很好理解返回的數(shù)據(jù)就是按這邊索引存儲的順序排序的。這是這條sql查詢時有用到Name2索引的結(jié)果,如果數(shù)據(jù)庫查詢計劃因“臨界點”問題選擇直接表數(shù)據(jù)掃描,那返回的數(shù)據(jù)默認就是按表數(shù)據(jù)的順序排序的。

為了“鍵值”唯一性,對于聚集索引,uniquifier 列只在索引值重復(fù)時增加。對于非聚集索引,如果創(chuàng)建索引時沒定義唯一,RID會在所有記錄增加,就算索引值是唯一的;如果創(chuàng)建索引時定義唯一,RID只在葉子層增加,用于查找源數(shù)據(jù)行,即書簽查找操作。

(D).字段長度小

聚集索引鍵長度越小,一頁索引頁就可以容納更多索引記錄,進而減少索引B樹結(jié)構(gòu)的深度。例如,一個百萬記錄的表有一個int聚集索引,可能只需要3層的B樹結(jié)構(gòu)。如果把聚集索引定義在更寬的列(比如uniqueidentifier列需要16 字節(jié)),那么索引的深度會增加到4層。任何聚集索引查找需要4個I/O操作(確切的說是4個邏輯讀),原先只要3個I/O操作。
同樣,非聚集索引里會包含聚集索引鍵值,聚集索引鍵長度越小非聚集索引記錄也就越小,一頁索引頁就可以容納更多索引記錄。

1.2 非聚集索引

也是存儲在頁中(PageType標記為2的頁,叫索引頁)。比如表T建立了一個非聚集索引Index_A,那么表T有100條數(shù)據(jù)的話,那么索引Index_A也就有100條數(shù)據(jù)(準確的說是100條葉子節(jié)點數(shù)據(jù),索引是B樹結(jié)構(gòu),如果樹的高度大于0,那么就有根節(jié)點頁或中間節(jié)點頁數(shù)據(jù),這時索引數(shù)據(jù)就超過100條),如果表T還有非聚集索引Index_B,那么Index_B也是至少100條數(shù)據(jù),所以索引建越多開銷越大。

更新索引字段、插入一條數(shù)據(jù)、刪除一條數(shù)據(jù)都會造成索引的維護從而造成性能的一定影響。在不同情況下,性能影響是不同的。比如當(dāng)你有一個聚集索引,插入的數(shù)據(jù)又都是在末尾,這樣幾乎是不會造成數(shù)據(jù)移動,影響較小;如果插入的數(shù)據(jù)在中間位置,一般會導(dǎo)致數(shù)據(jù)移動,而且可能產(chǎn)生分頁和頁碎片,影響就會稍大一點(如果插入到的中間頁有足夠的剩余空間容納插入的數(shù)據(jù),而且位置是在頁末,也是不會造成數(shù)據(jù)移動)

2.索引的結(jié)構(gòu)

都說SqlServer的索引是B樹結(jié)構(gòu)(這邊假定你對B樹結(jié)構(gòu)有一定了解),那它到底長什么個模樣呢,可以用Sql語句來查看它的邏輯呈現(xiàn)。

新建查詢執(zhí)行語法: DBCC IND(Test,OrderBo,-1) --其中Test庫的OrderBo表有1萬筆數(shù)據(jù),有聚集索引Id主鍵字段
(不妨自己動手建個表,有聚集索引字段,插入1萬表數(shù)據(jù),然后執(zhí)行這個語法看看,會收獲很多,百聞不如一見)

執(zhí)行結(jié)果:

SQLServer,索引

如上圖,看到一個IndexLevel=2的索引頁2112(這邊它就是B樹的根節(jié)點,IndexLevel最大的就是根節(jié)點,往下就是子級、子子級...只有一個根頁作為B樹結(jié)構(gòu)的訪問入口點),說明一定還有IndexLevel=1的索引頁和IndexLevel=0的葉子頁。由于這邊是聚集索引,因此當(dāng)IndexLevel=0的葉子頁就是數(shù)據(jù)頁,存儲的是一筆一筆的物理數(shù)據(jù)。如上圖也可以看到,IndexLevel=0的行的PageType等于1,就是代表數(shù)據(jù)頁,上面1.1章節(jié)講到聚集索引時,也有提到PageType=1;而如果是非聚集索引,IndexLevel=0的葉子頁,PageType是等于 2,仍然是索引頁。

同樣,我們用Sql命令DBCC PAGE看一看

-- DBCC TRACEON(3604,-1) DBCC PAGE(Test,1,2112,3)  --根節(jié)點2112,可以查出它的兩個子節(jié)點2280和2448,然后對這兩個子節(jié)點再作DBCC PAGE查詢DBCC PAGE(Test,1,2280,3) DBCC PAGE(Test,1,2448,3)

SQLServer,索引

如上圖,IndexLevel=2的2112頁有兩個IndexLevel=1的子節(jié)點2280和2448,子節(jié)點下又有子節(jié)點,每個節(jié)點負責(zé)不同的索引鍵值的區(qū)間(即上圖的“Id(key)”欄位,第一行值是Null,表示最小值或倒序時的最大值)。這樣的層級關(guān)系是不是就是一棵B樹結(jié)構(gòu),其中IndexLevel其實就是B樹結(jié)構(gòu)中的高度Height。

SqlServer在索引中查找某一筆記錄時,是從根節(jié)點往下找到葉子節(jié)點,因為所有數(shù)據(jù)地址都有存在葉子節(jié)點,這其實是B+樹的特點之一(B樹特點是如果查找的值在非葉子節(jié)點就找到,則就能直接返回,顯然SqlServer不是這么做,要驗證這一點你可以set statistics io on把統(tǒng)計開起來,然后select看下邏輯讀的次數(shù))。

既然一定會找到葉子節(jié)點,那么索引包含列只要在葉子節(jié)點記錄就可以了,即非葉子節(jié)點沒有記錄包含列,“索引包含列”見下文第3章節(jié)。

B+樹這個特點(所有數(shù)據(jù)地址都有存在葉子節(jié)點)也利于between value1 and value2 區(qū)間查詢,只要找到value1和value2(在葉子節(jié)點),然后把中間串起來就是要的結(jié)果了。

SqlServer索引結(jié)構(gòu)更像是B+樹,最終是B樹和B+樹的混合版,數(shù)據(jù)結(jié)構(gòu)都是人定的,不一定就是純粹的B樹或者單純的B+樹。

3.索引包含列和書簽查找

談到索引,這邊再講一個SqlServer2005開始增加的“索引包含列”功能,很實用。

比如,在大報表查詢數(shù)據(jù)時,where條件用到索引字段Name2,但是要select的字段是Name1,這時候可以使用“索引包含列”把Name1包含在索引字段Name2中,大大提高查詢性能。

語法: Create [UNIQUE]  Nonclustered/Clustered Index IndexName On dbo.Table1(Name2) Include(Name1);

接下來分析為什么索引包含列可以大大提高性能。仍然使用DBCC PAGE命令,查看一個非聚集索引并有包含列的索引數(shù)據(jù)情況:

SQLServer,索引

由上圖可知,包含列Name1也存儲在索引數(shù)據(jù)中。因此,當(dāng)數(shù)據(jù)庫用索引字段Name2定位到要查找的某一行時,就可以直接把Name1的值返回了,而不用再根據(jù)RID(上圖是【HEAP RID(Key)】列)定位到數(shù)據(jù)頁中去取值,即減少了書簽查找。當(dāng)查詢只返回一條數(shù)據(jù),只有一次書簽查找時當(dāng)然沒什么,如果查詢返回的數(shù)據(jù)很大,每一筆都要去數(shù)據(jù)頁找數(shù)據(jù)取出來,1000筆就是1000次書簽查找,可想而知性能消耗很大,這時候“索引包含列”價值就大大體現(xiàn)出來了。

關(guān)于一次書簽查找,表有聚集索引(比如Id)時就是類似執(zhí)行了一次 select Name1 from Table1 where Id=1 ,利用聚集索引鍵Id查找(查找方式就是索引Id的B樹結(jié)構(gòu)查找),而如果表沒有聚集索引,則是根據(jù)數(shù)據(jù)行指針(由“文件號2byte:頁號4byte:槽號2byte”組成)查找。聚集索引鍵和行指針一般統(tǒng)稱為RID(Row ID)指針。從這里我們可以想到,如果你的表沒有很好的聚集索引字段,建議自增長的Id字段做聚集索引主鍵(冗余出Id字段也行),它符合自增長、不被更改、唯一性、長度小的特性,是聚集索引的很好選擇。

自增長Id絕大部分情況下是適用的,特殊的情況看具體需求而定吧。還有自增長Id要考慮一個缺陷,當(dāng)對表大數(shù)據(jù)量的并發(fā)insert記錄時,可以想象每個線程都是要insert到末尾那個頁,就會發(fā)生競爭和等待。解決這種情況你可以用uniqueidentifier類型字段(16字節(jié),我是不建議使用)或者哈希分區(qū)(就是一個表分成多個表,大數(shù)據(jù)處理中分庫分表是正常的)等。但是我建議先優(yōu)化你的insert效率(insert性能本身是很快的),測試每秒并發(fā)insert數(shù)是否滿足生產(chǎn)環(huán)境,以保留簡單穩(wěn)定高效的自增長Id作法。

自增長Id不一定就是用數(shù)據(jù)庫提供的自增長,你也可以自己寫算法生成一個并發(fā)情況下也能唯一的Id(這時候一般長度是bitint,8字節(jié)整形),這種情況適合場景是分布式數(shù)據(jù)庫中主從復(fù)制時Id欄位是要求一定不能出錯的情況(主從復(fù)制的一般模式下,主庫的Id是按主庫增長,從庫Id也是按從庫自己的增長,如果遇到死鎖等原因?qū)е轮鲝膹?fù)制不同步時,那從庫的Id就和主庫的Id自增長就對不上號了)。如果自增長Id是冗余出的主鍵,那主從庫Id對不上號也就無影響。

另外,上圖最后一列【Row Size】還告訴我們,索引列或索引包含列的size不要太長,否則一頁容不了幾筆記錄,這樣大大增加了索引頁數(shù)量,而且索引數(shù)據(jù)所占的空間也大大增加了。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到MSSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
色综合天天天天做夜夜夜夜做| 亚洲色图18p| 日韩精品中文字幕在线| 色爱区成人综合网| 国产大片中文字幕在线观看| 中文字幕av一区二区三区高| 97久久精品国产| 国产欧美精品一区二区三区-老狼| 成人精品视频一区二区三区| 免费成人黄色大片| 国产经典一区二区| 91黄色免费看| 99久久久久久久| 欧美午夜精品久久久久久浪潮 | 中国成人在线视频| 天天看片中文字幕| 看免费黄色录像| 夜夜亚洲天天久久| 日韩av电影免费观看| 国产美女三级无套内谢| 亚洲成人网在线| 777视频在线| 国产高清在线精品| 日韩在线观看免费全集电视剧网站 | av一区二区在线看| 欧美日韩中文视频| 日韩欧美国产一区二区三区 | a级大片免费看| 99国产精品久久久久| 97在线视频观看| 一区二区三区影视| 日韩精品专区在线影院观看| 欧美专区第二页| 亚洲超碰97人人做人人爱| 在线综合视频网站| 丁香婷婷综合激情五月色| 亚洲综合中文字幕68页| 黑人精品一区二区| 2020国产精品视频| 国产又大又黄又爽| 国产精品欧美久久久| 欧美性猛交乱大交| 欧美巨大另类极品videosbest| 能看毛片的网站| 色综合天天综合狠狠| 国产chinese中国hdxxxx| 精品福利樱桃av导航| 一区二区三区四区免费观看| 全部毛片永久免费看| 久久久精品亚洲| 亚洲欧美日韩激情| 日韩视频在线一区| 亚洲区免费视频| 亚洲精品国偷自产在线99热| 91狠狠综合久久久| 欧美激情xxxx性bbbb| 亚洲av无码片一区二区三区| 亚洲综合一区二区不卡| www.com欧美| 狠狠色综合色区| 欧美国产日韩亚洲一区| 午夜剧场高清版免费观看| 欧美在线视频你懂得| 色姑娘综合天天| 国产香蕉精品视频一区二区三区 | 中文字幕国产日韩| 国产情侣自拍小视频| 国模精品一区二区三区| 中文字幕一区二区视频| 大j8黑人w巨大888a片| 欧美日韩一区高清| 久久久久99精品成人片我成大片 | 成人毛片18女人毛片| 亚洲欧美在线第一页| 亚洲综合免费视频| 鲁丝一区鲁丝二区鲁丝三区| 亚洲欧美另类在线| 登山的目的在线| 国产不卡在线观看| 国产欧美一区视频| 欧美成人另类视频| 91天堂在线视频| 亚洲综合免费观看高清完整版| 国产精品成人99一区无码| 97**国产露脸精品国产| 久久美女艺术照精彩视频福利播放| 中文字幕av观看| 国产精品一区二区久久久| 国产高清无密码一区二区三区| 在线观看亚洲色图| 久久久久久久av| 91一区一区三区| 女人裸体性做爰全过| 美女主播视频一区| 日韩精品免费在线播放| 国产乱码精品1区2区3区| 在线视频91| 色综合伊人色综合网| 偷拍精品一区二区三区| 一起操在线视频| 国产精品一区久久| 欧美日韩在线观看一区二区| 日本美女一区二区| 日韩综合第一页| 久久伦理网站| 欧美人在线视频| 欧美天天综合色影久久精品| 成人免费一级视频| 一级黄色录像毛片| 国产一区二区免费电影| 亚洲色图偷窥自拍| 国产宾馆实践打屁股91| 四虎成人精品永久免费av| 国产一区视频免费观看| 超碰97在线资源| 在线观看日韩av先锋影音电影院| 老司机午夜精品| 精品国产青草久久久久96| 小毛片在线观看| 亚洲三区在线| 人妖精品videosex性欧美| 亚洲成色999久久网站| 一区二区中文字幕在线| 国产人妖一区二区| 99久久综合网| 人妻久久久一区二区三区| 国内外成人免费激情在线视频| 国产精品久久三区| 久久99久久久欧美国产| 中文字幕在线一| 日韩av黄色片| 日韩少妇一区二区| 欧美精品性生活| 美女在线免费视频| 国产精品91久久| 亚洲欧美中文日韩在线v日本| 91国产丝袜在线播放| 1000精品久久久久久久久| 国产乱码精品一区二区三区av| 日本不卡一二区| 国产精品久久久免费看| 偷拍夫妻性生活| 欧洲女同同性吃奶| av漫画在线观看| 日韩av成人网| 奇米777在线视频| mm1313亚洲国产精品无码试看| www.射射射| 日韩av资源在线| 美女网站免费观看视频| 久久久久久久亚洲精品| 国模精品视频一区二区| 国产91精品久久久久久| 亚洲午夜精品久久久久久久久久久久| 欧美一区二区国产| a级片一区二区| 国产乱淫片视频| 国产午夜麻豆影院在线观看| 日本三级黄色大片| 国产黄色免费观看| 99精品视频中文字幕| 99精品视频一区| 久久精品一区二区三区不卡牛牛 | 成人h视频在线| 国产69精品久久久久9999| 欧美综合一区第一页| 99在线观看| 中国成人亚色综合网站| 国产亚洲天堂网| 六月婷婷七月丁香| xx欧美撒尿嘘撒尿xx| 加勒比精品视频| 强行糟蹋人妻hd中文| 一卡二卡三卡在线| 男人的天堂久久精品| 波多野结衣在线一区| 中文字幕日本乱码精品影院| 欧美综合一区二区三区| 欧美日韩在线播放一区| 精品久久一区二区三区蜜桃| 天堂资源在线亚洲视频| 成人一区二区三| 亚洲日本精品视频| www.久久久久久| 日本一区二区三区在线不卡 | 人人精品人人爱| 欧美激情一区二区三区蜜桃视频| 色综合久久久久| 亚洲欧美精品一区二区| 国产91在线高潮白浆在线观看| 日本午夜一区二区三区| 日本成人在线免费| 国产黄色片视频| 另类成人小视频在线| 成人福利视频网站| 久久伊人中文字幕| 午夜一区二区三区视频| 久久九九免费视频| 欧美不卡三区| 午夜免费福利视频在线观看| 亚洲欧美另类在线视频| 99热精品国产| 亚洲网站在线播放| 国产日韩欧美电影在线观看| 日日噜噜夜夜狠狠| www.污视频| 天天做天天摸天天爽国产一区| 亚洲色图25p| 男人的天堂视频在线| 圆产精品久久久久久久久久久| 久久无码av三级| 欧美尺度大的性做爰视频| 日韩a∨精品日韩在线观看| 国产免费一区二区三区四区五区| 亚洲精品成人悠悠色影视| 综合国产在线观看| 大荫蒂性生交片| 一区二区三区亚洲视频| 国产麻豆一精品一av一免费| 国产精品一区二区久久精品爱涩| 欧美日韩精品国产| 这里只有精品丝袜| 九九爱精品视频| av无码精品一区二区三区宅噜噜| 精品国产31久久久久久| 国产不卡一区二区三区在线观看| 国产亚洲精品成人a| 久久久99精品免费观看不卡| 成人免费午夜电影| 国产一区二区三区影院| 欧美一区二区国产| av在线网址导航| 国产精品国产三级国产三级人妇| **亚洲第一综合导航网站| 亚洲天堂aaa| 久久精品中文字幕一区| 韩国无码一区二区三区精品| 欧美日韩中国免费专区在线看| 精品视频在线观看一区二区| 日韩av中文字幕一区二区三区 | 亚洲人成色777777精品音频| 久久这里有精品视频| 久久久精品91| 国产亚洲综合久久| 人妻无码一区二区三区免费| 欧美一级一级性生活免费录像| 在线观看欧美一区二区| 色视频一区二区| 欧美体内she精高潮| 欧美色国产精品| 亚洲中文字幕无码av| 在线不卡的av| 青青青视频在线播放| 日韩电影中文字幕一区| 国产稀缺精品盗摄盗拍| 久久在线观看视频| 亚洲天堂男人网| 成人女保姆的销魂服务| 国内不卡的二区三区中文字幕| 欧美欧美一区二区| 国产精品 日产精品 欧美精品| 久久成人资源| 国产精品国产三级国产三级人妇| 国产av无码专区亚洲精品| 亚洲成va人在线观看| 少妇献身老头系列| 精品偷拍各种wc美女嘘嘘| 国产一级中文字幕| 国产精品亚洲自拍| 懂色av中文字幕一区二区三区| 8x8ⅹ国产精品一区二区二区| 欧美日韩国产丝袜美女| 成人免费毛片xxx| 日本久久久久久久久久久| 国产不卡视频在线播放| 成人午夜视频免费在线观看| 欧美日韩你懂得| 亚洲欧美偷拍视频| 久久99精品久久久久子伦 | 久久久久久av无码免费网站| 国产精品第七十二页| 久久久99精品免费观看| 在线免费观看黄色小视频| 欧美国产日本在线| 91蜜桃网址入口| 日本高清www| 国产精品亚洲第一区| 亚洲综合视频在线观看| 国产又粗又猛又爽又黄的视频四季| 91tv亚洲精品香蕉国产一区7ujn| 成人蜜臀av电影| 永久免费毛片在线观看| 97人人做人人爱| 欧美亚洲另类小说| 伊甸园精品99久久久久久| 欧美一区二区三区精品| 狠狠色狠狠色合久久伊人| 国产免费黄色一级片| 色小说视频一区| 97精品国产露脸对白| 国产1区2区3区4区| 亚洲精品日韩在线观看| 亚洲另类xxxx| 国产女主播一区| 好吊操这里只有精品| 亚洲国产精品女人| 九九热精品视频国产| 亚洲欧美偷拍卡通变态| 一级特黄录像免费看| www.日本一区| 国产精品二区三区| 亚洲精品视频免费在线观看| 99国产精品视频免费观看| 69视频免费在线观看| 天天操中文字幕| 玖玖精品在线视频| 久久99精品视频一区97| 亚洲男人天堂av网| www五月婷婷| 女人黄色一级片| 男女视频网站在线观看| 国产国语刺激对白av不卡| 日韩午夜三级在线| 中文字幕av在线一区二区三区| 国产三级精品在线观看| 国产精品无码久久久久一区二区| 中文字幕在线亚洲精品| 久久免费视频这里只有精品| 欧美一区二区三区成人| 亚洲自拍偷拍麻豆| 97人妻精品视频一区| 国产精品自拍网站| 久久久久久91| 欧美性受xxxx| 免费超爽大片黄| 成人毛片在线播放| 亚洲色偷偷色噜噜狠狠99网| 日本一区二区高清视频| 国内免费精品永久在线视频| 欧美一区二区三区的| 亚洲成人动漫在线观看| 黄色一区二区视频| 一级片一级片一级片| 999热精品视频| 日本在线视频www| 国产激情片在线观看| 欧美一区二区三区四区夜夜大片| 国产精品91久久久久久| 欧美黄色性视频| 在线a欧美视频| 亚洲欧美国产视频| 日韩欧美国产午夜精品| 欧美一二三区| 日韩欧美一区二区三区久久| 久久综合九色综合久久久精品综合| 午夜久久久久久久久久| 一区二区三区日| 96日本xxxxxⅹxxx17| 精品一区二区久久久久久久网站| 亚洲第一精品夜夜躁人人躁| 六月婷婷色综合| 自拍视频国产精品| 男男一级淫片免费播放| 无码人妻少妇伦在线电影| 少妇特黄a一区二区三区| 3d蒂法精品啪啪一区二区免费| 欧美劲爆第一页| 久久久久久av| 国产精品www网站| 91中文字幕一区| 亚洲一区二区三区香蕉| 成人免费91在线看| 国产免费一区| 超碰超碰超碰超碰超碰| gogogo免费高清日本写真| 成人福利在线视频| 国产精品果冻传媒潘| 日本一区二区三区www| 国产精品自拍合集| 91淫黄看大片| 成人欧美一区二区三区在线 | 韩国v欧美v日本v亚洲v| 天天干免费视频| 亚洲欧洲国产精品久久| 国产精品区一区二区三在线播放 | 日本熟妇一区二区| 日韩精品一区不卡| 青青草成人免费| 免费观看在线色综合| 日韩综合在线观看| 蜜桃av一区二区在线观看| 国产欧美一区二区三区在线老狼 | 国产日韩精品中文字无码| 337p粉嫩色噜噜噜大肥臀| 激情成人午夜视频| 亚洲一区中文日韩| 亚洲午夜精品久久久久久性色| 日韩经典一区二区三区| 97se亚洲综合| 成人久久久久久久久| 中文字幕天天干| 波多野结衣家庭教师在线| 国产精品美女视频网站| 亚洲精品一区二区三区四区五区| 国产美女网站在线观看| 中文字幕久久熟女蜜桃| 国产污视频在线观看| 日韩精品电影在线观看| 欧美性色黄大片手机版| 国产精品二区在线|