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

慢SQL優化實戰:從一例線上慢SQL探究執行引擎工作過程

數據庫
本文通過一個線上慢SQL案例,介紹了Join的兩種算法和Order by的工作原理,并通過Explain和Optimizer_trace工具完整推演了慢SQL的執行過程?;趯υ砗蛨绦羞^程的分析,本文給出一種“引導執行引擎選擇效率更高的算法”的方案,從而使查詢性能得到大幅提升。

01、線上慢 SQL 背景

慢 SQL 會影響用戶使用體驗,降低數據庫的整體性能,嚴重的甚至會導致服務器掛掉、整個系統癱瘓。筆者通過監控平臺發現線上存在這樣一條慢SQL(原始SQL已脫敏,表結構出于簡化的目的做了一定刪減,實際執行耗時以文中提供數據為準),其執行耗時在分鐘級。

select t1.*,t2.x from t_table1 t1 leftjoin t_table2 t2 on t1.a = t2.a orderby t1.c desc;

表結構如下:

CREATETABLE `t_table1` (
  `id` bigint(20) unsigned NOTNULL AUTO_INCREMENT COMMENT '主鍵',
  `a` varchar(64) NOTNULL,
  `b` varchar(64) NOTNULL,
  `c` varchar(20) NOTNULL,
  PRIMARYKEY (`id`),
  KEY `idx_a` (`a`)
) ENGINE=InnoDB AUTO_INCREMENT=0DEFAULT CHARSET=utf8mb4;


CREATETABLE `t_table2` (
  `id` bigint(20) unsigned NOTNULL AUTO_INCREMENT COMMENT '主鍵',
  `a` varchar(64) NOTNULL,
  `x` varchar(64) NOTNULL,
  `y` varchar(20) NOTNULL,
  PRIMARYKEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0DEFAULT CHARSET=utf8mb4;

其他信息:



參數





數值





MySQL 版本





5.6.x





t_table1數據行數





3000





t_table2數據行數





70000



當發現慢SQL時,筆者的第一反應是使用Explain查看SQL的執行計劃,結果如下:

通過Explain初步分析:兩張表均執行了全表掃描,結合兩張表的數據規模分析全表掃描并非耗時達到分鐘級的主要原因。另外執行計劃extra種提示的Using temporary; Using filesort; Using join buffer (Block Nested Loop)又分別代表什么含義呢?

02、原理探究

2.1Join 算法原理

2.1.1 驅動表和被驅動表

在Join語句中,執行引擎優先掃描的表被稱為驅動表,另一張表被稱為被驅動表。執行引擎在選擇驅動表時,除了必須要遵守的特定語義外,最重要的考慮便是執行效率。

首先列舉兩種特定語義約束驅動表選取的場景

場景一:Straight join指定連接順序,強制要求執行引擎優先掃描左側的表。

場景二:Left/Right [outer] join,方向連接的特點是反方向表中如果不存在關聯的數據則填充NULL值,這一特性要求方向查詢時優先掃描相同方向的表。倘若where條件中明確指明反方向表中的部分列非空,則驅動表的選擇就不受此語義的限制,執行引擎會依據效率選取驅動表。

當沒有特定語義的約束時,執行引擎便會依據執行效率選取驅動表,如何判斷哪張表作為驅動表的效率更高呢?下文會結合Join的兩種算法更深入地探討這個問題。

2.1.2 Block Nested-Loop Join

假設一個數據量為m行的驅動表與一個數據量為n行的被驅動表進行join查詢。

最簡單的一種算法:

  1. 從驅動表掃描一行數據;
  2. 對被驅動表進行全表掃描,得到的結果依次與驅動表的數據進行join并把滿足條件的數據加入結果集;
  3. 接著掃描驅動表,每掃描一行數據,均重復執行一次步驟2,直至驅動表的全部數據被掃描完畢。

這種算法的磁盤掃描開銷為m*n,非常低效,MySQL在實際中并未直接使用該算法,而是采用緩存的思想(分配一塊Join buffer)對該算法進行改進,并命名為Block Nested-Loop join(BNL)。

BNL的算法步驟為:

  1. 從驅動表一次掃描K條數據,并把數據緩存在Join buffer;
  2. 對被驅動表進行全表掃描,得到的結果依次與驅動表的K條數據進行join并把滿足條件的數據加入結果集;
  3. 清空join_buffer;
  4. 接著從驅動表再取出K條數據,重復步驟2、3,直至掃描完驅動表的全部數據。

上述算法中,驅動表分段取數的次數記為l,整個算法的磁盤掃描開銷為m+ln。由于分段的次數與驅動表的數據成正相關,所以公式可以記為m+λmn,λ的取值范圍為(0,1)。

當兩張表的行數(m、n大?。┕潭ǖ那闆r下,m對結果的影響更大,m越小整體掃描的代價越小,所以執行引擎優先選擇數據量更小的表作為驅動表(符合“小表驅動大表”的說法)。

2.1.3 Index Nested-Loop Join

BNL算法使用了Join buffer結構,雖然有可能通過減少重復掃描來降低磁盤掃描開銷,然而驅動表分段掃描的次數過多依然可能會導致查詢的低效。索引是MySQL查詢提效的重要結構,當被驅動表的關聯鍵存在索引時,MySQL會使用Index Nested-Loop Join(NLJ)算法。

該算法的步驟為:

  1. 從驅動表掃描一行數據;
  2. 使用驅動表的關聯鍵搜索被驅動表的索引樹,通過被驅動表的索引結構找到被驅動表的主鍵,再通過主鍵回表查詢出被驅動表的關聯數據(暫不考慮覆蓋索引的情況);
  3. 接著掃描驅動表,每掃描一行數據,均重復執行一次步驟2,直至驅動表的全部數據被掃描完畢。

每次搜索一棵樹的復雜度近似為log2 n,上述過程在被驅動表掃描一行數據的時間復雜度是2log2 n,算法的整體復雜度為m+2mlog2 n,在該算法中,依舊是m對結果的影響更大,m越小整體掃描的代價越小,所以執行引擎總是選擇數據量更小的表作為驅動表(符合“小表驅動大表”的說法)。

2.2Order by 算法原理

2.2.1 全字段排序

MySQL會為每個線程分配一塊內存(Sort buffer)用于排序,當Sort buffer的空間不足時(通過系統參數sort_buffer_size設置Sort buffer的大?。?,執行引擎不得不開辟磁盤臨時文件用于排序,此時排序的性能也會大幅降低。

全字段排序是將查詢需要的所有字段進行暫存,并按照排序字段進行排序,并將排序后的結果集直接返回。

2.2.2 Rowid 排序

若要查詢的數據單行占用空間較大,Sort buffer中可以容納的排序行數將會減少,此時使用磁盤臨時文件進行排序的概率將會增大。為了提高排序性能,執行引擎提供一種只存儲排序字段的算法,稱為Rowid排序算法。

該算法的步驟為:

  1. 將參與排序的字段和主鍵進行臨時存儲;
  2. 按照排序字段進行排序,得到有序的主鍵;
  3. 根據有序的主鍵進行回表,按順序將所有要查詢的數據返回。

Rowid排序在單行查詢數據較大時可以通過節省臨時排序空間從而達到降低排序開銷的目的,然而該算法的代價是會增加磁盤掃描的次數(主鍵回表),所以是否選擇使用該算法需要根據實際情況進行取舍(通過系統參數max_length_for_sort_data設置)。

03、調優過程

3.1執行過程分析

了解了Join和Order by的工作原理,我們推測執行計劃的大致過程為:

  1. t_table_1與t_table_2進行Join查詢,使用了BNL算法(Using join buffer (Block Nested Loop))
  2. 將Join的結果暫存臨時表(Using temporary)
  3. 對臨時表中的數據進行排序后返回(Using filesort)

為了佐證筆者的推測以及了解每一步的開銷情況,Optimizer_trace命令可以提供更多執行過程細節。

{
     "considered_execution_plans": [
               {
                 "table": "`t_table1` `t1`",
                 "best_access_path": {
                   "considered_access_paths": [
                     {
                       "rows_to_scan": 3000,
                       "access_type": "scan",
                       "resulting_rows": 3000,
                       "cost": 615,
                       "chosen": true,
                       "use_tmp_table": true
                     }
                   ] /* considered_access_paths */
                 } /* best_access_path */,
                 "rest_of_plan": [
                   {
                     "table": "`t_table2` `t2`",
                     "best_access_path": {
                       "considered_access_paths": [
                         {
                           "rows_to_scan": 69882,
                           "access_type": "scan",
                           "using_join_cache": true,
                           "buffers_needed": 5,
                           "resulting_rows": 69882,
                           "cost": 4.19e7,
                           "chosen": true
                         }
                       ] /* considered_access_paths */
                     } /* best_access_path */,
                     "rows_for_plan": 2.1e8,
                     "cost_for_plan": 4.19e7,
                     "sort_cost": 2.1e8,
                     "new_cost_for_plan": 2.52e8,
                     "chosen": true
                   }
                 ] /* rest_of_plan */
               }
             ] /* considered_execution_plans */
   }

上圖展示的即為執行引擎預估的執行計劃,從Optimizer_trace的輸出結果中可以佐證上述對于執行過程的推測。另外我們可以得到執行代價的結果為:

  • t_table1的掃描行數為3000,代價為615;
  • t_table2的掃描行數為69882,由于BNL算法t_table2會被多次全表掃描,整體代價為4.19e7;
  • 對Join結果進行排序的開銷為2.1e8。

從執行引擎預估的執行計劃可以看出執行引擎認為排序的開銷最大,另外由于使用BNL算法會導致被驅動表執行多次全表掃描,其執行代價僅次于排序。然而預估的執行計劃并不代表真正的執行結果,下面展示Optimizer_trace命令對于真實執行結果部分參數:

{
       "join_execution": {
         "select#": 1,
         "steps": [
           {
             "creating_tmp_table": {
               "tmp_table_info": {
                 "table": "intermediate_tmp_table",
                 "row_length": 655,
                 "key_length": 0,
                 "unique_constraint": false,
                 "location": "memory (heap)",
                 "row_limit_estimate": 25614
               } /* tmp_table_info */
             } /* creating_tmp_table */
           },
           {
             "filesort_summary": {
               "rows": 3000,
               "examined_rows": 3000,
               "number_of_tmp_files": 0,
               "sort_buffer_size": 60200,
               "sort_mode": "<sort_key, rowid>"
             } /* filesort_summary */
           }
         ] /* steps */
       } /* join_execution */
}

從執行結果參數來看:

  • 執行引擎使用臨時表保存Join的結果,且臨時表是一張內存表。
  • 參與排序的數據行數為3000行,沒有使用磁盤臨時文件進行排序,排序算法選擇的是Rowid排序。

綜合執行引擎的預估的執行計劃和真實的執行結果參數可以得出,執行引擎預估最大的執行開銷為排序,但實際上排序并未使用到磁盤臨時文件,且Rowid排序的回表操作是在內存中進行的(在內存臨時表中進行回表),3000條數據的內存排序開銷是極快的,所以真實的最大開銷是BNL算法導致的對被驅動表多次進行全表掃描的開銷。

3.2最終的優化

對于BNL算法,可以通過在被驅動表添加索引使其轉化為NLJ算法來進行優化(此處注意一些索引失效的場景,筆者在實際調優中遇到了字符集不同導致的索引失效場景)。在t_table2表添加索引后,觀察一周內的SQL監控如下,可以看到SQL最大響應時間不超過20ms,執行效率得到了大幅提升。

04、總結

本文完整的介紹了一個SQL調優案例,通過這個案例可以歸納出SQL調優的基本思想。首先,需要了解SQL語句中的關鍵字(Join、Order by...)的基本工作原理,并輔助一些執行過程數據(Explain、Optimizer_trace),通過實驗驗證猜想,最終達成調優的目的。

責任編輯:龐桂玉 來源: vivo互聯網技術
相關推薦

2021-07-30 07:28:16

SQL優化日志

2022-07-14 14:46:51

數據庫SQL系統設計

2025-11-03 13:00:00

SQL慢SQL數據庫

2010-09-06 11:24:32

SQL Server語句

2024-05-30 07:55:43

2020-11-23 11:40:35

MySQSQL數據庫

2021-08-03 17:15:19

SQL 慢 SQL

2011-04-02 16:45:58

SQL Server查詢優化

2025-05-20 00:00:00

2017-05-23 16:26:26

MySQL優化處理

2022-02-07 19:17:56

SQL系統MySQL

2020-01-22 16:36:52

MYSQL開源數據庫

2025-03-27 03:22:00

2020-02-10 10:15:31

技術研發指標

2022-10-27 10:06:16

Presto SQLAntlr大數據

2022-10-27 11:31:10

Presto SQL統計計數大數據

2023-09-01 07:31:24

2022-10-27 11:07:40

2022-10-27 10:32:09

Presto SQLJoin大數據

2010-06-29 09:56:00

SQL Server查
點贊
收藏

51CTO技術棧公眾號

亚洲欧美日本在线观看| 欧美激情国产精品免费| 亚洲成a人片777777久久| 亚洲三级在线观看| 国产一区二区在线网站| 天天射天天干天天| 欧美在线三区| 亚洲欧美综合区自拍另类| 嫩草视频免费在线观看| 999福利在线视频| 久久久久亚洲综合| 91久久国产综合久久91精品网站 | 中国av一区| 欧美另类videos死尸| 久久久久久久久久久99| 午夜在线观看视频| 99国产精品久久久| 成人精品久久一区二区三区| 日本少妇xxxx动漫| 欧美成人自拍| 精品中文视频在线| 麻豆网站免费观看| 电影一区二区| 五月开心婷婷久久| www.-级毛片线天内射视视| 欧美日韩国产中文字幕在线| 高清在线成人网| 国产精品影片在线观看| 中文字幕精品三级久久久| 欧美欧美天天天天操| 中文字幕亚洲欧美日韩高清| 中文字幕免费在线播放| 日本超碰一区二区| 欧美日韩成人在线| 久久久久国产精品熟女影院| av资源在线看片| 亚洲精品免费播放| 亚洲欧美日韩在线综合| 国产在线91| 91在线精品一区二区三区| 99中文视频在线| 国产视频一区二区三区四区五区| 奇米888四色在线精品| 日本欧美爱爱爱| 奇米影视第四色777| 国内精品福利| 欧美日韩国产va另类| 希岛爱理中文字幕| 99精品视频在线观看免费播放| 亚洲一区www| 国产人妻大战黑人20p| 国产99久久精品一区二区300| 亚洲成人免费在线视频| 精品人妻人人做人人爽夜夜爽| 国内自拍亚洲| 欧美日韩精品一二三区| 国产精品一区二区小说| 日本国产欧美| 欧美少妇xxx| 手机看片福利日韩| 国产亚洲精彩久久| 欧美丰满嫩嫩电影| 樱花草www在线| 精品国产18久久久久久二百| 91精品国产麻豆| ass极品水嫩小美女ass| 亚洲视频三区| 亚洲精品国产精品自产a区红杏吧| 白嫩情侣偷拍呻吟刺激| 欧美大胆视频| 亚洲人成电影在线观看天堂色| 无码人妻精品一区二区中文| 国语产色综合| 精品国产一区av| 永久免费看黄网站| 亚洲精品韩国| 国产成人鲁鲁免费视频a| 亚洲天堂手机在线| 国产经典欧美精品| 国产欧美一区二区视频| 欧美成人综合在线| 国产精品三级久久久久三级| 裸体大乳女做爰69| 俺来也官网欧美久久精品| 精品国产31久久久久久| 日韩免费毛片视频| 在线不卡一区| 亚洲国语精品自产拍在线观看| 精品人妻无码一区二区三区换脸 | 最新欧美日韩亚洲| 成年网站在线视频网站| 色综合久久66| 午夜免费福利网站| 欧洲精品一区| 日韩在线欧美在线| 国产在线视频99| 久久久久久色| 91pron在线| 加勒比一区二区三区在线| 日韩美女久久久| 国产97在线 | 亚洲| 色999韩欧美国产综合俺来也| 日韩欧美中文一区二区| 一区二区三区四区免费| 伊人成综合网| 国产高清视频一区三区| www.激情五月| 国产欧美视频一区二区三区| 大胆欧美熟妇xx| 99欧美精品| 欧美大胆一级视频| 欧美美女性生活视频| 日韩视频在线一区二区三区| 成人乱人伦精品视频在线观看| 日本人妻丰满熟妇久久久久久| 国产精品久久久久影院色老大| 亚洲 自拍 另类小说综合图区| 日韩一级视频| 亚洲视频在线免费观看| 日本午夜小视频| 国产精品综合二区| 亚洲一区二区三区色| 性国裸体高清亚洲| 精品国产一二三| 91精品少妇一区二区三区蜜桃臀| 久久久久久久高潮| 久久影院理伦片| 女同一区二区免费aⅴ| 欧美猛男超大videosgay| 亚洲精品色午夜无码专区日韩| 国内在线观看一区二区三区| 91在线无精精品一区二区| 91伦理视频在线观看| 色婷婷综合久久| 久久久久国产精品无码免费看| 国产中文一区| 5g国产欧美日韩视频| 麻豆视频在线| 欧美另类变人与禽xxxxx| 殴美一级黄色片| 丝袜美腿亚洲一区二区图片| 久久精品人成| 美女91在线看| 精品香蕉在线观看视频一| 日产欧产va高清| 本田岬高潮一区二区三区| japanese在线播放| 日韩一区二区三区色| 久久中文字幕在线视频| 国产又粗又黄又爽| 成人欧美一区二区三区小说| 九九热精品国产| 亚洲老妇激情| 亚洲最大av网| 不卡一本毛片| 亚洲精品99久久久久中文字幕| 精品午夜福利视频| 92国产精品观看| 黄色高清无遮挡| 国产成人一区二区三区影院| 国产精品成人一区二区| 91美女视频在线| 91麻豆精品国产91久久久更新时间| 日韩一区二区不卡视频| 国产精品资源网站| 日韩精品视频在线观看视频| 极品束缚调教一区二区网站 | www.youjizz.com亚洲| 成人福利视频在线看| 国产亚洲欧美在线视频| 久久av网址| 国产精品中文字幕在线| free性欧美hd另类精品| 亚洲成av人片在线观看香蕉| 综合激情网五月| 欧美极品另类videosde| 久久精品亚洲天堂| 精品999成人| 欧美三级网色| 在线欧美激情| 韩国v欧美v日本v亚洲| 狠狠v欧美ⅴ日韩v亚洲v大胸 | 乌克兰美女av| 性xxxx欧美老肥妇牲乱| 国产伦精品一区二区三区高清版| 欧美裸体视频| 日韩中文字幕国产精品| 黄色av免费观看| 色香蕉久久蜜桃| 欧美偷拍第一页| 91玉足脚交白嫩脚丫在线播放| 手机看片福利盒子久久| 一本精品一区二区三区| 看欧美日韩国产| 性欧美video另类hd尤物| 97在线观看视频| 免费在线视频欧美| 亚洲精品国精品久久99热一| 亚洲中文字幕在线一区| 午夜私人影院久久久久| 国产日产在线观看| 久久一留热品黄| 日韩欧美色视频| 日韩二区三区四区| 久无码久无码av无码| 色无极亚洲影院| 精品人伦一区二区三区| 国产精品免费精品自在线观看| 欧美中文字幕视频在线观看| 成人在线免费看黄| 中文亚洲视频在线| 午夜成人免费影院| 日韩欧美国产综合| 在线观看毛片av| 一本大道久久a久久精品综合| av成人免费网站| 中文字幕乱码亚洲精品一区| wwwxx日本| 国产精品综合av一区二区国产馆| 男女爽爽爽视频| 国产一区二区三区久久久久久久久| 中文字幕日韩精品一区二区| 国产一区二区三区91| 黄色小网站91| 7m精品国产导航在线| 91精品国产综合久久香蕉922| 韩国成人漫画| 2019中文字幕全在线观看| 激情av在线| 欧美精品在线网站| 二区三区四区高清视频在线观看| 亚洲天堂精品在线| 欧美女优在线| 精品亚洲永久免费精品| 日本加勒比一区| 精品99999| 性少妇videosexfreexxx片| 7777精品久久久大香线蕉| 一本一道精品欧美中文字幕| 欧美曰成人黄网| 亚洲色成人www永久网站| 黑人巨大精品欧美一区免费视频| 日韩av电影网址| 午夜不卡在线视频| 免费在线观看黄网站| 精品久久久久久亚洲精品| 91午夜视频在线观看| 第一福利永久视频精品| 精品欧美一区二区三区免费观看 | 亚洲天堂一区在线观看| 精品久久久免费| 中文字幕第15页| 狠狠做深爱婷婷久久综合一区| 国产69精品久久久久久久久久| 精品久久香蕉国产线看观看亚洲 | 日本乱子伦xxxx| 国产欧美日韩综合精品一区二区| 亚洲色成人网站www永久四虎| 国产欧美一区视频| 中文字幕精品亚洲| 中文字幕视频一区| 国产精品老熟女一区二区| 樱花草国产18久久久久| 中文在线观看免费网站| 黑人巨大精品欧美一区二区免费| 日韩在线 中文字幕| 色94色欧美sute亚洲线路二| 中文字幕日韩第一页| 91精品国产一区二区三区香蕉| av网站在线免费看| 精品成人佐山爱一区二区| 亚州视频一区二区三区| 亚洲欧美自拍一区| 九色porny在线| 久久久久久久一区二区三区| 亚洲女同志freevdieo| 国产精品美女免费| 亚洲日本va中文字幕| 欧美日韩一区二区三| 国产精品久久久久久久久久10秀| 免费在线精品视频| 国产精品美女久久久| 天天干天天草天天| 高清久久久久久| 免费看日本黄色片| 一区二区三区精品| 精品人妻无码一区二区性色| 欧美精品日韩精品| 日本高清视频免费看| 中文字幕精品一区二区精品| av观看在线| 国产99在线|中文| 麻豆视频久久| 日韩精品资源| 红桃视频亚洲| 中文字幕第38页| aa级大片欧美| 日日噜噜夜夜狠狠久久波多野| 欧美日韩美女在线| 91麻豆国产视频| 精品小视频在线| 黄页在线观看免费| 成人av色在线观看| 一道本一区二区三区 | 99精品视频免费观看视频| 在线观看av网页| 99国产精品99久久久久久| 美女福利视频在线观看| 欧美性大战久久久久久久蜜臀 | 国产成人无遮挡在线视频| 中文字幕伦理片| 五月天视频一区| 国产aⅴ爽av久久久久成人| 一本色道久久综合狠狠躁篇怎么玩 | 99在线视频精品| 欧美做爰爽爽爽爽爽爽| 欧美综合在线视频| 色综合888| 午夜精品久久久久久久99热| 天堂av一区| 国产免费色视频| 日本欧美韩国一区三区| 熟女丰满老熟女熟妇| 亚洲一区二三区| 国产青青草视频| 精品久久久91| 九九久久国产| 午夜精品电影在线观看| 久久午夜视频| 亚欧洲乱码视频| 欧美日韩亚洲视频| 凸凹人妻人人澡人人添| 欧美激情第99页| 亚洲精品在线国产| 7777在线视频| 国产综合久久久久影院| 1024在线看片| 欧美视频你懂的| 91免费在线| 91精品久久久久久久久不口人| 日韩理论电影院| 一道本在线免费视频| 国产精品乱码人人做人人爱| 中文字幕无码乱码人妻日韩精品| 亚洲欧美在线磁力| 欧美日韩精品一区二区三区视频| 欧美一区二区视频在线| 久久精品二区三区| www.狠狠爱| 欧美亚洲国产一区二区三区va| 国产粉嫩一区二区三区在线观看| 日本人成精品视频在线| 精品国产91| 色www免费视频| 亚洲免费色视频| 成人爽a毛片一区二区| 欧美高清视频在线播放| 激情av综合| 日本xxxxxxx免费视频| 日本一区二区三区dvd视频在线| 亚洲中文无码av在线| 色香阁99久久精品久久久| 国产午夜精品一区在线观看| 久久www视频| eeuss国产一区二区三区| 区一区二在线观看| 久久精品国产一区二区电影| 久久伊人精品| 免费 成 人 黄 色| 久久精品亚洲乱码伦伦中文| 中文字幕永久在线视频| 欧美成人免费在线视频| 精品视频高潮| 亚洲色图久久久| 亚洲黄色录像片| 色吊丝在线永久观看最新版本| 国产97在线|日韩| 91精品一区国产高清在线gif| 亚洲欧洲国产视频| 日本韩国一区二区| 岛国成人毛片| 蜜桃臀一区二区三区| 久久 天天综合| 日韩精品国产一区二区| 亚洲最大中文字幕| 亚洲精品一区在线| 日韩欧美在线免费观看视频| 亚洲欧美经典视频| 无码国产精品一区二区色情男同| 国产精品第10页| 亚洲婷婷在线| 91资源在线播放| 亚洲成人黄色网址| 日本精品久久| 欧美在线观看成人| 亚洲精品乱码久久久久久久久| 日韩av视屏| av色综合网| 日本亚洲天堂网| 国产又大又黑又粗免费视频|