国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

后端接口如何提高性能?從MySQL、ES、HBASE等技術(shù)一起探討下!

共 8011字,需瀏覽 17分鐘

 ·

2020-12-23 10:19

作者:llc687

https://llc687.top/post/如何完成一次快速的查詢

哪個(gè)男孩不想完成一次快速的查詢?

1. MySQL查詢慢是什么體驗(yàn)?

謝邀,利益相關(guān)。

大多數(shù)互聯(lián)網(wǎng)應(yīng)用場景都是讀多寫少,業(yè)務(wù)邏輯更多分布在寫上。對讀的要求大概就是要快。那么都有什么原因會導(dǎo)致我們完成一次出色的慢查詢呢?

1.1 索引

在數(shù)據(jù)量不是很大時(shí),大多慢查詢可以用索引解決,大多慢查詢也因?yàn)樗饕缓侠矶a(chǎn)生。

MySQL 索引基于 B+ 樹,這句話相信面試都背爛了,接著就可以問最左前綴索引、 B+ 樹和各種樹了。

說到最左前綴,實(shí)際就是組合索引的使用規(guī)則,使用合理組合索引可以有效的提高查詢速度,為什么呢?

因?yàn)樗饕峦?。如果查詢條件包含在了組合索引中,比如存在組合索引(a,b),查詢到滿足 a 的記錄后會直接在索引內(nèi)部判斷 b 是否滿足,減少回表次數(shù)。同時(shí),如果查詢的列恰好包含在組合索引中,即為覆蓋索引,無需回表。索引規(guī)則估計(jì)都知道,實(shí)際開發(fā)中也會創(chuàng)建和使用。問題可能更多的是:為什么建了索引還慢?

1.1.1 什么原因?qū)е滤饕?span style="display: none;">

建了索引還慢,多半是索引失效(未使用),可用 explain 分析。索引失效常見原因有 :

  1. where 中使用 != 或 <> 或 or 或表達(dá)式或函數(shù)(左側(cè))

  2. like 語句 % 開頭

  3. 字符串未加’’

  4. 索引字段區(qū)分度過低,如性別

  5. 未匹配最左前綴

(一張嘴就知道老面試題了) 為什么這些做法會導(dǎo)致失效,成熟的 MySQL 也有自己的想法。

1.1.2 這些原因?yàn)槭裁磳?dǎo)致索引失效

如果要 MySQL 給一個(gè)理由,還是那棵 B+ 樹。

函數(shù)操作

當(dāng)在 查詢 where = 左側(cè)使用表達(dá)式或函數(shù)時(shí),如字段 A 為字符串型且有索引, 有?where length(a) = 6查詢,這時(shí)傳遞一個(gè) 6 到 A 的索引樹,不難想象在樹的第一層就迷路了。

隱式轉(zhuǎn)換

隱式類型轉(zhuǎn)換和隱式字符編碼轉(zhuǎn)換也會導(dǎo)致這個(gè)問題。

  • 隱式類型轉(zhuǎn)換對于 JOOQ 這種框架來說一般倒不會出現(xiàn)。

  • 隱式字符編碼轉(zhuǎn)換在連表查詢時(shí)倒可能出現(xiàn),即連表字段的類型相同但字符編碼不同。

破壞了有序性

至于 Like 語句 % 開頭、字符串未加 ’’ 原因基本一致,MySQL 認(rèn)為對索引字段的操作可能會破壞索引有序性就機(jī)智的優(yōu)化掉了。

不過,對于如性別這種區(qū)分度過低的字段,索引失效就不是因?yàn)檫@個(gè)原因。

1.1.3 性別字段為什么不要加索引

為什么索引區(qū)分度低的字段不要加索引。盲猜效率低,效率的確低,有時(shí)甚至?xí)扔跊]加。

對于非聚簇索引,是要回表的。假如有 100 條數(shù)據(jù),在 sex 字段建立索引,掃描到 51 個(gè) male,需要再回表掃描 51 行。還不如直接來一次全表掃描呢。

所以,InnoDB 引擎對于這種場景就會放棄使用索引,至于區(qū)分度多低多少會放棄,大致是某類型的數(shù)據(jù)占到總的 30% 左右時(shí),就會放棄使用該字段的索引,有興趣可以試一下。

1.1.4 有什么好用且簡單的索引方法

前面說到大多慢查詢都源于索引,怎么建立并用好索引。這里有一些簡單的規(guī)則。

  • 索引下推:性別字段不適合建索引,但確實(shí)存在查詢場景怎么辦?如果是多條件查詢,可以建立聯(lián)合索引利用該特性優(yōu)化。

  • 覆蓋索引:也是聯(lián)合索引,查詢需要的信息在索引里已經(jīng)包含了,就不會再回表了。

  • 前綴索引:對于字符串,可以只在前 N 位添加索引,避免不必要的開支。假如的確需要如關(guān)鍵字查詢,那交給更合適的如 ES 或許更好。

  • 不要對索引字段做函數(shù)操作

  • 對于確定的、寫多讀少的表或者頻繁更新的字段都應(yīng)該考慮索引的維護(hù)成本。

1.1.5 如何評價(jià) MySQL 選錯(cuò)了索引

有時(shí),建立了猛一看挺正確的索引,但事情卻沒按計(jì)劃發(fā)展。就像“為啥 XXX 有索引,根據(jù)它查詢還是慢查詢”。

此刻沒準(zhǔn)要自信點(diǎn):我的代碼不可能有 BUG,肯定是 MySQL 出了問題。MySQL 的確可能有點(diǎn)問題。

這種情況常見于建了一大堆索引,查詢條件一大堆。沒使用你想讓它用的那一個(gè),而是選了個(gè)區(qū)分度低的,導(dǎo)致過多的掃描。造成的原因基本有兩個(gè):

  • 信息統(tǒng)計(jì)不準(zhǔn)確:可以使用?analyze table x重新分析。

  • 優(yōu)化器誤判:可以?force index強(qiáng)制指定?;蛐薷恼Z句引導(dǎo)優(yōu)化器,增加或刪除索引繞過。

但根據(jù)我淺薄的經(jīng)驗(yàn)來看,更可能是因?yàn)槟憬诵]必要的索引導(dǎo)致的。不會真有人以為 MySQL 沒自己機(jī)靈吧?

除了上面這些索引原因外,還有下面這些不常見或者說不好判斷的原因存在。

1.2 等MDL鎖

在 MySQL 5.5 版本中引入了 MDL,對一個(gè)表做 CRUD 操作時(shí),自動加 MDL 讀鎖;對表結(jié)構(gòu)做變更時(shí),加 MDL 寫鎖。讀寫鎖、寫鎖間互斥。

當(dāng)某語句拿 MDL 寫鎖就會阻塞 MDL 讀鎖,可以使用show processlist命令查看處于Waiting for table metadata lock狀態(tài)的語句。

1.3 等 flush

flush 很快,大多是因?yàn)?flush 命令被別的語句堵住,它又堵住了 select 。通過show processlist命令查看時(shí)會發(fā)現(xiàn)處于Waiting for table flush狀態(tài)。

1.4 等行鎖

某事物持有寫鎖未提交。

1.5 當(dāng)前讀

InnoDB 默認(rèn)級別是可重復(fù)讀。設(shè)想一個(gè)場景:事物 A 開始事務(wù),事務(wù) B 也開始執(zhí)行大量更新。B 率先提交, A 是當(dāng)前讀,就要依次執(zhí)行 undo log ,直到找到事務(wù) B 開始前的值。

1.6 大表場景

在未二次開發(fā)的 MYSQL 中,上億的表肯定算大表,這種情況即使在索引、查詢層面做到了較好實(shí)現(xiàn),面對頻繁聚合操作也可能會出現(xiàn) IO 或 CPU 瓶頸,即使是單純查詢,效率也會下降。

且 Innodb 每個(gè) B+ 樹節(jié)點(diǎn)存儲容量是 16 KB,理論上可存儲 2kw 行左右,這時(shí)樹高為3層。我們知道,innodb_buffer_pool 用來緩存表及索引,如果索引數(shù)據(jù)較大,緩存命中率就堪憂,同時(shí) innodb_buffer_pool 采用 LRU 算法進(jìn)行頁面淘汰,如果數(shù)據(jù)量過大,對老或非熱點(diǎn)數(shù)據(jù)的查詢可能就會把熱點(diǎn)數(shù)據(jù)給擠出去。

所以對于大表常見優(yōu)化即是分庫分表和讀寫分離了。

1.6.1 分庫分表

方案

是分庫還是分表呢?這要具體分析。

  • 如果磁盤或網(wǎng)絡(luò)有 IO 瓶頸,那就要分庫和垂直分表。

  • 如果是 CPU 瓶頸,即查詢效率偏低,水平分表。

水平即切分?jǐn)?shù)據(jù),分散原有數(shù)據(jù)到更多的庫表中。

垂直即按照業(yè)務(wù)對庫,按字段對表切分。

工具方面有 sharding-sphere、TDDL、Mycat。動起手來需要先評估分庫、表數(shù),制定分片規(guī)則選 key,再開發(fā)和數(shù)據(jù)遷移,還要考慮擴(kuò)容問題。

問題

實(shí)際運(yùn)行中,寫問題不大,主要問題在于唯一 ID 生成、非 partition key 查詢、擴(kuò)容。

  • 唯一 ID 方法很多,DB 自增、Snowflake、號段、一大波GUID算法等。

  • 非 partition key 查詢常用映射法解決,映射表用到覆蓋索引的話還是很快的?;蛘呖梢院推渌?DB 組合。

  • 擴(kuò)容要根據(jù)分片時(shí)的策略確定,范圍分片的話就很簡單,而隨機(jī)取模分片就要遷移數(shù)據(jù)了。也可以用范圍 + 取模的模式分片,先取模再范圍,可以避免一定程度的數(shù)據(jù)遷移。

當(dāng)然,如果分庫還會面臨事務(wù)一致性和跨庫 join 等問題。

1.6.2 讀寫分離

為什么要讀寫分離

分表針對大表解決 CPU 瓶頸,分庫解決 IO 瓶頸,二者將存儲壓力解決了。但查詢還不一定。

如果落到 DB 的 QPS 還是很高,且讀遠(yuǎn)大于寫,就可以考慮讀寫分離,基于主從模式將讀的壓力分?jǐn)?,避免單機(jī)負(fù)載過高,同時(shí)也保證了高可用,實(shí)現(xiàn)了負(fù)載均衡。

問題

主要問題有過期讀和分配機(jī)制。

  • 過期讀,也就是主從延時(shí)問題,這個(gè)對于。

  • 分配機(jī)制,是走主還是從庫??梢灾苯哟a中根據(jù)語句類型切換或者使用中間件。

1.7 小結(jié)

以上列舉了 MySQL 常見慢查詢原因和處理方法,介紹了應(yīng)對較大數(shù)據(jù)場景的常用方法。

分庫分表和讀寫分離是針對大數(shù)據(jù)或并發(fā)場景的,同時(shí)也為了提高系統(tǒng)的穩(wěn)定和拓展性。但也不是所有的問題都最適合這么解決。

2. 如何評價(jià) ElasticSearch

前文有提到對于關(guān)鍵字查詢可以使用 ES。那接著聊聊 ES 。

2.1 可以干什么

ES 是基于 Lucene 的近實(shí)時(shí)分布式搜索引擎。使用場景有全文搜索、NoSQL Json 文檔數(shù)據(jù)庫、監(jiān)控日志、數(shù)據(jù)采集分析等。

對非數(shù)據(jù)開發(fā)來說,常用的應(yīng)該就是全文檢索和日志了。ES 的使用中,常和 Logstash, Kibana 結(jié)合,也成為 ELK 。先來瞧瞧日志怎么用的。

下面是我司日志系統(tǒng)某檢索操作:打開 Kibana 在 Discover 頁面輸入格式如 “xxx” 查詢。

該操作可以在 Dev Tools 的控制臺替換為:

GET?yourIndex/_search??
{????
?"from"?:?0,?"size"?:?10,??
?"query"?:?{??
????????"match_phrase"?:?{??
????????????"log"?:?"xxx"???????
????????}??
????}??
}??

什么意思?Discover 中加上 “” 和 console 中的 match_phrase 都代表這是一個(gè)短語匹配,意味著只保留那些包含全部搜索詞項(xiàng),且位置與搜索詞項(xiàng)相同的文檔。

2.2 ES 的結(jié)構(gòu)

在 ES 7.0 之前存儲結(jié)構(gòu)是 Index -> Type -> Document,按 MySQL 對比就是 database - table - id(實(shí)際這種對比不那么合理)。7.0 之后 Type 被廢棄了,就暫把 index 當(dāng)做 table 吧。

在 Dev Tools 的 Console 可以通過以下命令查看一些基本信息。也可以替換為 crul 命令。

  1. GET /_cat/health?v&pretty:查看集群健康狀態(tài)
  2. GET /_cat/shards?v :查看分片狀態(tài)
  3. GET?yourindex/_mapping???:index?mapping結(jié)構(gòu)
  4. GET?yourindex/_settings???:index?setting結(jié)構(gòu)
  5. GET?/_cat/indices?v???:查看當(dāng)前節(jié)點(diǎn)所有索引信息

重點(diǎn)是 mapping 和 setting ,mapping 可以理解為 MySQL 中表的結(jié)構(gòu)定義,setting 負(fù)責(zé)控制如分片數(shù)量、副本數(shù)量。

以下是截取了某日志 index 下的部分 mapping 結(jié)構(gòu),ES 對字符串類型會默認(rèn)定義成 text ,同時(shí)為它定義一個(gè)叫做 keyword 的子字段。這兩的區(qū)別是:text 類型會進(jìn)行分詞, keyword 類型不會進(jìn)行分詞。

"******":?{??
????"mappings":?{??
??????"doc":?{??
????????"properties":?{??
??????????"appname":?{??
????????????"type":?"text",??
????????????"fields":?{??
??????????????"keyword":?{??
????????????????"type":?"keyword",??
????????????????"ignore_above":?256??
??????????????}??
????????????}??

2.3 ES 查詢?yōu)槭裁纯欤?span style="display: none;">

分詞是什么意思?看完 ES 的索引原理你就 get 了。

ES 基于倒排索引。嘛意思?傳統(tǒng)索引一般是以文檔 ID 作索引,以內(nèi)容作為記錄。倒排索引相反,根據(jù)已有屬性值,去找到相應(yīng)的行所在的位置,也就是將單詞或內(nèi)容作為索引,將文檔 ID 作為記錄。

下圖是 ES 倒排索引的示意圖,由 Term index,Team Dictionary 和 Posting List 組成。

圖片

圖中的 Ada、Sara 被稱作 term,其實(shí)就是分詞后的詞了。如果把圖中的 Term Index 去掉,是不是有點(diǎn)像 MySQL 了?Term Dictionary 就像二級索引,但 MySQL 是保存在磁盤上的,檢索一個(gè) term 需要若干次的 random access 磁盤操作。

而 ES 在 Term Dictionary 基礎(chǔ)上多了層 Term Index ,它以 FST 形式保存在內(nèi)存中,保存著 term 的前綴,借此可以快速的定位到 Term dictionary 的本 term 的 offset 。而且 FST 形式和 Term dictionary 的 block 存儲方式都很節(jié)省內(nèi)存和磁盤空間。

到這就知道為啥快了,就是因?yàn)橛辛藘?nèi)存中的 Term Index , 它為 term 的索引 Term Dictionary 又做了一層索引。

不過,也不是說 ES 什么查詢都比 MySQL 快。檢索大致分為兩類。

2.3.1 分詞后檢索

ES 的索引存儲的就是分詞排序后的結(jié)果。比如圖中的 Ada,在 MySQL 中 %da% 就掃全表了,但對 ES 來說可以快速定位

2.3.2 精確檢索

該情況其實(shí)相差是不大的,因?yàn)?Term Index 的優(yōu)勢沒了,卻還要借此找到在 term dictionary 中的位置。也許由于 MySQL 覆蓋索引無需回表會更快一點(diǎn)。

2.4 什么時(shí)候用 ES

如前所述,對于業(yè)務(wù)中的查詢場景什么時(shí)候適合使用 ES ?我覺得有兩種。

2.4.1 全文檢索

在 MySQL 中字符串類型根據(jù)關(guān)鍵字模糊查詢就是一場災(zāi)難,對 ES 來說卻是小菜一碟。具體場景,比如消息表對消息內(nèi)容的模糊查詢,即聊天記錄查詢。

但要注意,如果需要的是類似廣大搜索引擎的關(guān)鍵字查詢而非日志的短語匹配查詢,就需要對中文進(jìn)行分詞處理,最廣泛使用的是 ik 。Ik 分詞器的安裝這里不再細(xì)說。

什么意思呢?

分詞

開頭對日志的查詢,鍵入 “我可真是個(gè)機(jī)靈鬼” 時(shí),只會得到完全匹配的信息。

而倘若去掉 “”,又會得到按照 “我”、“可”,“真”….分詞匹配到的所有信息,這明顯會返回很多信息,也是不符合中文語義的。實(shí)際期望的分詞效果大概是“我”、“可”、“真是”,“機(jī)靈鬼”,之后再按照這種分詞結(jié)果去匹配查詢。

這是 ES 默認(rèn)的分詞策略對中文的支持不友善導(dǎo)致的,按照英語單詞字母來了,可英語單詞間是帶有空格的。這也是不少國外軟件中文搜索效果不 nice 的原因之一。

對于該問題,你可以在 console 使用下方命令,測試當(dāng)前 index 的分詞效果。

POST?yourindex/_analyze??
?{??
???"field":"yourfield",??
???"text":"我可真是個(gè)機(jī)靈鬼"???
}??

2.4.2 組合查詢

如果數(shù)據(jù)量夠大,表字段又夠多。把所有字段信息丟到 ES 里創(chuàng)建索引是不合理的。使用 MySQL 的話那就只能按前文提到的分庫分表、讀寫分離來了。何不組合下。

1. ES + MySQL

將要參與查詢的字段信息加上 id,放入 ES,做好分詞。將全量信息放入 MySQL,通過 id 快速檢索。

2. ES + HBASE

如果要省去分庫分表什么的,或許可以拋棄 MySQL ,選擇分布式數(shù)據(jù)庫,比如 HBASE , 對于這種 NOSQL 來說,存儲能力海量,擴(kuò)容 easy ,根據(jù) rowkey 查詢也很快。

以上思路都是經(jīng)典的索引與數(shù)據(jù)存儲隔離的方案了。

當(dāng)然,攤子越大越容易出事,也會面臨更多的問題。使用 ES 作索引層,數(shù)據(jù)同步、時(shí)序性、mapping 設(shè)計(jì)、高可用等都需要考慮。

畢竟和單純做日志系統(tǒng)對比,日志可以等待,用戶不能。

2.5 小結(jié)

本節(jié)簡單介紹了 ES 為啥快,和這個(gè)快能用在哪。現(xiàn)在你可以打開 Kibana 的控制臺試一試了。

如果想在 Java 項(xiàng)目中接入的話,有 SpringBoot 加持,在 ES 環(huán)境 OK 的前提下,完全是開箱即用,就差一個(gè)依賴了?;镜?CRUD 支持都是完全 OK 的。

3. HBASE

前面有提到 HBASE , 什么是 HBASE ,鑒于篇幅這里簡單說說。

3.1 存儲結(jié)構(gòu)

關(guān)系型數(shù)據(jù)庫如 MySQL 是按行來的。

姓名小學(xué)中學(xué)大學(xué)
李某XX小學(xué)YY中學(xué)NULL

HBASE 是按列的(實(shí)際是列族)。列式存儲上表就會變成:

姓名學(xué)校名稱
李某XX小學(xué)
李某YY中學(xué)


下圖是一個(gè) HBASE 實(shí)際的表模型結(jié)構(gòu)。

Row key 是主鍵,按照字典序排序。TimeStamp 是版本號。info 和 area 都是列簇(column Family),列簇將表進(jìn)行橫向切割。name、age 叫做列,屬于某一個(gè)列簇,可進(jìn)行動態(tài)添加。Cell 是具體的 Value 。

3.2 OLTP 和 OLAP

數(shù)據(jù)處理大致可分成兩大類:聯(lián)機(jī)事務(wù)處理OLTP(on-line transaction processing)、聯(lián)機(jī)分析處理OLAP(On-Line Analytical Processing)。

  • OLTP是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的主要應(yīng)用,主要是基本的、日常的事務(wù)處理。

  • OLAP是數(shù)據(jù)倉庫系統(tǒng)的主要應(yīng)用,支持復(fù)雜分析,側(cè)重決策支持,提供直觀易懂的查詢結(jié)果。

面向列的適合做 OLAP,面向行的適用于聯(lián)機(jī)事務(wù)處理(OLTP)。不過 HBASE 并不是 OLAP ,他沒有 transaction,實(shí)際上也是面向 CF 的。一般也沒多少人用 HBASE 做 OLAP 。

3.3 RowKey

HBASE 表設(shè)計(jì)的好不好,就看 RowKey 設(shè)計(jì)。這是因?yàn)?HBASE 只支持三種查詢方式

1、基于 Rowkey 的單行查詢 2、基于 Rowkey 的范圍掃描 3、全表掃描

可見 HBASE 并不支持復(fù)雜查詢。

3.4 使用場景

HBASE 并非適用于實(shí)時(shí)快速查詢。它更適合寫密集型場景,它擁用快速寫入能力,而查詢對于單條或小面積查詢是 OK 的,當(dāng)然也只能根據(jù) rowkey。但它的性能和可靠性非常高,不存在單點(diǎn)故障。

4. 總結(jié)

個(gè)人覺得軟件開發(fā)是循序漸進(jìn)的,技術(shù)服務(wù)于項(xiàng)目,合適比新穎復(fù)雜更重要。

如何完成一次快速的查詢?最該做的還是先找找自己的 Bug,解決了當(dāng)前問題再創(chuàng)造新問題。

本文列舉到的部分方案對于具體實(shí)現(xiàn)大多一筆帶過,實(shí)際無論是 MySQL 的分表還是 ES 的業(yè)務(wù)融合都會面臨很多細(xì)節(jié)和困難的問題,搞工程的總要絕知此事要躬行。

參考

  • 億級流量系統(tǒng)架構(gòu)之如何設(shè)計(jì)每秒十萬查詢的高并發(fā)架構(gòu) https://juejin.im/post/5bfe771251882509a7681b3a

  • 使用 ELK 搭建日志集中分析平臺 https://wsgzao.github.io/post/elk/)https://wsgzao.github.io/post/elk/

  • MySQL和Lucene索引對比分析https://www.cnblogs.com/luxiaoxun/p/5452502.html

  • HBASE 深入淺出 https://www.ibm.com/developerworks/cn/analytics/library/ba-cn-bigdata-hbase/index.html

推薦閱讀

面試題:InnoDB 中一棵 B+ 樹能存多少行數(shù)據(jù)?【面試不翻車,翻車就跑路】

我畫了35張圖就是為了讓你深入 AQS

Map 集合怎么也有這么多坑?一不小心又踩了好幾個(gè)!

瀏覽 60
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 免费看国产黄色| 在线免费观看黄色视频网站| 人妻在线无码| 娇小,学生,高潮,videos| 婷婷AV在线| 在线网址你懂的| 国精自拍| 日韩主播在线| 无码视频免费观看| 91成人视频18| 日韩欧美123| 国产又粗又猛又爽又黄91精品| 国产1区在线观看| 国产96在线亚洲| 天天噜| 杨门女将婬乱史1—6| 亚洲综合色网站| 六月综合激情| 日韩一级片子| 午夜黄色视频| 婷婷五月丁香网| 熟妇人妻丰满久久久久久久无码 | 日韩一级黄| 91嫩逼| 三级AV网站| 影音先锋AV资源在线| 久久久精品无码| 久久久精品黄色网址| 91综合娱乐| 亚洲中文字幕视频在线观看| 日韩成人小说| 午夜麻豆| 麻豆AV片| 91在线无码精品秘入口电车| 一级视频免费观看| 欧洲肥胖BBBBBBBBBB| 日韩做爱视频| 日韩视频免费在线观看| 亚洲另类色图| 强开小嫩苞一区二区电影| 国产精品秘久久久久久一两个一起| 亚洲丰满熟妇| 黄色毛片在线播放| 国产精品AV网站| 日本高清色清di免费观看| 成人做爰A片一区二区| 亚洲激情综合网| 免费看黄A级毛片成人片| 迷情校园综合| 亚洲精品乱码久久久久久久| 亚洲成人高清在线| 亚洲av综合在线| 欧美黄片免费视频| 炮友露脸青楼传媒刘颖儿| 无码三级片在线观看| 欧美日批| 久久嫩草精品久久久久| 日本三级中文字幕| 91乱子伦国产乱| 成人性爱在线视频| 日本黄色色情视频| 中文字幕+乱码+中文乱码视频在线观看 | 国产成人小电影| 成人久操| 成人黄色性视频| 免费的AV| 亚洲视频中文字幕| 日韩黄色在线| 在线观看免费成人网站| 蜜桃91精品入口| 人妻无码久久精品| 视频你懂的| 综合伊人大香蕉| 91人人妻人人澡人人爽人人精品 | 中文字幕一区二区三区四虎在线| 男女AV在线| a天堂8在线资源| 超碰人人爱国产视| 国产97在线观看| 中文字幕有码在线看| 91爱爱·com| 亚洲熟妇AV日韩熟妇在线| 亚洲一区高清无码| 国产精品人妻无码一区牛牛影视| 91av在线免费播放| 黄色视频在线免费观看高清视频| 老骚老B老太太A片| 91人妻人人澡人人精品| 草逼com| 日批网站在线观看| 亚洲中文娱乐| www.99视频| a视频免费观看| а天堂中文在线资源| 激情小说五月天| 免费在线观看黄色片| 69国产在线| 东北老女人操逼| 天干夜天干天天天爽视频| 久久免费视频6| 日本一本草久p| 你懂的视频在线播放| 亚洲社区在线观看| 国产av网站大全| 婷婷激情视频| 欧美老女人性爱视频| 久久婷五月天| 18禁无码永久免费网站大全| 免费观看操逼| 国产一级二级视频| 91超碰人人操| 深爱五月激情网| 婷婷五月天小说| 日韩家庭乱伦| 国产精品成人免费视频| 日韩欧美成人在线视频| 欧美伦妇AAAAAA片| 安徽妇搡BBBB搡BBBB袄爱直播| 91在线无码精品秘国产-百度| 成年人视频在线免费观看| 激情深爱五月| 五月婷亚洲精品AV天堂| av黄色在线| 国产丝袜视频| 大香蕉伊人在线网| 日韩无码动漫| 在线免费观看黄色电影| 日日干天天| 精品中文字幕在线观看| 六月色婷婷| 成人无码在线播放| 五月天综合网| 激情av天堂| 韩日无码人妻| 特黄A级毛片| jizz在线观看免费视频| 69AV免费视频| 99国产免费视频| 午夜激情久久| 成人中文字幕在线观看| 久久香蕉网站| 国产亚洲色婷婷久久99精品| 国产视频1区| www.俺也去| 伊人天天操| 国产精品一线| 美国久久久| 一级av| 秋霞一区二区三区无码| 精品国产自| 亚洲中文免费| 99热激情在线| 狠狠躁日日躁夜夜躁A片男男视频| 狼人一区二区| 99自拍网| 成人做爰黄A片免费视频网站野外| 亚洲自拍网站| 91在线一区二区| 日韩AⅤ| 西西4444WWW无码精品| 色婷婷亚洲综合| 中文字幕第5页| 日韩三级视频| 天天伊人| 成人性爱福利视频| 成人午夜小电影| 日本无码毛片| 成人免费A片在线观看直播96| 蜜臀久久99精品久久久久酒店更新时间 | 无码狠狠躁久久久久久久91| 天天综合7799| 人妻精品一区二区| 三级av在线| 伊人成人网站| 成人久久AV| 亚洲国产精品尤物yw在线观看 | 色呦呦在线| 91蝌蚪在线观看| 91成人| 91视频一区二区三区| 中国熟妇XXXX18| 国产成人高清| 秋霞无码一区二区三区| 91大神精品| 黄色av免费网站| 操婷婷逼| 欧美人妻中文字幕| 国产毛片毛片毛片| 久久大香| 久草视频在线资源| 色综合99久久久无码国产精品 | 男女一区二区三区| 丁香激情五月少妇| 日韩a级片| 日本久久电影| 大香蕉av一区二区三区在线观看| 91AV免费看| 日韩日批| 久久久久成人精品无码| 中文字幕国产在线| 无码欧美| 两根茎一起进去好爽A片在线观看| 激情五月婷婷网| 可以免费观看的毛片| 韩国无码片| 午夜无码AV| 欧美色网| 91精品视频在线| 在线99精品| 人人爱人人操人人干| 午夜啪啪视频| 草草网站| 午夜嘿嘿| 日韩AV一区二区在线观看| 91吴梦梦无码一区二区| 欧美一级婬片AAAAAA片| 91精品国产综合久久久蜜臀九色 | 成人在线视频免费观看| 亚洲成人免费在线视频| 免费电影日本黄色| 日韩婬乱片A片AAA真人视频| 丁香四月婷婷| 亚洲AV无码成人精品区www| 日韩无码不卡视频| 欧美性爱福利| 一区二区三区四区在线| 亚洲无码你懂的| 麻豆视频一区二区三区| 国产精品成人99一区无码| 超碰乱伦| 在线aⅴ| 欧美亚洲国产视频| 精品成人A片久久久久久不卡三区 免费看成人A片无码照片88hⅤ | 久久亚洲AV无码午夜麻豆| 国产欧美日韩视频| 99热在线观看精品免费| 欧美一级日韩一级| 按摩性高湖婬AAA片A片中国 | 91欧美日韩| 激情网婷婷| 无码人妻少妇| 北条麻妃无码中文| 国产海角视频| 日韩无码视频播放| 在线观看av网站| 亚洲人妻在线视频| 无码精品一区二区三区在线播放| 天堂va欧美ⅴa亚洲va一夜| 亚洲香蕉在线视频| 丝袜无码| 五香丁香天堂网| 国产三级片AV| 国产精品性爱视频| 亚洲高清无码免费在线观看| 亚洲69v久久久无码精品| 免费观看黄色电影| 免费看成人747474九号视频在线观看 | 日本免费在线黄色视频| 激情五月天在线观看| 欧美老女人操逼| 天天爽天天爽夜夜爽| 久久婷婷婬片A片AAA| 亚洲无码一区二区在线观看| 91亚洲精品久久久久蜜桃| 福利在线看| 性饥渴熟妇乱子伦| 日韩高清在线观看| 亚洲人人| 蜜桃av一区二区三区| 国产精品视频久久| 亚洲av高清| 中文字幕人妻系列| 五月天成人社区| 亚洲无码高清电影| 高清无码三级片在线观看| 国产美女操逼| 亚洲激情综合视频| 操综合网| 日韩天天干| 中国熟睡妇BBwBBw| 青青草中文字幕| 草草网| 夜夜夜夜撸| 97精品视频在线观看| 国产熟妇搡BBBB搡BBBB毛片 | 欧美aⅴ| 欧美成人大香蕉| 在线观看免费欧美操逼视频| 爱爱午夜福利| 亚洲欧美动漫| 婷色五月| 偷拍二区| 男人的天堂在线| 艹美女视频| 成人激情在线观看| 亚洲色视频在线观看| 亚洲砖区区免费| 婷婷一区二区三区| 中文字幕69| 成人中文字幕在线观看| 高清无码三级片| 少妇性受XXXX黑人XYX性爽 | 中文字幕在线观看视频www| 91香蕉视频在线看| 色爽av| 91大香蕉| 大香蕉尹人在看| 无码视频在线观看免费| 免费成人国产| 日本中文字幕免费| 91av视频在线观看| 超碰成人欧美| 懂色av,蜜臀AV粉嫩av| 欧美性猛交XXXX乱大交| 撸一撸AV| 日韩小视频| 蜜芽成人精品久久久视频| 97超碰在| 亚洲视频网址| 久久只有精品| 在线观看亚洲| 黄色电影大香蕉| 天天日天天插| 欧美日韩在线观看一区二区三区| 欧美成人视屏| 日韩美毛片| 亚洲三级片无码| 人人爱人人草| 亚洲欧美日韩中文字幕在线观看 | 黄色片免费观看| 91高清无码视频| 超碰人人艹| 久久中文字幕无码| 国产毛片一区二区| 亚洲中文字幕人妻。| 欧美艹逼视频| 国产久久视频| 欧美亚洲国产日韩| 日韩电影中文字幕| 亚洲手机在线播放| 另类在线| av手机天堂网| 亚洲中文字幕码mv| 2021狠狠操| 最近2019中文字幕mv第三季歌词 | 亚洲成人在线| 黄色一级片免费观看| 国产色情性黄片Av网站| 激情色色| 激情五月综合网| 91在线无码精品秘入口电车| 玖玖色综合| 久久国产一区二区| 亚洲中文字幕免费| 精品人妻无码一区二区三区| 永久免费看片视频| 怕怕怕视频| 国产日韩欧美综合在线| 亚洲不卡免费视频| 日韩在线视频91| 丁香五香天堂| 日韩成人无码专区| 黄网在线观看视频| 69婷婷国产精品| 精品国产乱码久久久久夜深人妻| 一区二区三区免费在线| 搡BBBB搡BBB搡五十粉嫩| 亚洲男人天堂AV| 色999在线播放视频| 2025AV在线| 国产激情欧洲在线观看一区二区三区 | 成人A毛片| 久热九九| 懂色av| 国产成人AV在线观看| 色色欧美视频| 麻豆md0049免费| 中文字幕中文字幕一区| 在线18禁| 18sav| AV无码在线播放| 天天摸天天摸| 一本大道DVD中文字幕| 国产欧美日韩综合精品| 无码四区| 骚BBBB槡BBB槡BBB| 99久久婷婷国产综合精品hsex,亚| 蜜桃久久精品成人无码AV| 日毛片| 被黑人操| 免费无码国产在线53| 少妇精品久久久久久久久久| 欧美视频一区二区三区| 波多野结衣无码在线视频| 亚洲色图狠狠撸| 日皮视频在线免费观看| 色狠狠网| 美女黄色免费网站| 日韩bbbb| 在线黄片视频| 亚洲免费小黄片| 精品视频一区二区三区| 免费无码国产在线55| 日本成人视频在线免费播放| 欧美黄片一区| www日本色| 七十路の高齢熟妇无码| 亚洲无码高清免费| 日产久久视频| 五月婷婷六月婷婷| 2016av天堂网| 国产精品成人在线| 精品乱子伦一区二区在线播放| 福利久久| 中文字幕精品一级A片| 黄色A片视频| 乱子伦国产精品视频一级毛| 影音先锋中文字幕资源| 澳门毛片| 欧美色图视频在线观看| 91人人干| 国产九九九九九九| 色秘乱码一区二区三区| 韩国精品一区二区三区| 亚洲经典免费视频| 特级西西WWW888| 91九色TS另类国产人妖| 国产清纯可爱美女自卫裸贷偷情 | 欧美黄色a片| 色呦呦中文字幕| 人人操人人操人人操人人操| 丁香五月天婷婷| 四色永久成人网站| 久操B网| 日本A级视频| 99久久伊人| 欧美色伊人| 操骚屄视频| xxxxx无码| 91在线亚洲| 黄色视频在线观看免费网站| 内射学生妹J亅| 99这里只有精品视频| 91碰| 一区二区三区视屏| 久久e热| 91欧美精品成人综合在线观看 | 午夜蜜桃| 久久久久亚洲AV成人片乱码| 色综合久久88色综合天天| 免费日韩无码| 极品少妇视频| 18一20女一片毛片| 国产AV无码精品| 农村新婚夜一级A片| 操bbbb| 丁香五月天激情网| 成人一级精品| 国产精品1区| 免费黄色av网址| 91AV视频| 国产综合久久777777麻豆| 日韩中文字幕专区| 青误乐在线播放| 欧美日韩第一页| 国产精品国产三级囯产普通话2| 午夜黄片| 午夜福利资源| 猛男大粗猛爽H男人味| 国产欧美综合在线三区| 99超碰在线观看| 97人妻一区二区精品视频| 亚洲一级免费免费在线观看| 国产精品一卡二卡| 最近最经典中文MV字幕| 久久无码成人| 日韩福利在线观看| 欧美亚洲成人视频| 午夜成人国产| www.色老板| 淫色淫香综合网| 色五月电影| 久久黄色视频| 人人干人人操人人摸| 成人毛片18| 九九九色视频| 久久久1| 欧美一区二区三区不卡| 欧美熟妇另类久久久久久不卡| 欧美色网| 无码一| 18禁一区二区| 西西人体大胆ww4444图片| 大香蕉视频网| 高清无码视频观看| 成人手机在线视频| 日韩欧美在线观看| 91久久久久久久| 色亭亭影院| 国产99999| 奇米影视亚洲春色| 五月丁香免费视频| 精品人妻一区二区免费蜜桃| 日本中出视频| 在线一区二区三区四区| 国产精品久久久久久久久久久久久 | 亚洲AV无码国产精品久久不卡 | 超碰199| 日韩精品电影| 国产精品秘久久久久久| aaa精品视频| 亚洲黄色av| 视色网| 精品成人久久| 水多多成人视频| 国产狂喷水潮免费网站www| 日韩中文字幕电影| 大鸡巴免费视频| 俺来也俺去www色情网| 中文爱爱视频| 重庆美女揉BBBB搡BBBB| 久热青草| 91.xxxx| 免费无码| 超碰大香蕉| 懂色av粉嫩av蜜臀av| 五月婷视频| 欧洲无码一区二区三区| 日韩性爱视频| 欧美人妻视频| 欧美一级视频在线观看| 国产在线性爱视频| 乱伦99| 视频一区中文字幕| 亚洲国产免费| 牛牛AV在线| 操逼网123首页| www.操操网| 最新一区二区三区| 久碰| 骚逼影视| 免费福利视频网站| 成人社区视频| 东京热高清无码| 91成人| 操逼逼综合网| 日逼免费| 婷婷欧美色图| 欧美操屄视频| 精品人妻一区二区三区-国产精品| 亚洲无码一二三| 国产c区| 欧美日韩中文在线观看| 国产欧美一区二区三区视频| 亚洲中文字幕在线免费观看视频| 国产精品成人在线| 影音先锋在线成人| 国精品无码A区一区二区| 日逼网站国产| 欧美午夜精品| 91爱爱视频| 日韩在线中文字幕视频| 中文字幕高清| 天天爽夜夜爽夜夜爽| 国产一级二级三级视频| 综合+++夜夜| 国产久久在线| 张柏芝BBw搡BBBB槡BBBBHDfree| 人人摸人人操人人干| 色999亚洲人成色| 中国人妻HDbute熟睡| 欧美人操逼一二区| 成人AV天堂| 黄色小网站在线观看| 微熟女地址导航| 午夜黄色视频在线观看| 91人人妻人人妻人人澡| 99精品视频北条麻妃国产版| 日韩中文字幕在线视频| 欧美后门菊门交| 久久免费黄色| 午夜偷拍| 人人爽人人做| 亚洲成人大片| 三级成人av| 激情视频免费看| 日本免费黄色视频| 精品二区| 六月激情婷婷| 中文字幕在线日亚洲9| 成人无码久久| 超碰天堂| 人人干人妻| www.91超碰在线| 米奇电影777无码| 欧美成人18| 神马午夜精品96| 草逼无码| 欧美不卡一区二区三区| 丁香五月网站| 99久久精品国产一区二区三区| 豆花视频在线免费观看| 人人澡av| 中文字幕永久在线视频v1.0| 亚洲猛男操逼欧美国产视频| 99热8| 黄色毛片视频| www.色五月| 亚洲视频免费在线| 欧美黄色免费网站| 人人射人人爱| 伊人天天日| 日本国产欧美| 国产无码自拍偷拍| 天天草网| 国产精品国产三级片| 老鸭窝av免费入口在线观看| 麻豆一区二区| 日韩无码视频一区| 操b视频网站| 超碰天天干| 欧美l∨视| 嫩草视频在线观看| 国产一区二区三区在线观看免费视频免费视频免费视频 | 亚洲日本中文字幕在线观看| 久久午夜无码鲁丝午夜精品| 美女av免费| 撸撸视频| 国产激情视频| 无码成人AV在线看免费| 插插视频| 天天日天天操天天射| 影音先锋二区| 韩国无码一区二区三区| 一本大道DVD中文字幕| 天天狠狠干| 青青草手机在线观看| 黄色电影视频网站| 精品一区二区三区免费| a无码视频在线观看| 51妺嘿嘿午夜福利视频| 艹美女视频| 中国a一片一级一片| 欧美激情久久久| 香蕉视频a| 国产精品99久久免费黑人人妻| 91丨人妻丨国产| 免费看欧美成人A片| 精品字幕| 天天躁狠狠躁夜躁2024| 韩国高清无码60.70.80 | 久99热| 亚洲中文字幕网| 黄色毛片在线观看| 国产又爽又黄免费网站在线观看| 国产在线拍揄自揄拍无码福利| 免费精品视频| 日韩无码视| 国产成人免费观看| 亚洲免费观看高清完整版在va线观| 日韩日屄视频| 国产精品久久久久久久久久久久久久 | 特一级黄色电影| 欧美久久一区二区三区四区视频 | 污视频网站免费观看| 男女草比视频| 天天透天天干| 亚洲熟妇在线观看一区二区| 99久久亚洲精品日本无码| 欧美一级生活片| 最近中文字幕中文翻译歌词| 2026AV天堂网| 蜜臀精品色无码蜜臀AV| 色色免费| 日韩v片| 91国产精品在线| 永久在线| 亚洲精品乱码久久久久久久| 日日搔AV一区二区三区| 亚洲网站免费观看| 日韩亚洲在线观看| 一线毛片| 国产乱码一区二区三区的区别| 亚洲国产久久| 丁香五月天社区| 亚洲黄色视频在线| 亚洲秘无码一区二区三区蜜桃中文| 免费观看成人| 91网站免费| 日韩欧美A片| 毛片视频免费观看| 人人色综合| 五月丁香综合网| 特级西西444www大胆免费看| 久久AV电影| 中国熟女网站| 国产精品色情A级片| 精品国产乱子伦一区二区三区,小小扐| 欧美一区三区视频z| 翔田千里在线一区二区三区| 国产免费国产| 日日操天天操| 免费黄视频在线观看| 91亚洲国产成人久久精品网站 | 台湾精品一区二区三区| 黄片网址大全| 欧美极品另类| 9l视频自拍蝌蚪9l成人| 三级av无码| 水蜜桃在线观看视频| 婷婷色小说| 国产乱码一区二区三区四区在线| 中文字幕无码AV| 国产亚洲久一区二区| 国产免费一区二区三区免费视频 | 久久久久久久久免费看无码| 成人爽a毛片一区二区免费| 国产爱搞| 人人精品| 久久一做爱| 特级特黄A级高潮播放| 免费看黄片视频| 揉BBB搡BBB搡BBB| 波多野结衣av在线观看| 久久久久97| 五月天成人网址| 99久久国| 久久久一区二区三区四区| 大香蕉亚洲| 欧美猛男的大鷄巴| 综合激情五月婷婷| www亚洲| 成人自拍电影| 俺去俺来也| 操人视频在线观看| 午夜福利在线视频| 无码视频免费看| 狠狠狠操| 快播激情小说| av天堂电影网| 国产超碰青青草| 3D动漫精品啪啪一区二区竹笋| 日韩人妻码一区二区三区| 亚洲av播放| 黄色资源在线观看| 成人精品无码| 女BBBBBB女BBB| 亚洲欧美久久久久久久久久久久| 91人人妻人人爽| 九九九AV| 成人毛片100免费观看| 一级a一级a爱片免费视频| 无码网| 亚洲第一网无码性色| 操比免费视频| 精品免费一区二区三区四区| 欧美成人中文字幕在线| 激情综合婷婷久久| 欧美视频中文字幕| 一级AV片| 成人123区| 91AV在线观看视频| 美女做爱视频网站| 蜜桃精品视频在线观看| 六月丁香激情| 四虎av| 青青娱乐亚洲无| 大鸡巴久久久久| 99视频在线精品| 波多野结衣无码高清视频| 中文字幕AV无码| 99精品视频在线| 国产一精品| 精品视频免费在线| 免费在线观看无码视频| 中文字幕不卡一区| 日韩激情在线| 香蕉国产AV| 午夜福利av电影| 激情无码精品| 秋霞午夜视频| 中文字幕一区二区三区四区50岁 | 亚洲综合免费观看高清完整版在线观| 蜜桃Av噜噜一区二区三区四区| 色婷婷中文| 日韩欧美操逼| 亚洲群交| 精品乱子伦一区二区三区下载| 欧美色色综合| 国产精品porn| 日韩色网站| 成年人在线视频| 亚洲影院第一页| 加勒比无码视频| 中国无码视频| 亚洲AV免费在线| 少妇人妻偷人精品无码视频新浪 | 婷婷色五月激情| 九色PORNY蝌蚪视频| 高潮喷水在线观看| 国产精品视频在线看| 日韩午夜片| 极品美鮑20p| 安徽妇搡BBB搡BBBB户外老太太 | 一级免费视频| 国产主播av| 国产又粗又大又长| 69er小视频| 先锋影音资源av| 婷婷丁香五月激情一区综合网| 成人片网站在线观看| yw视频在线观看| 人人澡人人添人人爽人人| 亚洲无码电影在线观看| 欧美日韩一区二区三区四区五区六区 | 欧美精品99久久久| 国产人成视频免费观看| 黄色片久久| 热久久9| 五月激情综合网| 日韩成人片无码| 亚洲精品在线视频观看| 欧美日韩国内| 日韩激情网| 69堂在线观看| 亚洲综合激情网| 人妻无码久久| 欧美日韩三级片| 日韩激情视频在线观看| 久久大鸡巴| 亚洲综合免费观看高清| 国精产品一区一区三区四区| 超碰在线观看免费版| 久久99国产精品| 欧美日韩国产成人| 一级黄色在线观看| 91视频网站免费观看| 日韩一级无码特黄AAA片| 人人插人人| 最新激情网站| 久操亚洲| 91在线视频精品| A片久久久| 中国丰满妇BBwBBwHD| 国产无套内射在线观看| 午夜国产视频| 日韩无码一区二区三| 亚洲国产无码在线观看| 黄色av免费在线观看| 最新免费毛片| 香蕉成人网站| 精品乱子伦一区二区三区免费播放 | 久久久18禁一区二区三区精品| 爱爱免费不卡视频| 一本色道久久综合亚洲精品小说| 成人视频网| 中文在线第一页| 中文字幕在线免费播放| 亚洲视频网| 91在线成人视频| 超碰在线人人| 亚洲一卡二卡| 亚洲一级二级片| 久久午夜无码鲁丝片主演是谁 | 日韩一级无码特黄AAA片| 成人视频免费观看18| 狠狠干2022| 任我操在线视频| 国产激情视频在线| 躁BBB躁BBB躁BBBBBB日视频 | 亚洲无码视频专区| 91精品久久香蕉国产线看观看| 国产精选在线| 成人图片小说| 日韩动态图| 日本特黄一级| 秋霞久久| 嫩BBB搡BBB搡BBB搡| 中国无码| 中文字幕在线电影| 熟妇一区| 国产精品2025| 青娱乐老视频| 黄色日逼视频| 综合网操笔| 久久久久性爱| 木下凛凛子AV888AV在线观看| 夜夜撸天天操| 久草久| 国产精品秘精东影业| 日韩成人影视| 亚州AV| 91麻豆国产在线| 三级午夜在线无码| 激情丁香五月| 国产福利电影在线| 99热最新在线| 男女网站在线观看| A片免费网址| 国产黄片在线免费观看|