• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    TiDB的多索引訪問優(yōu)化

    2020-04-09 14:48:48彭煜瑋
    計算機(jī)應(yīng)用 2020年2期
    關(guān)鍵詞:利用

    蘭 海,韓 珂,申 礫,崔 秋,彭煜瑋*

    (1.武漢大學(xué)計算機(jī)學(xué)院,武漢610072;2.北京平凱星辰科技發(fā)展有限公司,北京100096)

    0 引言

    在大數(shù)據(jù)時代,各個公司需要更高的數(shù)據(jù)處理和分析能力,保證迅速地做出商業(yè)決策以及用戶響應(yīng),數(shù)據(jù)處理引擎因而成為了各個公司的核心系統(tǒng)。隨著數(shù)據(jù)持續(xù)增多、處理性能要求提升、處理場景和類型的多元化,對數(shù)據(jù)處理引擎提出各方面的挑戰(zhàn)[1],因此,在傳統(tǒng)關(guān)系數(shù)據(jù)庫外,發(fā)展出了NoSQL[2-3]、NewSQL[4-6]、流式處理[7-9]等各類數(shù)據(jù)處理引擎。其中,TiDB[10]是受Google 的F1[11]以及Spanner[12]系統(tǒng)啟發(fā)的一款開源分布式混合事務(wù)分析處理(Hybrid Transaction/Analytical Processing,HTAP)數(shù)據(jù)庫,結(jié)合傳統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System,RDMS)和NoSQL 的特性,兼容MySQL 語法,支持無限水平擴(kuò)展,具有強(qiáng)一致性和高可用性。TiDB 現(xiàn)在逐漸被許多商業(yè)公司在業(yè)務(wù)系統(tǒng)中使用。

    當(dāng)前TiDB 的優(yōu)化器對大部分查詢請求都能生成性能極佳的物理計劃,但仍有不足之處。下面通過舉例來描述其中之一,同時也是本文中要解決的問題。假設(shè)有表1 所示的模式。

    查詢“SELECT*FROM t1 WHERE a1<1 OR a2>10”發(fā)送給TiDB,當(dāng)前TiDB 優(yōu)化器生成的物理計劃為在t1 表上的全表掃描。假定t1 表上有100 萬個元組,且滿足條件“a1<1”和“a2>10”的元組各僅有一個。使用全表掃描需要訪問100 萬個元組。如果利用索引“i1”(后文以i1(a)表示名為i1 建立在列a 上的索引)獲取滿足條件“a1<1”的元組,利用索引“i2”獲取滿足條件“a2>10”的元組,然后將兩個結(jié)果進(jìn)行并操作,即得到結(jié)果。在這種執(zhí)行方式中僅需要訪問4 個元組,其中兩個為數(shù)據(jù)元組,兩個為索引元組(TiDB 中索引非樹狀結(jié)構(gòu),索引掃描沒有中間節(jié)點(diǎn)訪問的開銷)。同樣的環(huán)境下,后者性能提升明顯。

    表1 模式信息Tab.1 Mode information

    從上述例子可知,當(dāng)約束條件涉及多個索引屬性時,首先利用單個索引獲取結(jié)果,然后將結(jié)果進(jìn)行并(條件為析取范式(Disjunctive Normal Form,DNF))或者交(條件為和取范式(Conjunctive Normal Form,CNF))操作以獲取最終數(shù)據(jù)元組的方案優(yōu)于用全表掃描或單個索引掃描的執(zhí)行方式。

    本文研究在TiDB 中利用多個索引提供更優(yōu)的數(shù)據(jù)訪問方案。將利用多個索引進(jìn)行數(shù)據(jù)訪問的路徑稱為MultiIndexPath,具體根據(jù)約束條件類型又分為MultiIndexOrPath以及MultiIndexAndPath。

    在TiDB 上增加MultiIndexPath 的支持并不容易,存在如下難點(diǎn):第一,如何將路徑生成算法與TiDB 系統(tǒng)融合,以生成可能的MultiIndexPath。第二,索引選擇。如果表上的一個約束條件有多個可使用索引,如何選擇其中一個。第三,代價模型。由于TiDB 將計算與存儲分離,兩者通過遠(yuǎn)端程序調(diào)用(Remote Procedure Call,RPC)進(jìn)行通信以及數(shù)據(jù)傳輸,增加了網(wǎng)絡(luò)開銷;同時,TiDB 運(yùn)用大量并行執(zhí)行技術(shù),增加了代價模型的建模難度。

    針對以上難點(diǎn),本文首先基于TiDB 現(xiàn)有的優(yōu)化器機(jī)制實(shí)現(xiàn)了MultiIndexPath 的生成算法。其次,當(dāng)有多個索引可選時,采用啟發(fā)式方法,進(jìn)行索引選擇,后文通過實(shí)驗證明了該方法的有效性。第三,在充分考慮了網(wǎng)絡(luò)以及并行等因素后,給出了MultiIndexPath 的代價模型。最后,在TiDB 的執(zhí)行架構(gòu)基礎(chǔ)上,實(shí)現(xiàn)了物理計劃的執(zhí)行框架;并進(jìn)一步結(jié)合TiDB架構(gòu)特點(diǎn),提出了一種Pipeline模式的執(zhí)行算法。

    1 相關(guān)研究

    單機(jī)關(guān)系型數(shù)據(jù)庫針對上述問題已經(jīng)能生成利用多個索引的物理計劃,但在實(shí)現(xiàn)方案上均有所不同。

    MySQL 提供了IndexMerge[13]。當(dāng)前MySQL 支持三種方式利用多個索引:Intersection(交)、Union(并)以及Sort_union(排序并)。交、并操作需要每個索引返回的表元組按照Rowid 排序,然后將從不同索引獲取的表元組利用歸并操作得到最終結(jié)果。

    PostgreSQL 中用Bitmap Index Scan 以及Bitmap(位圖)操作[14]來實(shí)現(xiàn)多個索引的使用:首先利用Bitmap Index Scan 構(gòu)建每個索引要訪問的物理頁的位圖,然后利用位圖的交或者并確定最終要訪問的頁,最后訪問頁并從中取得滿足條件的元組。

    商業(yè)數(shù)據(jù)庫DB2 中,首先利用單個索引獲取滿足索引條件的Rowid,然后再將這些不同的Rowid 集合執(zhí)行交或者并操作獲取最終Rowid 集合,最后將利用這些Rowid 進(jìn)行數(shù)據(jù)獲取。商業(yè)數(shù)據(jù)庫Oracle 中有多個方式利用多個索引,如IndexJoin 以及Bitmap Merge。其中IndexJoin 將不同索引返回的結(jié)果根據(jù)Rowid 來進(jìn)行Join,然后返回。Bitmap Merge 則利用Oracle 中的Bitmap 索引,通過Bitmap 的交或者并位操作來獲取最終滿足結(jié)果的Bitmap,再將Bitmap 變?yōu)镽owid,通過Rowid 獲取最終的表數(shù)據(jù)。對商業(yè)數(shù)據(jù)SQL Sever 中or 的情況,首先通過多個IndexSeek 獲取滿足條件的索引元組,再利用Sort+Concatenation 或者M(jìn)ergeJoin+Aggregate。對于and 情況也是利用類似的方式。

    2 TiDB的數(shù)據(jù)獲取

    TiDB 主要包括三個核心部件:TiDB Server、PD Server 和TiKV Server[15]。其中:TiDB Server 是計算層,負(fù)責(zé)SQL語句的執(zhí)行;TiKV Server 是存儲層,為TiDB 提供了分布式存儲;PD Server 負(fù)責(zé)集群管理,包括集群相關(guān)的元數(shù)據(jù)存儲、全局事務(wù)的管理以及TiKV集群的負(fù)載均衡。

    以表1 中模式為例,如果查詢?yōu)椤癝ELECT*FROM t1 WHERE a1<2 AND a3=3”,該查詢語句有兩種可能的表上數(shù)據(jù)訪問方式:全表掃描和索引掃描。

    2.1 全表掃描

    TiDB Server 通過PD 了解表上數(shù)據(jù)分布位置后,將全表掃描計劃以及過濾條件“a1<2 AND a3=3”發(fā)給對應(yīng)的TiKV。TiKV 對表t1上的元組逐一掃描并判斷是否滿足條件,將滿足條件的元組返回給TiDB Server,最后由TiDB Sever 返回給用戶。

    2.2 索引掃描

    TiDB 的索引掃描包含兩種:Index-only 掃描以及一般索引掃描。Index-only 掃描適合于查詢目標(biāo)列被索引覆蓋的場景。一般索引掃描先用索引獲取滿足條件的元組Rowid,然后利用Rowid去獲取對應(yīng)的表數(shù)據(jù)。

    3 整體框架與代價模型

    為能在TiDB 中利用多個索引協(xié)同完成查詢,本文提出了一種新的訪問路徑:MultiIndexPath。

    3.1 整體流程

    TiDB 中構(gòu)建邏輯計劃時,將生成一個全表掃描路徑以及所有可能的索引掃描路徑。MultiIndexPath 的生成位于邏輯優(yōu)化結(jié)束后、物理優(yōu)化開始前。在此過程中,優(yōu)化器會根據(jù)表上的條件以及索引信息生成可能的MultiIndexPath 加入備選路徑中。進(jìn)行物理優(yōu)化時,對每個MultiIndexPath 備選路徑根據(jù)4.2 小節(jié)中的代價模型估算代價,最終選中代價最低的物理計劃(記為MultiIndexPlan)。

    MultiIndexPlan 有兩種可能的執(zhí)行方案:1)利用索引掃描得到實(shí)際元組,對各個索引得到的實(shí)際元組執(zhí)行并或者交操作;2)利用索引獲取表上數(shù)據(jù)的Rowid,然后對Rowid 進(jìn)行交并操作,再根據(jù)結(jié)果獲取對應(yīng)的表數(shù)據(jù)。

    本文基于以下幾點(diǎn)考慮選擇了后一種方案:1)第一種方案需要獲取表元組的Rowid 值執(zhí)行交并,增加了一次對元組的解析操作;2)由于TiDB Server 利用RPC 從TiKV 獲取實(shí)際元組,重復(fù)元組會耗費(fèi)額外的網(wǎng)絡(luò)帶寬;3)TiDB 中索引掃描的流程是從TiKV 先獲取Rowid,然后通過Rowid 取表數(shù)據(jù),這種執(zhí)行模式為第二種方案提供了實(shí)現(xiàn)基礎(chǔ)。

    MultiIndexPlan的執(zhí)行如圖1所示。其中涉及到三類協(xié)程(routine):

    1)IndexWorker:每個索引對應(yīng)一個,執(zhí)行索引掃描,獲取滿足條件的Rowid;

    2)AndOrWorker:對返回的Rowid 集合進(jìn)行交并得到最終的Rowid集;

    3)TableWorker:根據(jù)AndOrWorker得到的Rowid集,獲取表元組。

    圖1 MultiIndexPlan執(zhí)行框架Fig.1 MultiIndexPlan execution framework

    3.2 代價模型

    MultiIndexPlan 的代價包括:索引掃描代價、Rowid 傳輸代價、表數(shù)據(jù)掃描代價、過濾條件計算代價、表元組傳輸代價以及執(zhí)行交并操作的代價。代價模型中用到的符號說明見表2。

    表2 代價模型的符號說明Tab.2 Symbol description of cost model

    在3.1 節(jié)中描述的本文所采用的執(zhí)行模型中,多個IndexWorker 并 行 進(jìn) 行Rowid 掃 描,得 到 的Rowid 由AndOrWorker 處理,最初增加并行度能夠提高性能,但過高的并行度會讓AndOrWorker 成為瓶頸,無法帶來性能提升。因此本文的代價模型中仍然按串行執(zhí)行的方式計算代價:

    4 路徑生成算法

    路徑生成分為兩個階段:第一階段生成所有可能的MultiIndexOrPath;第 二 階 段 生 成 所 有 可 能 的MultiIndexAndPath。

    4.1 MultiIndexOrPath 生成

    MultiIndexOrPath 生成算法如算法1 所示,輸入需要訪問的表上的索引集合Is 以及條件數(shù)組PCs,輸出為所有可能的備選MultiIndexOrPath(記為CP)。

    算法1 GenMultiIndexOrPaths。

    算法依次處理條件數(shù)組的每一項,對每一個數(shù)組元素cond,首先檢查該條件是否由OR 連接的表達(dá)式:如果不是則取數(shù)組的下一個條件進(jìn)行處理(見算法第4)行);如果是OR連接表達(dá)式,則將其展開。例如“((a1>1 OR a2<10)OR a3=5)”,將展開為[a1>1,a2<10,a3=5]。如果a1>1、a2<10、a3=5都能夠利用索引來進(jìn)行數(shù)據(jù)獲取,從它們?nèi)呔湍軌虻玫揭粋€MultiIndexOrPath 備選路徑。如果展開項中有一個不能利用索引,則該cond 不能生成MultiIndexOrPath(見算法12)~15)行)。

    每個子表達(dá)式可能有多個可用索引,當(dāng)前采用啟發(fā)式規(guī)則選擇其中一個索引:1)優(yōu)先選擇覆蓋更多表達(dá)式中屬性的索引;2)優(yōu)先選擇索引列數(shù)目最多的索引;3)如果通過上述兩條規(guī)則都無法確定,則隨機(jī)選擇一個索引。當(dāng)單個索引掃描路徑生成后,生成最終的MultiIndexOrPath(見算法19)行)。

    4.2 MultiIndexAndPath 生成

    MultiIndexAndPath 生成算法如算法2 所示,輸入為索引信息Is、條件數(shù)組PCs 以及已經(jīng)被用于生成MultiIndexOrPath的條件數(shù)組UCs。生成MultiIndexAndPath至少要兩個AND連接的條件,若條件數(shù)組中除去已用于MultiIndexOrPath 生成的條件少于兩個,則無法生成MultiIndexAndPath,直接返回(算法1)、2)行)。

    如果剩下的條件多于兩個,首先將已經(jīng)生成MultiIndexOrPath 的條件加入tableFilters 數(shù)組中,其次從條件數(shù)組中移除它們(算法4)、5)行)。針對新得到的條件數(shù)組的每一個條件表達(dá)式,生成所有可能的索引路徑。如果無法生成索引路徑,則將該條件加入tableFilters 數(shù)組中,然后進(jìn)行下一個條件的處理。如果有多個索引路徑生成,則基于啟發(fā)式規(guī)則選擇一個索引路徑返回(算法6)~12)行)。當(dāng)處理完所有條件后,得到的索引路徑多于2 個則生成MultiIndexAndPath(算法13)~16)行)。

    算法2 GenMultiIndexAndPaths。

    5 執(zhí)行優(yōu)化

    在MultiIndexPlan 執(zhí)行過程中,需要通過索引獲取Rowid并作交并操作,再根據(jù)結(jié)果Rowid 去獲取實(shí)際的數(shù)據(jù)。在作交并操作時,可通過有序集的歸并或者使用位圖方式來實(shí)現(xiàn)。兩個方法分別在許多數(shù)據(jù)庫都被采用,具體見第2 章描述。獲取所有Rowid 建立位圖或者獲取所有Rowid 后進(jìn)行排序再歸并的操作不能以Pipeline 模式執(zhí)行。盡管上述兩種執(zhí)行方式將對表上元組的隨機(jī)掃描變成順序掃描,在以傳統(tǒng)磁盤為介質(zhì)的環(huán)境中可以大幅度提升性能;同時各自都保證了集合操作結(jié)果的正確性。TiDB 的數(shù)據(jù)存儲層中的數(shù)據(jù)獲取方式與第2章中描述的數(shù)據(jù)庫有所不同。在TiDB 中,數(shù)據(jù)存儲管理由TiKV 完成,在最底層由RocksDB 進(jìn)行數(shù)據(jù)存儲。RocksDB 對外提供的數(shù)據(jù)獲取接口包括了prefixseek、get以及next方式。

    如果數(shù)據(jù)連續(xù)性比較好,則第一個數(shù)據(jù)用prefixseek 獲取,剩余的數(shù)據(jù)用next 獲取是效率更高的方法。如果數(shù)據(jù)連續(xù)性不好,用一個prefixseek 加多個next 的方式性能會比用多個prefixseek 的方式更差。例如,要從1 000 000 行中返回100行,平均每行之間相隔10 000 個Rowid,如果第二個數(shù)據(jù)采用next 的方式來獲取,則需要先執(zhí)行9 999 個無用的next。如果第二個數(shù)據(jù)采用prefixseek 的方式獲取,則只需要一個prefixseek 操作。兩種方式的代價比約為9 999×1∶8(單次prefixseek 和next 的 耗 時 比 約 為8∶1)。此 外,采 用 一 個prefixseek 加多個next的執(zhí)行方式還需要額外對所有Rowid 進(jìn)行排序的代價,而且這是一個斷流點(diǎn)。

    綜合以上分析以及TiDB 在Rowid 上的天然不連續(xù)性,本文認(rèn)為一個prefixseek 加多個next 的數(shù)據(jù)獲取方式不適合于MultiIndexPlan 的執(zhí)行,所以,本文提出對任意序的Rowid均能以Pipeline模式進(jìn)行表元組獲取的執(zhí)行方式。

    對于MultiIndexOrPath,采用一個集合來記錄當(dāng)前已經(jīng)發(fā)送給TableWorker 的Rowid,每當(dāng)索引(無論哪個索引)返回一個新的Rowid,先檢查其是否在集合中:如果存在(表示該Rowid 已經(jīng)被訪問過),則跳過該Rowid;如果不存在,將其加入集合中,并將該Rowid 發(fā)送給TableWorker 進(jìn)行表上元組獲取。

    對于MultIndexAndPath,以圖2 所示的例子說明算法原理。對每個索引增加一個集合,用于記錄當(dāng)前該索引已經(jīng)返回,但是還沒有進(jìn)行表上數(shù)據(jù)獲取的Rowid。在這個例子中記為set1 以及set2。假設(shè)上面的“ix1”和“ix2”索引交替返回Rowid。如果一個新的Rowid 從索引“ix1”返回,首先檢查該Rowid 是否在set2 中,如果存在,從set2 中刪除該Rowid,并發(fā)送給TableWorker;如果沒有在set2中,將其加入到set1中。同理對“ix2”返回的索引也是類似的處理流程。用表3來描述上例的處理流程。

    圖2 MultiIndexAnd執(zhí)行示例Fig.2 Example of MultiIndexAnd execution

    表3 MultiIndexPlan執(zhí)行流程示例Tab.3 Example of MultiIndexPlan execution process

    關(guān)于存儲Rowid 集合的數(shù)據(jù)結(jié)構(gòu),本文首先采用Bitmap來實(shí)現(xiàn)。實(shí)際測試也表明該方案執(zhí)行效率很高,但是TiDB 中的Rowid 為int64,所以可能會存儲264-1 個位,這會使得Bitmap 的尺寸超過內(nèi)存容量。本文最終選擇普通的Hashmap方式實(shí)現(xiàn),效率仍舊可以得到保證,對內(nèi)存的占用也較低。

    6 實(shí)驗與結(jié)果分析

    將本文方法在TiDB 3.0 版本中進(jìn)行了實(shí)現(xiàn),并通過多方面的實(shí)驗驗證了其效果,接下來就對實(shí)驗的方法和結(jié)果進(jìn)行介紹。

    6.1 實(shí)驗環(huán)境

    采用4 臺服務(wù)器組成集群,每臺機(jī)器處理器為Intel i7-7700,內(nèi)存16 GB,存儲為256 GB 的SSD;服務(wù)器之間通過千兆網(wǎng)連接;其中3 臺服務(wù)器用于TiKV 集群,另一臺服務(wù)器上搭建PD和TiDB Server。

    實(shí)驗中用到的數(shù)據(jù)如表4所示,由2個人工生成的數(shù)據(jù)集構(gòu)成。在數(shù)據(jù)集的每個列上均建有索引。查詢語句模板如表5所示。

    表4 數(shù)據(jù)集描述Tab.4 Description of datasets

    表5 SQL語句模板Tab.5 Statement templates of SQL

    6.2 結(jié)果及分析

    本實(shí)驗主要驗證下面幾個方面:1)添加多索引掃描方式后,針對本文所考慮的場景,查詢性能相比未添加該方式是否有性能提升;2)驗證在生成路徑時的啟發(fā)式規(guī)則的正確性。

    6.2.1 性能提升

    第一個實(shí)驗修改$1與$2的值,使得模板DNF 語句的選擇率從0.1%到80%。圖3 展示了優(yōu)化前、后TiDB 對DNF 語句的響應(yīng)時間變化情況。在選擇率低于60%的情況下,多索引訪問的方式優(yōu)于TiDB 原來的執(zhí)行方式,并且在選擇率低于8%時,有數(shù)量級的性能提升。原來TiDB 的全表掃描,執(zhí)行時間與表上數(shù)據(jù)元組數(shù)量相關(guān),因而隨著表上數(shù)據(jù)量增多,這種性能提升會更加地明顯。當(dāng)選擇率高于4%時,會看到優(yōu)化后的響應(yīng)時間會隨著選擇率成倍增長而對應(yīng)地倍增,主要原因是隨著選擇率增加,結(jié)果元組增多,而網(wǎng)絡(luò)開銷與結(jié)果元組的數(shù)目成正比,因而網(wǎng)絡(luò)開銷增大,并占主要部分。

    圖3 DNF測試Fig.3 Test of DNF

    第二個實(shí)驗修改$1 和$2 的值,使得每個索引的選擇率從1%到50%。圖4 展示了優(yōu)化前、后TiDB 對CNF 語句的響應(yīng)時間變化情況。其中,CNF-1 語句的查詢結(jié)果為空,CNF-2語句的查詢結(jié)果非空。上述選擇率是指單個索引上的選擇率。實(shí)驗結(jié)果表明,對于兩種查詢語句,多索引的訪問方式都略優(yōu)于原TiDB的掃描方式。

    圖4 CNF 測試Fig.4 Test of CNF

    6.2.2 啟發(fā)式索引選擇方式

    按4.2.1 節(jié)所述,適合一個條件的索引有多個時,將依照啟發(fā)式規(guī)則選擇索引,方便后面能夠進(jìn)行多個索引掃描的合并,減少并行。圖5 以及圖6 分別表示在DNF 條件以及CNF條件下,優(yōu)化后不同的并行度對響應(yīng)時間的影響。從圖5 和圖6 中看出,在誤差允許范圍內(nèi),隨著并行度的增加,性能并沒有得到相應(yīng)的提升,其原因是隨著并行度的增加,耗費(fèi)了更多的物理資源,如處理器、網(wǎng)絡(luò)帶寬等,抵消了性能收益。

    圖5 DNF并行度測試Fig.5 Test of parallelism degree of DNF

    圖6 CNF并行度測試Fig.6 Test of parallelism degree of CNF

    7 結(jié)語

    在約束條件含有多個索引屬性時,TiDB 不能利用多個索引提供更好的物理計劃。為了解決該問題,本文首先在TiDB中設(shè)計并實(shí)現(xiàn)了MultiIndexPath 的生成算法,并提出了一種Pipeline 模式的MultiIndexPlan 執(zhí)行算法。實(shí)驗結(jié)果表明在本文所考慮的場景中,利用多個索引的數(shù)據(jù)訪問有明顯的性能提升。

    猜你喜歡
    利用
    利用min{a,b}的積分表示解決一類絕對值不等式
    利用倒推破難點(diǎn)
    如何利用基本不等式比較大小
    利用一半進(jìn)行移多補(bǔ)少
    利用口訣算除法
    利用數(shù)的分解來思考
    Roommate is necessary when far away from home
    利用
    回收木再利用——Piet Hein Eek
    低丘緩坡未利用地的開發(fā)利用探討
    河北遙感(2015年4期)2015-07-18 11:05:06
    国产淫语在线视频| 亚洲国产欧美一区二区综合| 无人区码免费观看不卡| 免费在线观看日本一区| 亚洲中文字幕日韩| 国产淫语在线视频| 亚洲国产欧美一区二区综合| √禁漫天堂资源中文www| 色播在线永久视频| 99久久人妻综合| 欧美黑人欧美精品刺激| 超色免费av| 校园春色视频在线观看| 老熟妇乱子伦视频在线观看| 一区福利在线观看| 啪啪无遮挡十八禁网站| 一级片'在线观看视频| 亚洲av片天天在线观看| 久久精品国产a三级三级三级| 亚洲精品美女久久av网站| a在线观看视频网站| 熟女少妇亚洲综合色aaa.| 韩国av一区二区三区四区| 纯流量卡能插随身wifi吗| 欧美激情 高清一区二区三区| 国产精品久久久久久人妻精品电影| x7x7x7水蜜桃| 亚洲欧美一区二区三区久久| 国产日韩欧美亚洲二区| 欧美日韩亚洲综合一区二区三区_| 99热国产这里只有精品6| xxx96com| 老汉色∧v一级毛片| 久久精品国产清高在天天线| 在线观看午夜福利视频| 丰满迷人的少妇在线观看| 精品福利观看| 精品国产美女av久久久久小说| 久久精品国产亚洲av高清一级| aaaaa片日本免费| 91精品国产国语对白视频| 999精品在线视频| a级片在线免费高清观看视频| 亚洲黑人精品在线| 正在播放国产对白刺激| 天堂俺去俺来也www色官网| 精品人妻在线不人妻| 满18在线观看网站| 成人国语在线视频| 一边摸一边抽搐一进一出视频| 亚洲国产毛片av蜜桃av| 天天操日日干夜夜撸| 精品久久蜜臀av无| 亚洲午夜精品一区,二区,三区| 色在线成人网| 99国产精品一区二区蜜桃av | 成年动漫av网址| 久久人妻熟女aⅴ| 两人在一起打扑克的视频| 99国产精品99久久久久| 久久国产乱子伦精品免费另类| 一个人免费在线观看的高清视频| 亚洲免费av在线视频| 亚洲av片天天在线观看| 亚洲欧美色中文字幕在线| 欧美日韩亚洲综合一区二区三区_| 日本撒尿小便嘘嘘汇集6| 中文字幕高清在线视频| 叶爱在线成人免费视频播放| 极品人妻少妇av视频| 中文字幕高清在线视频| 国产精品久久久av美女十八| 国产有黄有色有爽视频| 一级片'在线观看视频| 亚洲一区中文字幕在线| 亚洲片人在线观看| 一区二区三区精品91| 国产高清videossex| 国产精品99久久99久久久不卡| 午夜福利欧美成人| 亚洲九九香蕉| av网站免费在线观看视频| tube8黄色片| 亚洲美女黄片视频| 国产在线一区二区三区精| 超碰成人久久| 国产蜜桃级精品一区二区三区 | 激情视频va一区二区三区| 丰满的人妻完整版| 久久香蕉激情| 久久精品亚洲精品国产色婷小说| av在线播放免费不卡| 久久精品国产亚洲av高清一级| 色综合欧美亚洲国产小说| 亚洲国产精品合色在线| 1024香蕉在线观看| 女警被强在线播放| 一本综合久久免费| 精品人妻在线不人妻| 这个男人来自地球电影免费观看| 窝窝影院91人妻| 亚洲全国av大片| 视频区欧美日本亚洲| 人人妻人人澡人人看| 一区二区三区国产精品乱码| 国产在线观看jvid| 又大又爽又粗| 真人做人爱边吃奶动态| 精品一区二区三卡| 欧美乱妇无乱码| 一级毛片女人18水好多| 村上凉子中文字幕在线| 亚洲精品自拍成人| 成人精品一区二区免费| av在线播放免费不卡| 最近最新免费中文字幕在线| 国产激情欧美一区二区| 亚洲成人免费av在线播放| 51午夜福利影视在线观看| 国产亚洲欧美精品永久| 999久久久精品免费观看国产| 亚洲久久久国产精品| 欧美日韩福利视频一区二区| 高清欧美精品videossex| 国产一区在线观看成人免费| 中文欧美无线码| 中文字幕av电影在线播放| 久久精品国产a三级三级三级| 欧美日韩乱码在线| 最新美女视频免费是黄的| 亚洲国产欧美日韩在线播放| 亚洲精品中文字幕一二三四区| 老司机福利观看| 久热爱精品视频在线9| 他把我摸到了高潮在线观看| 久久久精品国产亚洲av高清涩受| 欧美精品亚洲一区二区| 亚洲精品粉嫩美女一区| 欧美一级毛片孕妇| 婷婷成人精品国产| 午夜亚洲福利在线播放| 久久热在线av| 免费看a级黄色片| 久久中文字幕人妻熟女| 制服人妻中文乱码| 女人高潮潮喷娇喘18禁视频| 1024视频免费在线观看| 美女福利国产在线| 午夜福利乱码中文字幕| 欧美日韩一级在线毛片| 激情在线观看视频在线高清 | 一级毛片高清免费大全| 精品视频人人做人人爽| 久久香蕉激情| 老司机在亚洲福利影院| 大香蕉久久网| 欧美中文综合在线视频| 亚洲全国av大片| 少妇裸体淫交视频免费看高清 | av国产精品久久久久影院| 亚洲少妇的诱惑av| 十八禁人妻一区二区| 久久青草综合色| 亚洲av成人不卡在线观看播放网| av网站免费在线观看视频| 黑人欧美特级aaaaaa片| 欧美精品高潮呻吟av久久| 久久亚洲真实| 热re99久久国产66热| 天天影视国产精品| 精品熟女少妇八av免费久了| 国产乱人伦免费视频| 一本一本久久a久久精品综合妖精| 免费在线观看黄色视频的| 咕卡用的链子| 亚洲av美国av| 久久精品国产99精品国产亚洲性色 | 久久狼人影院| 99热国产这里只有精品6| 两性午夜刺激爽爽歪歪视频在线观看 | 国产欧美日韩精品亚洲av| 免费不卡黄色视频| 九色亚洲精品在线播放| 岛国毛片在线播放| 亚洲精品国产一区二区精华液| 亚洲精品在线美女| 亚洲aⅴ乱码一区二区在线播放 | 新久久久久国产一级毛片| 国产精品 国内视频| 啦啦啦在线免费观看视频4| 久久国产乱子伦精品免费另类| a在线观看视频网站| 亚洲国产欧美网| 日韩欧美一区视频在线观看| 免费不卡黄色视频| 每晚都被弄得嗷嗷叫到高潮| 色精品久久人妻99蜜桃| 国产亚洲精品一区二区www | 亚洲av片天天在线观看| 深夜精品福利| 欧美另类亚洲清纯唯美| 极品少妇高潮喷水抽搐| 久久九九热精品免费| 成人黄色视频免费在线看| av电影中文网址| 丰满的人妻完整版| 女人精品久久久久毛片| 悠悠久久av| 国产av精品麻豆| 伦理电影免费视频| 天天躁狠狠躁夜夜躁狠狠躁| 久久久国产成人免费| 久久精品亚洲熟妇少妇任你| 日本精品一区二区三区蜜桃| 国产精品免费大片| 一进一出抽搐gif免费好疼 | 高潮久久久久久久久久久不卡| 午夜影院日韩av| 桃红色精品国产亚洲av| 岛国在线观看网站| 精品久久久久久久毛片微露脸| 夫妻午夜视频| 国产野战对白在线观看| 成人手机av| 亚洲专区字幕在线| 亚洲精品粉嫩美女一区| 最近最新中文字幕大全电影3 | 女警被强在线播放| 激情视频va一区二区三区| 精品人妻熟女毛片av久久网站| 黄片大片在线免费观看| 女警被强在线播放| 青草久久国产| 国产精品免费大片| 侵犯人妻中文字幕一二三四区| 巨乳人妻的诱惑在线观看| 成人亚洲精品一区在线观看| 久久香蕉激情| 真人做人爱边吃奶动态| 成人av一区二区三区在线看| 美女高潮到喷水免费观看| 久久久精品国产亚洲av高清涩受| 色播在线永久视频| 天天躁狠狠躁夜夜躁狠狠躁| 狠狠狠狠99中文字幕| 一级片'在线观看视频| 九色亚洲精品在线播放| 欧美老熟妇乱子伦牲交| 国产精品偷伦视频观看了| 久久精品亚洲精品国产色婷小说| 久久久久精品人妻al黑| 国产高清国产精品国产三级| 久久精品熟女亚洲av麻豆精品| 操出白浆在线播放| 亚洲欧美精品综合一区二区三区| 久久99一区二区三区| 啦啦啦视频在线资源免费观看| 精品人妻在线不人妻| 色婷婷av一区二区三区视频| 国产精品综合久久久久久久免费 | 久久亚洲精品不卡| 首页视频小说图片口味搜索| av线在线观看网站| 免费在线观看黄色视频的| 亚洲欧美日韩另类电影网站| 久久久久久久精品吃奶| 国产免费男女视频| 国产精品自产拍在线观看55亚洲 | 国产精品av久久久久免费| 人人妻人人添人人爽欧美一区卜| 黄片小视频在线播放| 中出人妻视频一区二区| 日韩成人在线观看一区二区三区| 免费不卡黄色视频| 老熟女久久久| 三级毛片av免费| 久久久精品区二区三区| 18禁裸乳无遮挡免费网站照片 | 日韩欧美一区视频在线观看| 国产亚洲欧美精品永久| 免费少妇av软件| 无人区码免费观看不卡| 亚洲专区中文字幕在线| 青草久久国产| 国产精品亚洲一级av第二区| 久久久久久久久久久久大奶| 欧美激情久久久久久爽电影 | 99国产精品免费福利视频| 欧美日韩亚洲国产一区二区在线观看 | 亚洲精品美女久久av网站| 国产片内射在线| 国产一区有黄有色的免费视频| 黄色片一级片一级黄色片| 激情视频va一区二区三区| 啪啪无遮挡十八禁网站| 欧美不卡视频在线免费观看 | 国产成人免费观看mmmm| 婷婷精品国产亚洲av在线 | 村上凉子中文字幕在线| 国产成人免费观看mmmm| 国产男靠女视频免费网站| 亚洲人成电影免费在线| 国产精品综合久久久久久久免费 | 99re6热这里在线精品视频| svipshipincom国产片| 欧美精品高潮呻吟av久久| 国产麻豆69| 国产成人欧美| 如日韩欧美国产精品一区二区三区| av免费在线观看网站| 久久精品国产亚洲av高清一级| netflix在线观看网站| 在线天堂中文资源库| 两个人看的免费小视频| 亚洲男人天堂网一区| 国产精品欧美亚洲77777| 欧美精品高潮呻吟av久久| 老司机午夜十八禁免费视频| 99国产极品粉嫩在线观看| 麻豆国产av国片精品| 国产亚洲精品久久久久久毛片 | 一进一出抽搐gif免费好疼 | 精品国产国语对白av| 国产精品九九99| 人人妻人人添人人爽欧美一区卜| 国产精品免费一区二区三区在线 | 国产精品久久久av美女十八| 99久久精品国产亚洲精品| ponron亚洲| 欧美色视频一区免费| 动漫黄色视频在线观看| 国产精华一区二区三区| 亚洲精品中文字幕在线视频| 久久久国产成人免费| 国产无遮挡羞羞视频在线观看| 中亚洲国语对白在线视频| 老熟妇乱子伦视频在线观看| 一级片免费观看大全| 激情在线观看视频在线高清 | 亚洲精品中文字幕在线视频| 亚洲熟女精品中文字幕| 黄色 视频免费看| 一区二区三区精品91| 亚洲精品成人av观看孕妇| 国产精品久久久久久人妻精品电影| 热99国产精品久久久久久7| 成在线人永久免费视频| 欧美乱色亚洲激情| 久久99一区二区三区| 久久精品亚洲熟妇少妇任你| 亚洲aⅴ乱码一区二区在线播放 | 欧美精品一区二区免费开放| av超薄肉色丝袜交足视频| 久久香蕉国产精品| 国内久久婷婷六月综合欲色啪| 午夜免费成人在线视频| 欧美精品人与动牲交sv欧美| 免费av中文字幕在线| 老熟女久久久| 亚洲国产欧美一区二区综合| 中文字幕精品免费在线观看视频| 国产欧美日韩精品亚洲av| 校园春色视频在线观看| 自线自在国产av| 欧美在线一区亚洲| 欧美 亚洲 国产 日韩一| 欧美日本中文国产一区发布| 国产激情久久老熟女| 色在线成人网| 国产成人av教育| 久久久久久免费高清国产稀缺| 精品久久久久久久毛片微露脸| 午夜免费鲁丝| 久久久精品免费免费高清| 夜夜夜夜夜久久久久| 天天躁夜夜躁狠狠躁躁| 如日韩欧美国产精品一区二区三区| 国产精品98久久久久久宅男小说| 色94色欧美一区二区| 人人妻人人添人人爽欧美一区卜| 色在线成人网| 久久九九热精品免费| 亚洲成人手机| 日韩欧美三级三区| 高清av免费在线| 精品人妻1区二区| 男人操女人黄网站| 欧美日韩av久久| 免费高清在线观看日韩| 亚洲精品国产色婷婷电影| 十八禁高潮呻吟视频| 99国产精品一区二区蜜桃av | 精品久久久久久,| 别揉我奶头~嗯~啊~动态视频| 天堂俺去俺来也www色官网| 久久天躁狠狠躁夜夜2o2o| 丝袜美足系列| 亚洲熟妇熟女久久| 黄色a级毛片大全视频| 天天躁狠狠躁夜夜躁狠狠躁| 久久久久国内视频| 91九色精品人成在线观看| 少妇被粗大的猛进出69影院| 别揉我奶头~嗯~啊~动态视频| 亚洲自偷自拍图片 自拍| 深夜精品福利| 成人国语在线视频| 黄网站色视频无遮挡免费观看| 女人久久www免费人成看片| 亚洲综合色网址| 黄色 视频免费看| 男女免费视频国产| xxxhd国产人妻xxx| 搡老岳熟女国产| e午夜精品久久久久久久| 亚洲欧美激情在线| 亚洲黑人精品在线| 精品久久久久久久久久免费视频 | 中文字幕精品免费在线观看视频| 精品国产美女av久久久久小说| 成人国语在线视频| 久久婷婷成人综合色麻豆| 久久久久久久久久久久大奶| 精品卡一卡二卡四卡免费| 黄片小视频在线播放| 亚洲综合色网址| www.自偷自拍.com| 十八禁人妻一区二区| av不卡在线播放| 国产一区二区激情短视频| 丰满人妻熟妇乱又伦精品不卡| 91成人精品电影| 精品熟女少妇八av免费久了| 亚洲专区国产一区二区| a在线观看视频网站| 一边摸一边抽搐一进一出视频| 国产精品久久视频播放| 每晚都被弄得嗷嗷叫到高潮| 亚洲成a人片在线一区二区| 在线观看一区二区三区激情| 色尼玛亚洲综合影院| 亚洲av美国av| 亚洲午夜理论影院| 交换朋友夫妻互换小说| 精品国产亚洲在线| 无人区码免费观看不卡| 精品一区二区三卡| 黄片播放在线免费| 国产精品自产拍在线观看55亚洲 | 91国产中文字幕| 天天躁夜夜躁狠狠躁躁| 91麻豆av在线| 人妻一区二区av| 在线观看免费高清a一片| 国产精品av久久久久免费| 下体分泌物呈黄色| 国产欧美日韩一区二区精品| 91成人精品电影| 国产精品 欧美亚洲| 91精品三级在线观看| 精品卡一卡二卡四卡免费| 高清黄色对白视频在线免费看| 麻豆乱淫一区二区| 黄色片一级片一级黄色片| 国产精品久久久av美女十八| 久久影院123| 久久久久久久午夜电影 | 亚洲国产看品久久| 久久热在线av| 黑丝袜美女国产一区| 久久久久国产精品人妻aⅴ院 | 日本五十路高清| 色综合欧美亚洲国产小说| 欧美激情 高清一区二区三区| 在线观看免费高清a一片| 51午夜福利影视在线观看| 国产精品亚洲一级av第二区| 精品国产一区二区久久| 亚洲片人在线观看| 国产精品电影一区二区三区 | 女同久久另类99精品国产91| 在线观看免费午夜福利视频| 国产xxxxx性猛交| 久久ye,这里只有精品| 国产一区二区激情短视频| 久久精品亚洲熟妇少妇任你| 久久九九热精品免费| 亚洲少妇的诱惑av| 亚洲精品国产色婷婷电影| 99re6热这里在线精品视频| 搡老熟女国产l中国老女人| 国产精品久久久久久人妻精品电影| 精品少妇一区二区三区视频日本电影| 亚洲一区二区三区欧美精品| 亚洲专区国产一区二区| 亚洲精品国产区一区二| 精品国产一区二区三区久久久樱花| 色综合婷婷激情| 国产欧美亚洲国产| 久久人妻av系列| 热99久久久久精品小说推荐| 欧美丝袜亚洲另类 | 捣出白浆h1v1| 国产精品电影一区二区三区 | 一级毛片精品| 美女高潮到喷水免费观看| 美国免费a级毛片| av网站免费在线观看视频| 精品福利观看| 麻豆av在线久日| 成人特级黄色片久久久久久久| 丝袜人妻中文字幕| 国产亚洲精品久久久久久毛片 | 欧美国产精品va在线观看不卡| 亚洲精品中文字幕一二三四区| 成年人午夜在线观看视频| 久久久久久久久久久久大奶| 一级黄色大片毛片| 久久精品亚洲av国产电影网| 欧美亚洲日本最大视频资源| 日韩有码中文字幕| 自线自在国产av| 亚洲成a人片在线一区二区| 精品国产一区二区三区四区第35| 国产精品 欧美亚洲| 国产精品国产av在线观看| 国产精品一区二区免费欧美| 五月开心婷婷网| 丝袜美足系列| 女人久久www免费人成看片| 久久精品国产综合久久久| 狠狠婷婷综合久久久久久88av| a级毛片黄视频| 国产精品久久视频播放| 国产亚洲av高清不卡| 91国产中文字幕| 欧美+亚洲+日韩+国产| 久久久久视频综合| 在线观看免费视频网站a站| 国产精品免费大片| 国产91精品成人一区二区三区| 国产高清videossex| 少妇被粗大的猛进出69影院| 伦理电影免费视频| 人妻一区二区av| 久久 成人 亚洲| 亚洲av日韩精品久久久久久密| 亚洲 欧美一区二区三区| 欧美日本中文国产一区发布| 中文字幕av电影在线播放| 国产精品九九99| 王馨瑶露胸无遮挡在线观看| 少妇裸体淫交视频免费看高清 | 久久午夜亚洲精品久久| 亚洲精品一卡2卡三卡4卡5卡| 一边摸一边抽搐一进一小说 | 成年人黄色毛片网站| 少妇粗大呻吟视频| 免费在线观看亚洲国产| 天天躁狠狠躁夜夜躁狠狠躁| 免费久久久久久久精品成人欧美视频| 国产主播在线观看一区二区| 久久ye,这里只有精品| 亚洲成av片中文字幕在线观看| 热re99久久国产66热| 一边摸一边抽搐一进一小说 | 国产aⅴ精品一区二区三区波| 香蕉丝袜av| 免费在线观看影片大全网站| 大片电影免费在线观看免费| 视频区欧美日本亚洲| 欧美成人午夜精品| 久久草成人影院| 老汉色av国产亚洲站长工具| 精品福利观看| 亚洲成a人片在线一区二区| 日本精品一区二区三区蜜桃| 亚洲午夜精品一区,二区,三区| 午夜老司机福利片| 国产不卡av网站在线观看| 高清欧美精品videossex| 99香蕉大伊视频| 少妇被粗大的猛进出69影院| 久久精品亚洲精品国产色婷小说| 亚洲一卡2卡3卡4卡5卡精品中文| 久久久精品免费免费高清| 好看av亚洲va欧美ⅴa在| 中文欧美无线码| 久久精品熟女亚洲av麻豆精品| 王馨瑶露胸无遮挡在线观看| 欧美成狂野欧美在线观看| 成年动漫av网址| 韩国av一区二区三区四区| 欧美成狂野欧美在线观看| avwww免费| 91九色精品人成在线观看| 久9热在线精品视频| 亚洲片人在线观看| 精品卡一卡二卡四卡免费| 欧美精品一区二区免费开放| 成年动漫av网址| 香蕉久久夜色| 99精品久久久久人妻精品| 欧美午夜高清在线| 免费日韩欧美在线观看| 久久久精品国产亚洲av高清涩受| 午夜福利,免费看| 9热在线视频观看99| 操美女的视频在线观看| 男女床上黄色一级片免费看| 欧美精品亚洲一区二区| 久久久国产成人精品二区 | 三级毛片av免费| 人人妻人人爽人人添夜夜欢视频| 又黄又爽又免费观看的视频|