精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

影響數(shù)據(jù)檢索效率的幾個(gè)因素

數(shù)據(jù)庫 數(shù)據(jù)庫運(yùn)維
數(shù)據(jù)檢索有兩種主要形態(tài)。第一種是純數(shù)據(jù)庫型的,第二種形態(tài)是現(xiàn)在越來越流行的大數(shù)據(jù)玩家的玩法。所以,回歸本質(zhì),影響數(shù)據(jù)檢索效率的就那么幾個(gè)因素。我們不妨來看一看。

數(shù)據(jù)檢索有兩種主要形態(tài)。***種是純數(shù)據(jù)庫型的。典型的結(jié)構(gòu)是一個(gè)關(guān)系型數(shù)據(jù),比如 mysql。用戶通過 SQL 表達(dá)出所需要的數(shù)據(jù),mysql 把 SQL 翻譯成物理的數(shù)據(jù)檢索動作返回結(jié)果。第二種形態(tài)是現(xiàn)在越來越流行的大數(shù)據(jù)玩家的玩法。典型的結(jié)構(gòu)是有一個(gè)分區(qū)的數(shù)據(jù)存儲,最初這種存儲就是原始的 HDFS,后來開逐步有人在 HDFS 上加上索引的支持,或者干脆用 Elasticsearc 這樣的數(shù)據(jù)存儲。然后在存儲之上有一個(gè)分布式的實(shí)時(shí)計(jì)算層,比如 Hive 或者 Spark SQL。用戶用 Hive SQL 提交給計(jì)算層,計(jì)算層從存儲里拉取出數(shù)據(jù),進(jìn)行計(jì)算之后返回給用戶。這種大數(shù)據(jù)的玩法起初是因?yàn)?SQL 有很多 ad-hoc 查詢是滿足不了的,干脆讓用戶自己寫 map/reduce 想怎么算都可以了。但是后來玩大了之后,越來越多的人覺得這些 Hive 之類的方案查詢效率怎么那么低下啊。于是一個(gè)又一個(gè)項(xiàng)目開始去優(yōu)化這些大數(shù)據(jù)計(jì)算框架的查詢性能。這些優(yōu)化手段和經(jīng)典的數(shù)據(jù)庫優(yōu)化到今天的手段是沒有什么兩樣的,很多公司打著搞計(jì)算引擎的旗號干著重新發(fā)明數(shù)據(jù)庫的活。所以,回歸本質(zhì),影響數(shù)據(jù)檢索效率的就那么幾個(gè)因素。我們不妨來看一看。

[[136367]]

數(shù)據(jù)檢索干的是什么事情

定位 => 加載 => 變換

找到所需要的數(shù)據(jù),把數(shù)據(jù)從遠(yuǎn)程或者磁盤加載到內(nèi)存中。按照規(guī)則進(jìn)行變換,比如按某個(gè)字段group by,取另外一個(gè)字段的sum之類的計(jì)算。

影響效率的四個(gè)因素

  • 讀取更少的數(shù)據(jù)
  • 數(shù)據(jù)本地化,充分遵循底層硬件的限制設(shè)計(jì)架構(gòu)
  • 更多的機(jī)器
  • 更高效率的計(jì)算和計(jì)算的物理實(shí)現(xiàn)

原則上的四點(diǎn)描述是非常抽象的。我們具體來看這些點(diǎn)映射到實(shí)際的數(shù)據(jù)庫中都是一些什么樣的優(yōu)化措施。

讀取更少的數(shù)據(jù)

數(shù)據(jù)越少,檢索需要的時(shí)間當(dāng)然越少了。在考慮所有技術(shù)手段之前,最有效果的恐怕是從業(yè)務(wù)的角度審視一下我們是否需要從那么多的數(shù)據(jù)中檢索出結(jié)果來。有沒有可能用更少的數(shù)據(jù)達(dá)到同樣的效果。減少的數(shù)據(jù)量的兩個(gè)手段,聚合和抽樣。如果在入庫之前把數(shù)據(jù)就做了聚合或者抽樣,是不是可以極大地減少查詢所需要的時(shí)間,同時(shí)效果上并無多少差異呢?極端情況下,如果需要的是一天的總訪問量,比如有1個(gè)億。查詢的時(shí)候去數(shù)1億行肯定快不了。但是如果統(tǒng)計(jì)好了一天的總訪問量,查詢的時(shí)候只需要取得一條記錄就可以知道今天有1個(gè)億的人訪問了。

索引是一種非常常見的減少數(shù)據(jù)讀取量的策略了。一般的按行存儲的關(guān)系型數(shù)據(jù)庫都會有一個(gè)主鍵。用這個(gè)主鍵可以非常快速的查找到對應(yīng)的行。KV存儲也是這樣,按照Key可以快速地找到對應(yīng)的Value。可以理解為一個(gè)Hashmap。但是一旦查詢的時(shí)候不是用主鍵,而是另外一個(gè)字段。那么最糟糕的情況就是進(jìn)行一次全表的掃描了,也就是把所有的數(shù)據(jù)都讀取出來,然后看要的數(shù)據(jù)到底在哪里,這就不可能快了。減少數(shù)據(jù)讀取量的***方案就是,建立一個(gè)類似字典一樣的查找表,當(dāng)我們找 username=wentao 的時(shí)候,可以列舉出所有有 wentao 作為用戶名的行的主鍵。然后拿這些主鍵去行存儲(就是那個(gè)hashmap)里撈數(shù)據(jù),就一撈一個(gè)準(zhǔn)了。

談到索引就不得不談一下一個(gè)查詢使用了兩個(gè)字段,如何使用兩個(gè)索引的問題。mysql的行為可以代表大部分主流數(shù)據(jù)庫的處理方式:

https://www.percona.com/blog/2012/12/14/the-optimization-that-often-is...

https://www.percona.com/blog/2014/01/03/multiple-column-index-vs-multi...

基本上來說,經(jīng)驗(yàn)表明有多個(gè)單字段的索引,***數(shù)據(jù)庫會選一***的來使用。其余字段的過濾仍然是通過數(shù)據(jù)讀取到內(nèi)存之后,用predicate去判斷的。也就是無法減少數(shù)據(jù)的讀取量。

在這個(gè)方面基于inverted index的數(shù)據(jù)就非常有特點(diǎn)。一個(gè)是Elasticsearch為代表的lucene系的數(shù)據(jù)庫。另外一個(gè)是新銳的druid數(shù)據(jù)庫。

https://www.found.no/foundation/elasticsearch-from-the-bottom-up/

http://druid.io/blog/2012/09/21/druid-bitmap-compression.html

效果就是,這些數(shù)據(jù)庫可以把單字段的filter結(jié)果緩存起來。多個(gè)字段的查詢可以把之前緩存的結(jié)果直接拿過來做 AND 或者 OR 操作。

索引存在的必要是因?yàn)橹鞔鎯]有提供直接的快速定位的能力。如果訪問的就是數(shù)據(jù)庫的主鍵,那么需要讀取的數(shù)據(jù)也就非常少了。另外一個(gè)變種就是支持遍歷的主鍵,比如hbase的rowkey。如果查詢的是一個(gè)基于rowkey的范圍,那么像hbase這樣的數(shù)據(jù)庫就可以支持只讀取到這個(gè)范圍內(nèi)的數(shù)據(jù),而不用讀取不再這個(gè)范圍內(nèi)的額外數(shù)據(jù),從而提高速度。這種加速的方式就是利用了主存儲自身的物理分布的特性。另外一個(gè)更常見的場景就是 partition。比如 mysql 或者 postgresql 都支持分區(qū)表的概念。當(dāng)我們建立了分區(qū)表之后,查找的條件如果可以過濾出分區(qū),那么可以大幅減少需要讀取的數(shù)據(jù)量。比 partition 更細(xì)粒度一些的是 clustered index。它其實(shí)不是一個(gè)索引(二級索引),它是改變了數(shù)據(jù)在主存儲內(nèi)的排列方式,讓相同clustered key的數(shù)據(jù)彼此緊挨著放在一起,從而在查詢的時(shí)候避免掃描到無關(guān)的數(shù)據(jù)。比 partition 更粗一些的是分庫分表分文件。比如我們可以一天建立一張表,查詢的時(shí)候先定位到表,再執(zhí)行 SQL。比如 graphite 給每個(gè) metric 創(chuàng)建一個(gè)文件存放采集來的 data point,查詢的時(shí)候給定metric 就可以定位到一個(gè)文件,然后只讀取這個(gè)文件的數(shù)據(jù)。

#p#

另外還有一點(diǎn)就是按行存儲和按列存儲的區(qū)別。按列存儲的時(shí)候,每個(gè)列是一個(gè)獨(dú)立的文件。查詢用到了哪幾個(gè)列就打開哪幾個(gè)列的文件,沒有用到的列的數(shù)據(jù)碰都不會碰到。反觀按行存儲,一張中的所有字段是彼此緊挨在磁盤上的。一個(gè)表如果有100個(gè)字段,哪怕只選取其中的一個(gè)字段,在掃描磁盤的時(shí)候其余99 個(gè)字段的數(shù)據(jù)仍然會被掃描到的。

考慮一個(gè)具體的案例,時(shí)間序列數(shù)據(jù)。如何使用讀取更少的數(shù)據(jù)的策略來提高檢索的效率呢?首先,我們可以保證入庫的時(shí)間粒度,維度粒度是正好是查詢所需要的。如果查詢需要的是5分鐘數(shù)據(jù),但是入庫的是1分鐘的,那么就可以先聚合成5分鐘的再存入數(shù)據(jù)庫。對于主存儲的物理布局選擇,如果查詢總是針對一個(gè)時(shí)間范圍的。那么把 timestamp 做為 hbase 的 rowkey,或者 mysql 的 clustered index 是合適。這樣我們按時(shí)間過濾的時(shí)候,選擇到的是一堆連續(xù)的數(shù)據(jù),不用讀取之后再過濾掉不符合條件的數(shù)據(jù)。但是如果在一個(gè)時(shí)間范圍內(nèi)有很多中數(shù)據(jù),比如1萬個(gè)IP,那么即便是查1個(gè)IP的數(shù)據(jù)也需要把1萬個(gè)IP的數(shù)據(jù)都讀取出來。所以可以把 IP 維度也編碼到 rowkey 或者 clustered index 中。但是假如另外還有一個(gè)維度是 OS,那么查詢的時(shí)候 IP 維度的 rowkey 是沒有幫助的,仍然是要把所有的數(shù)據(jù)都查出來。這就是僅依靠主存儲是無法滿足各種查詢條件下都能夠讀取更少的數(shù)據(jù)的原因。所以,二級索引是必要的。我們可以把時(shí)間序列中的所有維度都拿出來建立索引,然后查詢的時(shí)候如果指定了維度,就可以用二級索引把真正需要讀取的數(shù)據(jù)過濾出來。但是實(shí)踐中,很多數(shù)據(jù)庫并不因?yàn)槭褂昧怂饕沟貌樵冏兛炝耍械臅r(shí)候反而變得更慢了。對于 mysql 來說,存儲時(shí)間序列的***方式是按時(shí)間做 partition,不對維度建立任何索引。查詢的時(shí)候只過濾出對應(yīng)的 partition,然后進(jìn)行全 partition 掃描,這樣會快過于使用二級索引定位到行之后再去讀取主存儲的查詢方式。究其原因,就是數(shù)據(jù)本地化的問題了。

數(shù)據(jù)本地化

數(shù)據(jù)本地化的實(shí)質(zhì)是軟件工程師們要充分尊重和理解底層硬件的限制,并且用各種手段規(guī)避問題***化利用手里的硬件資源。本地化有很多種形態(tài)。

  • 最常見的***理解的本地化問題是網(wǎng)絡(luò)問題。我們都知道網(wǎng)絡(luò)帶寬不是***的,比本地磁盤慢多了。如果可能盡量不要通過網(wǎng)絡(luò)去訪問數(shù)據(jù)。即便要訪問,也應(yīng)該一次抓取多一些數(shù)據(jù),而不是一次搞一點(diǎn),然后搞很多次。因?yàn)榫W(wǎng)絡(luò)連接和來回的開銷是非常高的。這就是 data locality 的問題。我們要把計(jì)算盡可能的靠近數(shù)據(jù),減少網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量。
  • 這種帶寬引起的本地化問題,還有很多。網(wǎng)絡(luò)比硬盤慢,硬盤比內(nèi)存慢,內(nèi)存比L2緩存慢。做到***的數(shù)據(jù)庫可以讓計(jì)算完全發(fā)生在 L2 緩存內(nèi),盡可能地避免頻繁地在內(nèi)存和L2之間倒騰數(shù)據(jù)。
  • 另外一種形態(tài)的問題化問題是磁盤的順序讀和隨機(jī)讀的問題。當(dāng)數(shù)據(jù)彼此靠近地物理存放在磁盤上的時(shí)候,順序讀取一批是非常快的。如果需要隨機(jī)讀取多個(gè)不連續(xù)的硬盤位置,磁頭就要來回移動從而使得讀取速度快速下降。即便是 SSD 硬盤,順序讀也是要比隨機(jī)讀快的。

基于盡可能讓數(shù)據(jù)讀取本地化的原則,檢索應(yīng)該盡可能地使用順序讀而不是隨機(jī)讀。如果可以的話,把主存儲的row key或者clustered index設(shè)計(jì)為和查詢提交一樣的。時(shí)間序列如果都是按時(shí)間查,那么按時(shí)間做的row key可以非常高效地以順序讀的方式把數(shù)據(jù)拉取出來。類似地,按列存儲的數(shù)據(jù)如果要把一個(gè)列的數(shù)據(jù)都取出來加和的話,可以非常快地用順序讀的方式加載出來。

二級索引的訪問方式典型的隨機(jī)讀。當(dāng)查詢條件經(jīng)過了二級索引查找之后得到一堆的主存儲的 key,那么就需要對每個(gè) key 進(jìn)行一次隨機(jī)讀。即便彼此僅靠的key可以用順序讀做一些優(yōu)化,總體上來說仍然是隨機(jī)讀的模式。這也就是為什么時(shí)間序列數(shù)據(jù)在 mysql 里建立了索引反而比沒有建索引還要慢的原因。

為了盡可能的利用順序讀,人們就開始想各種辦法了。前面提到了 mysql 里的一行數(shù)據(jù)的多個(gè)列是彼此緊靠地物理存放的。那么如果我們把所需要的數(shù)據(jù)建成多個(gè)列,那么一次查詢就可以批量獲得更多的數(shù)據(jù),減少隨機(jī)讀取的次數(shù)。也就是把之前的一些行變?yōu)榱械姆绞絹泶娣牛瑴p少行的數(shù)量。這種做法的經(jīng)典案例就是時(shí)間序列數(shù)據(jù),比如可以一分鐘存一行數(shù)據(jù),每一秒的值變成一個(gè)列。那么行的數(shù)量可以變成之前的1/60。

但是這種行變列的做法在按列存儲的數(shù)據(jù)庫里就不能直接照搬了,有些列式數(shù)據(jù)庫有column family的概念,不同的設(shè)置在物理上存放可能是在一起的也可能是分開的。對于 Elasticsearch 來說,要想減少行的數(shù)量,讓一行多pack一些數(shù)據(jù)進(jìn)去,一種做法就是利用 nested document。內(nèi)部 Elasticsearch 可以保證一個(gè) document 下的所有的 nested document是物理上靠在一起放在同一個(gè) lucene 的 segment 內(nèi)。

網(wǎng)絡(luò)的data locality就比較為人熟知了。map reduce的大數(shù)據(jù)計(jì)算模式就是利用map在數(shù)據(jù)節(jié)點(diǎn)的本地把數(shù)據(jù)先做一次計(jì)算,往往計(jì)算的結(jié)果可以比原數(shù)據(jù)小很多。然后再通過網(wǎng)絡(luò)傳輸匯總后做 reduce 計(jì)算。這樣就節(jié)省了大量網(wǎng)絡(luò)傳輸數(shù)據(jù)的時(shí)間浪費(fèi)和資源消耗。現(xiàn)在 Elasticsearch 就支持在每個(gè) data node 上部署 spark。由 spark 在每個(gè) data node 上做計(jì)算。而不用把數(shù)據(jù)都查詢出來,用網(wǎng)絡(luò)傳輸?shù)?spark 集群里再去計(jì)算。這種數(shù)據(jù)庫和計(jì)算集群的混合部署是高性能的關(guān)鍵。類似的還有 storm 和 kafka 之間的關(guān)系。

網(wǎng)絡(luò)的data locality還有一個(gè)老大難問題就是分布式大數(shù)據(jù)下的多表join問題。如果只是查詢一個(gè)分布式表,那么把計(jì)算用 map reduce 表達(dá)就沒有多大問題了。但是如果需要同時(shí)查詢兩個(gè)表,就意味著兩個(gè)表可能不是在物理上同樣均勻分布的。一種最簡單的策略就是找出兩張表中最小的那張,然后把表的內(nèi)容廣播到每個(gè)節(jié)點(diǎn)上,再做join。復(fù)雜一些的是對兩個(gè)單表做 map reduce,然后按照相同的 key 把部分計(jì)算的結(jié)果匯集在一起。第三種策略是保證數(shù)據(jù)分布的方式,讓兩張表查詢的時(shí)候需要用到的數(shù)據(jù)總在一起。沒有***的方案,也不大可能有***的方案。除非有一天網(wǎng)絡(luò)帶寬可以大到忽略不計(jì)的地步。

更多的機(jī)器

這個(gè)就沒有什么好說的了。多一倍的機(jī)器就多一倍的 CPU,可以同時(shí)計(jì)算更多的數(shù)據(jù)。多一倍的機(jī)器就多一倍的磁頭,可以同時(shí)掃描更多的字節(jié)數(shù)。很多大數(shù)據(jù)框架的故事就是講如何如何通過 scale out 解決***大的問題。但是值得注意的是,集群可以***大,數(shù)據(jù)可以***多,但是口袋里的銀子不會***多的。堆機(jī)器解決問題比升級大型機(jī)是要便宜,但是機(jī)器堆多了也是非常昂貴的。特別是 Hive 這些從一開始就是分布式多機(jī)的檢索方案,剛開始的時(shí)候效率并不高。堆機(jī)器是一個(gè)乘數(shù),當(dāng)數(shù)據(jù)庫本來單機(jī)性能不高的時(shí)候,乘數(shù)大并不能起到?jīng)Q定性的作用。

更高效的計(jì)算和計(jì)算實(shí)現(xiàn)

檢索的過程不僅僅是磁盤掃描,它還包括一個(gè)可簡單可復(fù)雜的變換過程。使用 hyperloglog,count min-sketch等有損算法可以極大地提高統(tǒng)計(jì)計(jì)算的性能。數(shù)據(jù)庫的join也是一個(gè)經(jīng)常有算法創(chuàng)新的地方。

計(jì)算實(shí)現(xiàn)就是算法是用C++實(shí)現(xiàn)的還是用java,還是python實(shí)現(xiàn)的。用java是用大Integer實(shí)現(xiàn)的,還是小int實(shí)現(xiàn)的。不同的語言的實(shí)現(xiàn)方式會有一些固定的開銷。不是說快就一定要C++,但是 python 寫 for 循環(huán)是顯然沒有指望的。任何數(shù)據(jù)檢索的環(huán)節(jié)只要包含 python/ruby 這些語言的逐條 for 循環(huán)就一定快不起來了。

結(jié)論

希望這四點(diǎn)可以被記住,成為一種指導(dǎo)性的優(yōu)化數(shù)據(jù)檢索效率的思維框架。無論你是設(shè)計(jì)一個(gè)mysql表結(jié)構(gòu),還是優(yōu)化一個(gè)spark sql的應(yīng)用。從這四個(gè)角度想想,都有哪些環(huán)節(jié)是在拖后腿的,手上的工具有什么樣的參數(shù)可以調(diào)整,讓隨機(jī)讀變成順序讀,表結(jié)構(gòu)怎么樣設(shè)計(jì)可以最小化數(shù)據(jù)讀取的量。要做到這一點(diǎn),你必須非常非常了解工具的底層實(shí)現(xiàn)。而不是盲目的相信,xx數(shù)據(jù)庫是***的數(shù)據(jù)庫,所以它一定很快之類的。如果你不了解你手上的數(shù)據(jù)庫或者計(jì)算引擎,當(dāng)它快的時(shí)候你不知道為何快,當(dāng)它慢的時(shí)候你就更加無從優(yōu)化了。

原文鏈接:segmentfault.com/a/1190000002884077

責(zé)任編輯:Ophira 來源: segmentfault
相關(guān)推薦

2020-07-07 12:15:34

數(shù)據(jù)中心能源技術(shù)

2023-09-08 09:53:41

API開發(fā)

2015-10-20 10:27:18

數(shù)據(jù)中心托管

2024-07-08 12:44:11

2025-08-06 08:03:23

2011-03-23 09:10:09

游標(biāo)數(shù)據(jù)檢索

2010-08-27 09:03:23

無線網(wǎng)路

2023-06-16 11:25:33

2010-10-25 14:28:49

綠色網(wǎng)絡(luò)

2015-06-10 15:16:19

數(shù)據(jù)中心

2022-07-21 08:00:00

京東數(shù)據(jù)存儲汽車行業(yè)

2011-06-22 16:43:02

SEO網(wǎng)站排名

2009-08-28 10:05:41

影響SEO的因素

2025-05-23 08:26:11

2020-02-21 09:38:06

WindowsWindows 10軟件

2011-07-03 23:03:09

網(wǎng)站排名

2025-04-29 00:00:00

SIEM配置系統(tǒng)

2009-07-08 16:42:57

Scala語言設(shè)計(jì)

2021-09-26 21:05:36

CDN網(wǎng)絡(luò)網(wǎng)站

2012-06-06 09:08:58

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

欧美三日本三级三级在线播放| 成人综合婷婷国产精品久久 | 91小视频网站| 蜜桃视频在线观看www社区| 国产剧情一区二区| 日本亚洲精品在线观看| 可以免费看av的网址| 国产精品男女| 欧美日韩一区二区在线观看视频| 日本中文字幕在线视频观看| 成年人视频在线观看免费| 国产成人av电影在线播放| 热久久免费视频精品| 日韩欧美综合视频| 国产精品免费大片| 日韩欧美亚洲国产另类| 久久久久久久久久久久91| 欧美韩日亚洲| 中文字幕一区二区三区色视频| 国产乱码精品一区二区三区日韩精品| 国产精华7777777| 亚洲承认在线| 裸体女人亚洲精品一区| 成人免费毛片糖心| 动漫视频在线一区| 欧美电影一区二区三区| 男女视频一区二区三区| segui88久久综合| 亚洲女与黑人做爰| 亚洲黄色成人久久久| 日本一区高清| av中文字幕在线不卡| 亚洲在线观看视频网站| 中文字幕第一页在线播放| 亚洲女人av| 久久久欧美精品| 美女视频黄免费| 亚洲字幕久久| 久久成人精品电影| fc2ppv在线播放| 99热在线成人| 日韩在线观看高清| 老司机精品免费视频| 精品免费一区二区| 亚洲人成在线观| 中国美女乱淫免费看视频| 精品亚洲免a| 亚洲成人性视频| 丰满岳乱妇一区二区 | 日韩电影免费一区| 91精品国产免费久久久久久 | 51精品国产人成在线观看| 91肉色超薄丝袜脚交一区二区| 免费在线一区观看| 国产精品入口夜色视频大尺度| 午夜久久久久久久久久影院| 免费日韩精品中文字幕视频在线| 日韩av电影在线播放| 国产一级18片视频| 久久久精品五月天| 国产精品第一页在线| 在线观看国产一区二区三区| 日本特黄久久久高潮| 国产美女精品视频免费观看| 亚洲天堂网视频| 久久99精品久久久久久| 92国产精品久久久久首页| av高清一区二区| 国产91精品一区二区| 国产女主播一区二区三区| 午夜成人免费影院| 国产欧美日本一区二区三区| 亚洲欧美日韩精品在线| 在线视频国产区| 亚洲福利一二三区| 久草精品在线播放| 欧美亚洲黄色| 精品国产sm最大网站免费看| 免费成人蒂法网站| 国模吧精品视频| 日韩视频永久免费观看| 国产一级理论片| 亚洲一区二区毛片| 国产精品亚发布| 亚洲乱熟女一区二区| 91在线播放网址| 性欧美精品一区二区三区在线播放 | 亚洲一区二区电影| 亚洲美女激情视频| 91免费公开视频| 亚洲伦伦在线| 国产日韩欧美夫妻视频在线观看 | 国产四区在线观看| 678在线观看视频| 在线观看欧美日本| 18禁一区二区三区| 精品中文一区| 欧美日韩国产成人在线观看| 亚洲va在线观看| 国产高清久久久| 欧美日韩精品久久| 午夜dj在线观看高清视频完整版| 日韩欧美成人网| 美女被艹视频网站| 国产精品三级| 欧美激情中文字幕乱码免费| 中文字幕日本人妻久久久免费 | 免费黄色片网站| 欧美日韩国产在线一区| 国产精品欧美日韩久久| 熟妇人妻系列aⅴ无码专区友真希| 中文字幕乱码一区二区免费| 狠狠97人人婷婷五月| 免费欧美网站| 色阁综合伊人av| 免费的毛片视频| 成人中文字幕电影| 大片在线观看网站免费收看| 电影天堂国产精品| 日韩精品亚洲视频| 久热这里只有精品在线| 精一区二区三区| 亚洲草草视频| 欧美18av| 亚洲另类激情图| 日本一区二区三区四区五区| 国产成人午夜精品影院观看视频| 亚洲欧美国产不卡| 99只有精品| 亚洲欧洲国产一区| 中文在线第一页| 成a人片亚洲日本久久| 91精品国产吴梦梦| 96视频在线观看欧美| 国产一区二区黑人欧美xxxx| 亚洲欧美综合另类| 97se亚洲国产综合自在线观| 欧美狂野激情性xxxx在线观| 911亚洲精品| 欧美美最猛性xxxxxx| 国产精品视频久久久久久| 国产精品无遮挡| 自拍偷拍 国产| 深爱激情综合网| 国产91露脸中文字幕在线| 日韩在线视频免费| 午夜精品视频一区| 久久精品女同亚洲女同13| 一区二区自拍| 九九九热999| 伊人久久国产| 亚洲视频在线观看视频| 久久影视中文字幕| 国产视频一区二区在线| 另类小说第一页| 国产精品99视频| 91久久国产精品| 在线免费av导航| 亚洲成av人乱码色午夜| 日日夜夜综合网| 久久久久国产成人精品亚洲午夜| 91av俱乐部| 成人羞羞动漫| 亚洲一区二区自拍| 黄色影院在线看| 日韩激情第一页| 五月天婷婷久久| 欧美国产日韩亚洲一区| 亚洲精品www.| 国精品一区二区三区| 国产精品二区在线| 久久sese| 久久色在线播放| 亚洲国产精品久久久久久6q| 五月婷婷激情综合网| av鲁丝一区鲁丝二区鲁丝三区| 水蜜桃久久夜色精品一区的特点| 亚洲精品一区二区三区樱花 | 久久久久一区二区| 欧美日韩国产网站| 欧美乱大交xxxxx另类电影| 少妇荡乳情欲办公室456视频| 色综合天天视频在线观看| 亚洲欧美日韩第一页| 国产精品亚洲а∨天堂免在线| 国产精品专区在线| 色88久久久久高潮综合影院| 99热在线国产| 成人亚洲视频| 久久免费成人精品视频| 91成人高清| 亚洲成人1234| 亚洲天堂视频在线| 欧美日韩国产一区在线| 911国产在线| 91免费视频大全| www激情五月| 天使萌一区二区三区免费观看| 日本一级淫片演员| 偷窥自拍亚洲色图精选| 91亚洲国产精品| 成人激情综合| 国模吧一区二区三区| 麻豆传媒视频在线观看| 精品无人区太爽高潮在线播放| 国产一区二区三区四区视频| 日韩欧美大尺度| 久久久久久免费观看| 中文字幕永久在线不卡| 欧美熟妇一区二区| 成人精品一区二区三区中文字幕 | 亚洲第一精品在线观看| 亚洲黄色性网站| 呻吟揉丰满对白91乃国产区| 99精品久久久久久| 又色又爽又黄18网站| 免费看欧美女人艹b| 青青草原成人网| 影音先锋久久精品| 日韩人妻精品一区二区三区| 日韩美女一区二区三区在线观看| 久久99精品久久久久子伦| 视频一区日韩精品| 成人字幕网zmw| abab456成人免费网址| 欧美专区在线视频| 国产欧洲在线| 国内成人精品一区| 欧美xxxx免费虐| 欧美成人精品一区| 蜜桃视频网站在线观看| 日韩在线观看高清| 亚洲搞黄视频| 在线视频欧美日韩| 成人好色电影| 一区二区亚洲欧洲国产日韩| 欧美另类自拍| 夜夜嗨av一区二区三区免费区| 日韩亚洲视频在线观看| 国产视频精品久久久| 五月天婷婷在线观看| 亚洲精品二三区| 同心难改在线观看| 亚洲精品视频免费在线观看| 日本黄在线观看| 日韩乱码在线视频| 邻居大乳一区二区三区| 亚洲欧美精品中文字幕在线| 精品三级久久久久久久电影聊斋| 亚洲欧洲自拍偷拍| 国产在线日本| 色999日韩欧美国产| jizz性欧美| 欧美精品videosex牲欧美| 2021天堂中文幕一二区在线观| 欧美高清电影在线看| heyzo高清在线| 欧美在线视频免费| 国产综合色在线观看| 国产美女主播一区| 一区二区三区亚洲变态调教大结局| 丁香五月网久久综合| 女仆av观看一区| 青青成人在线| 水蜜桃精品av一区二区| www.18av.com| 国产亚洲福利| 亚洲欧美在线精品| 国产成人综合亚洲网站| 午夜剧场免费看| 国产欧美va欧美不卡在线| 三级黄色录像视频| 亚洲国产综合91精品麻豆| 神马久久久久久久| 8v天堂国产在线一区二区| www.超碰在线.com| 亚洲欧美日韩区| 素人av在线| 国内精品一区二区三区| 日韩经典一区| 福利精品视频| 国产亚洲电影| 日韩欧美视频免费在线观看| 亚洲女同在线| 免费看的av网站| 26uuu久久天堂性欧美| 中国毛片直接看| 黑人与娇小精品av专区| 97人妻精品一区二区三区动漫| 亚洲精品在线一区二区| 1024视频在线| 久久久女女女女999久久| 亚洲国产尤物| 国产综合欧美在线看| 午夜激情久久| www黄色av| 成人一区二区视频| 最新日韩免费视频| 欧美性xxxxhd| 亚洲经典一区二区| 日韩在线视频免费观看| 亚洲精品mv| 99久久99| 99热在线成人| 亚洲国产精品毛片av不卡在线| 东方欧美亚洲色图在线| 精品国产大片大片大片| 色综合欧美在线视频区| 亚洲第一第二区| 久久精品成人欧美大片| 亚洲天堂一区二区| 好看的日韩精品| 欧美三级在线| 中文字幕亚洲影院| 日本一区二区免费在线| 国产精品999在线观看| 欧美一二三在线| 日韩av中文| 国产精品成人av性教育| 亚洲精品aaaaa| 国产精品久久..4399| 国产99久久久国产精品潘金网站| 国产精品一区二区亚洲| 91黄色免费观看| 日本精品专区| 欧美在线不卡区| 日韩欧美美女在线观看| 91精品国产91久久久久麻豆 主演| 国产原创一区二区三区| 五月激情四射婷婷| 欧美性大战久久久久久久蜜臀| 日本中文字幕电影在线观看| 5566成人精品视频免费| 蜜桃一区av| 黄色大片在线免费看| 国产成人综合网| 麻豆一区二区三区精品视频| 日韩免费观看高清完整版 | 国产成人在线一区| 国产亚洲一区二区三区不卡| 中国丰满人妻videoshd| 99精品国产热久久91蜜凸| 国产 欧美 日韩 在线| 亚洲精品国产电影| 国产精品迅雷| 欧美一区二区三区四区在线观看地址 | 久久99久久久久久久噜噜| 日韩成人18| 777av视频| 久久久不卡网国产精品一区| 国产女主播喷水视频在线观看 | 国产综合色产在线精品| 久久中文免费视频| 欧美变态tickle挠乳网站| 国产精品69xx| 九色91视频| 秋霞国产午夜精品免费视频| 美女网站视频色| 日韩欧美成人一区二区| 黄色漫画在线免费看| 日本中文不卡| 久久99精品久久久久久| 久久久夜色精品| 日韩精品极品视频免费观看| 99re66热这里只有精品4| 在线国产99| 成人免费精品视频| 波多野结衣高清视频| 久久亚洲精品一区二区| 麻豆一区二区麻豆免费观看| 自拍偷拍 国产| 一区二区三区四区不卡在线| 神马精品久久| 成人写真福利网| 影音先锋一区| 色欲狠狠躁天天躁无码中文字幕| 666欧美在线视频| 国产高清中文字幕在线| 日本一区视频在线播放| 国产乱码字幕精品高清av | 欧美日韩精品欧美日韩精品一 | 91黄色免费网站| 国产一二三区在线观看| 国内不卡一区二区三区| 蜜臀av一区二区在线免费观看| 久艹视频在线观看| 亚洲欧洲日产国码av系列天堂| 国产一区二区三区| 男人天堂网视频| 夜夜嗨av一区二区三区中文字幕 | 97精品久久久| 日韩在线高清| 北岛玲一区二区| 69堂精品视频| 天堂av中文在线观看| 国内自拍中文字幕| 欧美激情资源网| 五月婷婷六月丁香综合| 91久久夜色精品国产网站| 午夜影院日韩|