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

SQL優化13連問,收藏好!

數據庫 其他數據庫
group by?一般用于分組統計,它表達的邏輯就是根據一定的規則,進行分組。日常開發中,我們使用得比較頻繁。如果不注意,很容易產生慢SQL。

前言

大家好,我是田螺。

金三銀四已經開始啦,準備了SQL優化的13連問,內容非常干!相信大家看完一定會有幫助的。

圖片

1.日常工作中,你是怎么優化SQL的?

大家可以從這幾個維度回答這個問題:

  • 分析慢查詢日志
  • 使用explain查看執行計劃
  • 索引優化
  • 深分頁優化
  • 避免全表掃描
  • 避免返回不必要的數據(如select具體字段而不是select*)
  • 使用合適的數據類型(如可以使用int類型的話,就不要設計為varchar)
  • 優化sql結構(如join優化等等)
  • 適當分批量進行 (如批量更新、刪除)
  • 定期清理無用的數據
  • 適當分庫分表
  • 讀寫分離

2. 是否遇到過深分頁問題,如何解決

我們可以通過減少回表次數來優化。一般有標簽記錄法和延遲關聯法。

標簽記錄法

就是標記一下上次查詢到哪一條了,下次再來查的時候,從該條開始往下掃描。就好像看書一樣,上次看到哪里了,你就折疊一下或者夾個書簽,下次來看的時候,直接就翻到啦。

假設上一次記錄到100000,則SQL可以修改為:

select  id,name,balance FROM account where id > 100000 limit 10;

這樣的話,后面無論翻多少頁,性能都會不錯的,因為命中了id索引。但是這種方式有局限性:需要一種類似連續自增的字段。

延遲關聯法

延遲關聯法,就是把條件轉移到主鍵索引樹,然后減少回表。假設原生SQL是這樣的的,其中id是主鍵,create_time是普通索引

select id,name,balance from account where create_time> '2020-09-19' limit 100000,10;

使用延遲關聯法優化,如下:

select  acct1.id,acct1.name,acct1.balance FROM account acct1 INNER JOIN 
(SELECT a.id FROM account a WHERE a.create_time > '2020-09-19' limit 100000, 10)
AS acct2 on acct1.id= acct2.id;

優化思路就是,先通過idx_create_time二級索引樹查詢到滿足條件的主鍵ID,再與原表通過主鍵ID內連接,這樣后面直接走了主鍵索引了,同時也減少了回表。

3. 聊聊explain執行計劃

當explain與SQL一起使用時,MySQL將顯示來自優化器的有關語句執行計劃的信息。即MySQL解釋了它將如何處理該語句,包括有關如何連接表以及以何種順序連接表等信息。

一條簡單SQL,使用了explain的效果如下:

圖片

一般來說,我們需要重點關注type、rows、filtered、extra、key。

3.1 type

type表示連接類型,查看索引執行情況的一個重要指標。以下性能從好到壞依次:system > const > eq_ref > ref > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

  • system:這種類型要求數據庫表中只有一條數據,是const類型的一個特例,一般情況下是不會出現的。
  • const:通過一次索引就能找到數據,一般用于主鍵或唯一索引作為條件,這類掃描效率極高,,速度非常快。
  • eq_ref:常用于主鍵或唯一索引掃描,一般指使用主鍵的關聯查詢
  • ref : 常用于非主鍵和唯一索引掃描。
  • ref_or_null:這種連接類型類似于ref,區別在于MySQL會額外搜索包含NULL值的行
  • index_merge:使用了索引合并優化方法,查詢使用了兩個以上的索引。
  • unique_subquery:類似于eq_ref,條件用了in子查詢
  • index_subquery:區別于unique_subquery,用于非唯一索引,可以返回重復值。
  • range:常用于范圍查詢,比如:between ... and 或 In 等操作
  • index:全索引掃描
  • ALL:全表掃描

3.2 rows

該列表示MySQL估算要找到我們所需的記錄,需要讀取的行數。對于InnoDB表,此數字是估計值,并非一定是個準確值。

3.3 filtered

該列是一個百分比的值,表里符合條件的記錄數的百分比。簡單點說,這個字段表示存儲引擎返回的數據在經過過濾后,剩下滿足條件的記錄數量的比例。

3.4 extra

該字段包含有關MySQL如何解析查詢的其他信息,它一般會出現這幾個值:

  • Using filesort:表示按文件排序,一般是在指定的排序和索引排序不一致的情況才會出現。一般見于order by語句
  • Using index :表示是否用了覆蓋索引。
  • Using temporary: 表示是否使用了臨時表,性能特別差,需要重點優化。一般多見于group by語句,或者union語句。
  • Using where : 表示使用了where條件過濾.
  • Using index condition:MySQL5.6之后新增的索引下推。在存儲引擎層進行數據過濾,而不是在服務層過濾,利用索引現有的數據減少回表的數據。

3.5 key

該列表示實際用到的索引。一般配合possible_keys列一起看。

注意:有時候,explain配合show WARNINGS; (可以查看優化后,最終執行的sql),效果更佳哦。

4.說說大表的優化方案

圖片

  • 數據庫設計優化

合理的數據庫設計可以極大地提高查詢效率。我們在設計大表時,可以考慮拆分表、使用分區表、添加索引等方式來優化表結構。同時也要避免使用大量冗余字段、避免頻繁使用join查詢等操作。

  • 索引優化

對于大表的查詢操作,索引優化是非常重要的一環。可以考慮增加或者修改索引、使用覆蓋索引、使用聯合索引等方式來提高查詢效率。同時也要注意定期清理冗余的索引以及對于經常使用的查詢語句建立索引。

  • 分區優化

將大表按照某個列分成多個分區表,每個分區表的數據量較小,可以提高查詢和更新的性能。分區表還可以幫助在維護表結構的同時,減少鎖表時間,提高并發處理能力。

  • 數據清理歸檔

對于一些歷史數據或者無用數據,可以進行定期歸檔,避免數據過多造成SQL查詢效率降低。同時也要注意對于大表進行定期的數據備份以及緊急數據恢復的準備工作。

  • 緩存優化

對于一些經常被查詢的數據,可以使用緩存優化。使用Redis等緩存中間件來緩存常用的數據,以減少查詢數據庫的次數,提高查詢效率。

  • SQL語句優化

在編寫SQL查詢語句時,要盡可能地簡單明了,避免復雜的查詢語句,同時也要避免一些不必要的查詢操作。對于復雜的查詢語句,可以使用Explain執行計劃來進行優化。同時也要注意避免使用OR等耗費性能的操作符。

  • 分庫分表

如果數據量千萬級別,需要考慮分庫分表哈。分庫分表相關知識點,可以看我之前這篇文章哈,我們為什么要分庫分表?

5.哪些因素可能導致MySQL慢查詢?

慢查詢一般有以下這些原因:

圖片

大家有興趣可以看下。我之前寫的這篇文章哈:盤點MySQL慢查詢的12個原因

6.如何使用索引優化SQL查詢?

圖片

  • 添加合適索引(在where、group by、order by等后面的字段添加合適索引)
  • 選擇合適的索引類型 (B-tree索引適合范圍查詢、哈希索引適合等值查詢)
  • 注意不適合加索引的場景(數據量少的表,更新頻繁的字段,區分度低的字段)
  • 加索引的時候,需要考慮覆蓋索引,減少回表,考慮聯合索引的最左前綴原則
  • explain查看SQL的執行計劃,確認是否會命中索引。
  • 注意索引并不是越多越好,通常建議在單個表中不要超過5個索引。因為索引會占用磁盤空間,索引更新代價高。

7.聊聊慢SQL的優化思路

  1. 查看慢查詢日志記錄,分析慢SQL
  2. explain分析SQL的執行計劃
  3. profile 分析執行耗時
  4. Optimizer Trace分析詳情
  5. 確定問題并采用相應的措施

7.1 查看慢查詢日志記錄,分析慢SQL

如何定位慢SQL呢、我們可以通過slow log來查看慢SQL。默認的情況下呢,MySQL數據庫是不開啟慢查詢日志(slow query log)呢。所以我們需要手動把它打開。

查看下慢查詢日志配置,我們可以使用show variables like 'slow_query_log%'命令,如下:

圖片

  • slow query log表示慢查詢開啟的狀態
  • slow_query_log_file表示慢查詢日志存放的位置

我們還可以使用show variables like 'long_query_time'命令,查看超過多少時間,才記錄到慢查詢日志,如下:

圖片

  • long_query_time表示查詢超過多少秒才記錄到慢查詢日志。

我們可以通過慢查日志,定位那些執行效率較低的SQL語句,重點關注分析。

7.2 explain查看分析SQL的執行計劃

當定位出查詢效率低的SQL后,可以使用explain查看SQL的執行計劃。

當explain與SQL一起使用時,MySQL將顯示來自優化器的有關語句執行計劃的信息。即MySQL解釋了它將如何處理該語句,包括有關如何連接表以及以何種順序連接表等信息。

一條簡單SQL,使用了explain的效果如下:

圖片

一般來說,我們需要重點關注type、rows、filtered、extra、key。

7.3 profile 分析執行耗時

explain只是看到SQL的預估執行計劃,如果要了解SQL真正的執行線程狀態及消耗的時間,需要使用profiling。開啟profiling參數后,后續執行的SQL語句都會記錄其資源開銷,包括IO,上下文切換,CPU,內存等等,我們可以根據這些開銷進一步分析當前慢SQL的瓶頸再進一步進行優化。

profiling默認是關閉,我們可以使用show variables like '%profil%'查看是否開啟,如下:

圖片

可以使用set profiling=ON開啟。開啟后,可以運行幾條SQL,然后使用show profiles查看一下。

圖片

show profiles會顯示最近發給服務器的多條語句,條數由變量profiling_history_size定義,默認是15。如果我們需要看單獨某條SQL的分析,可以show profile查看最近一條SQL的分析。也可以使用show profile for query id(其中id就是show profiles中的QUERY_ID)查看具體一條的SQL語句分析。

圖片

除了查看profile ,還可以查看cpu和io,如上圖。

7.4 Optimizer Trace分析詳情

profile只能查看到SQL的執行耗時,但是無法看到SQL真正執行的過程信息,即不知道MySQL優化器是如何選擇執行計劃。這時候,我們可以使用Optimizer Trace,它可以跟蹤執行語句的解析優化執行的全過程。

我們可以使用set optimizer_trace="enabled=on"打開開關,接著執行要跟蹤的SQL,最后執行select * from information_schema.optimizer_trace跟蹤,如下:

圖片

大家可以查看分析其執行樹,會包括三個階段:

  • join_preparation:準備階段
  • join_optimization:分析階段
  • join_execution:執行階段

圖片

7.5 確定問題并采用相應的措施

最后確認問題,就采取對應的措施。

  • 多數慢SQL都跟索引有關,比如不加索引,索引不生效、不合理等,這時候,我們可以優化索引。
  • 我們還可以優化SQL語句,比如一些in元素過多問題(分批),深分頁問題(基于上一次數據過濾等),進行時間分段查詢
  • SQl沒辦法很好優化,可以改用ES的方式,或者數倉。
  • 如果單表數據量過大導致慢查詢,則可以考慮分庫分表
  • 如果數據庫在刷臟頁導致慢查詢,考慮是否可以優化一些參數,跟DBA討論優化方案
  • 如果存量數據量太大,考慮是否可以讓部分數據歸檔

我之前寫了一篇文章,有關于導致慢查詢的12個原因,大家看一下哈:盤點MySQL慢查詢的12個原因

8.一條sql執行過長的時間,你如何優化,從哪些方面入手?

這道面試題,其實跟慢SQl排查解決有點像,所以大家回答得時候,可以參考上一小節哈。我們可以從這幾個方面入手哈:

  • 確定瓶頸
  • 索引優化
  • 優化SQL語句
  • 數據庫參數優化
  • 分析鎖的情況
  • 數據庫硬件升級

確定瓶頸

首先,通過查看MySQL日志,慢查詢日志,explain分析SQL的執行計劃,profile 分析執行耗時,Optimizer Trace分析詳情等操作,確定查詢執行的瓶頸在哪里。只有確定了瓶頸,才能有針對性地進行優化。

索引優化

在確定了瓶頸之后,可以考慮通過增加索引來優化查詢效率。可以根據查詢語句的條件,增加相應的索引,從而加快查詢速度。但是索引也會帶來一些負面影響,如占用磁盤空間,降低寫入效率等,所以需要根據具體情況權衡。

優化SQL語句

有些SQL語句本身可能存在一些問題,如join操作過于頻繁,使用了不必要的子查詢等,這些都會導致查詢效率低下。可以通過優化SQL語句來減少不必要的操作,從而提高查詢效率。

數據庫參數優化

數據庫參數也會影響查詢效率,可以通過修改數據庫參數來優化查詢效率,如修改內存緩存大小、修改連接池大小等。不同的數據庫參數優化方式不同,需要根據具體情況進行調整。

分析鎖的情況

查詢執行時間過長有可能是由于鎖的問題導致的,需要分析查詢語句中是否存在鎖的問題,如果存在鎖的問題,可以考慮增加鎖的并發度,從而提高查詢效率。

數據庫硬件升級

如果以上方法都無法解決問題,可以考慮對數據庫硬件進行升級,如增加 CPU 數量、加快磁盤讀寫速度等,從而提高數據庫的整體性能。

9. 列舉一下,常用的數據庫設計優化技巧?

  • 字段盡量避免使用NULL
  • 合理選擇數據類型
  • 字段選擇合適的長度
  • 正確使用索引
  • 盡量少定義text類型
  • 合理的數據表結構設計
  • 適當的冗余設計
  • 優化SQL查詢語句
  • 一張表的字段不宜過多

10.列舉日常開發中,列舉十個書寫高質量SQL的小技巧

  1. 查詢SQL盡量不要使用select *,而是select具體字段。
  2. 小表驅動大表
  3. 優化你的like語句
  4. 盡量避免在索引列上使用mysql的內置函數
  5. 如果插入數據過多,考慮批量操作。
  6. 多用limit
  7. 小表驅動大表
  8. exist & in合理利用
  9. in元素不要過多
  10. 盡量用union all替換union

大家可以參考我之前這篇文章哈 :后端程序員必備:書寫高質量SQL的30條建議

11.index merge了解過嘛?

index merge是什么?

在MySQL中,當執行一個查詢語句需要使用多個索引時,MySQL可以使用索引合并(Index Merge)來優化查詢性能。具體來說,索引合并是將多個單列索引或多個聯合索引合并使用,以滿足查詢語句的需要。

當使用索引合并時,MySQL會選擇最優的索引組合來執行查詢,從而避免了全表掃描和排序操作,提高了查詢效率。而對于使用多個單列索引的查詢語句,MySQL也可以使用索引合并來優化查詢性能。

大家可以看一個使用index merge的例子:

假設有一個名為orders的表,包含order_id、customer_id、product_id、order_date等字段,其中order_id、customer_id、product_id三個字段都建有索引。

如果要查詢customer_id為1,order_date在2022年1月1日到2022年2月1日之間的訂單記錄,可以使用以下SQL語句:

SELECT *
FROM orders
WHERE customer_id = 1
AND order_date >= '2022-01-01'
AND order_date < '2022-02-01'

在執行該查詢語句時,MySQL可以使用customer_id索引和order_date索引來優化查詢。如果使用單個索引,則需要掃描整個索引樹來匹配查詢條件;但如果使用索引合并,則可以先使用customer_id索引來過濾出符合條件的記錄,然后再使用order_date索引來進一步過濾記錄,從而大大減少了掃描的記錄數,提高了查詢效率。

大家可以使用EXPLAIN關鍵字可以查看查詢計劃,確認是否使用了索引合并。例如,執行以下語句:

EXPLAIN SELECT *
FROM orders
WHERE customer_id = 1
AND order_date >= '2022-01-01'
AND order_date < '2022-02-01'

如果查詢計劃中出現了Using index merge的信息,則表示該查詢使用了索引合并優化。

12. order by查詢效率慢,如何優化.

大家是否還記得order by查詢為什么會慢嘛?

order by排序,分為全字段排序和rowid排序。它是拿max_length_for_sort_data和結果行數據長度對比,如果結果行數據長度超過max_length_for_sort_data這個值,就會走rowid排序,相反,則走全字段排序。

rowid排序,一般需要回表去找滿足條件的數據,所以效率會慢一點.如果是order by排序,可能會借助磁盤文件排序的話,效率就更慢一點.

如何優化order by的文件排序?

  • 因為數據是無序的,所以就需要排序。如果數據本身是有序的,那就不會再用到文件排序啦。而索引數據本身是有序的,我們通過建立索引來優化order by語句。
  • 我們還可以通過調整max_length_for_sort_data、sort_buffer_size等參數優化;

大家忘記order by的話,可以看我之前的這篇文章哈:看一遍就理解:order by詳解

13. group by 查詢慢的話,如何優化呀.

group by一般用于分組統計,它表達的邏輯就是根據一定的規則,進行分組。日常開發中,我們使用得比較頻繁。如果不注意,很容易產生慢SQL。

group by可能會慢在哪里?因為它既用到臨時表,又默認用到排序。有時候還可能用到磁盤臨時表。

  • 如果執行過程中,會發現內存臨時表大小到達了上限(控制這個上限的參數就是tmp_table_size),會把內存臨時表轉成磁盤臨時表。
  • 如果數據量很大,很可能這個查詢需要的磁盤臨時表,就會占用大量的磁盤空間。

如何優化group by呢?

  • group by 后面的字段加索引
  • order by null 不用排序
  • 盡量只使用內存臨時表
  • 使用SQL_BIG_RESULT

大家可以看下我這篇文章哈:看一遍就理解:group by詳解

 本文轉載自微信公眾號「撿田螺的小男孩」,可以通過以下二維碼關注。轉載本文請聯系撿田螺的小男孩公眾號。


責任編輯:武曉燕 來源: 撿田螺的小男孩
相關推薦

2024-10-28 08:34:06

2023-05-04 08:02:13

2023-11-15 16:35:31

SQL數據庫

2017-11-14 11:28:49

程序員索引數據

2022-05-14 21:19:22

ThreadLocaJDKsynchroniz

2020-05-27 11:55:47

Oracle SQL性能優化數據庫

2020-11-16 07:07:26

JS精簡代碼

2022-07-27 11:10:27

Kubectl命令運維

2025-08-26 02:22:00

2020-04-14 17:15:17

CSS工具Web開發

2022-04-01 10:08:21

SQL 優化MySQL數據庫

2023-04-26 07:40:34

MySQL索引類型存儲

2023-01-28 08:24:28

MySQL索引B+樹

2024-04-29 08:20:40

Java后端Redlock

2022-12-28 08:33:32

字節國際支付

2020-07-06 11:53:08

TCP三次握手協議

2025-06-03 01:45:00

2021-07-12 07:08:52

TCP協議面試

2021-11-09 09:30:52

OkHttp面試Android

2020-08-05 08:26:28

SQLDBA MySQL
點贊
收藏

51CTO技術棧公眾號

一本久道中文字幕精品亚洲嫩| 你懂的一区二区三区| 亚洲欧洲色图综合| 91九色视频在线观看| 久久精品视频8| 久草在线成人| 日韩午夜激情av| 能在线观看的av| 高h视频在线观看| 91视视频在线观看入口直接观看www | 伊人色**天天综合婷婷| 亚洲第一男人av| 手机在线成人免费视频| 俄罗斯一级**毛片在线播放| 国产欧美日本一区二区三区| 成人自拍爱视频| 羞羞色院91蜜桃| 亚洲理伦在线| 欧美理论片在线观看| 永久免费毛片在线观看| 久久中文字幕导航| 日韩一区二区免费在线电影| 国产福利影院在线观看| 福利影院在线看| 亚洲精选在线视频| 亚洲一区二区三区免费观看| 日本一区高清| 成人免费看黄yyy456| 国产乱人伦真实精品视频| 色网站在线播放| 很黄很黄激情成人| 久久手机免费视频| 法国空姐电影在线观看| 日韩精选在线| 亚洲国产成人精品电影| 能看毛片的网站| 亚洲精品一区av| 欧美日韩国产综合视频在线观看| 免费日韩视频在线观看| 狠狠操一区二区三区| 亚洲一区中文日韩| 欧美人与动牲交xxxxbbbb| 午夜激情视频在线| 国产精品三级av| 午夜精品亚洲一区二区三区嫩草| 日本又骚又刺激的视频在线观看| 91视频你懂的| 日韩成人在线资源| 日韩av视屏| 久久久美女毛片| 日本免费一区二区三区| 日本五码在线| 久久精品一区二区三区av| 久久综合一区二区三区| 香蕉视频免费看| 99re8在线精品视频免费播放| 国产精品一 二 三| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 国产精品私人自拍| 亚洲图片在线观看| 男人和女人做事情在线视频网站免费观看| 国产精品久久精品日日| 一区二区三区国| 老司机99精品99| 亚洲精品水蜜桃| 97在线国产视频| 性爽视频在线| 欧美午夜精品久久久久久超碰| 国产又大又黄又粗的视频| av成人在线观看| 7777精品伊人久久久大香线蕉最新版| 在线一区二区不卡| 成人av动漫| 亚洲精品在线电影| 成人影视免费观看| 97视频精品| 欧美激情一区二区久久久| 久久精品国产亚洲AV无码男同| 国产欧美日韩一级| 国产精品女主播| 99久久久国产精品无码网爆| 成人avav影音| 五月婷婷一区| 青草视频在线免费直播 | 在线视频免费观看一区| 国产精品18久久久久久久久久久久| 成人动漫视频在线观看免费| 亚洲av片在线观看| 国产精品国产a级| 日韩视频在线视频| 久久亚洲精品人成综合网| 日韩三级免费观看| 久久只有这里有精品| 婷婷久久国产对白刺激五月99| 久久久久国产精品免费| www.五月婷婷.com| 处破女av一区二区| 亚洲国产欧美一区二区三区不卡| 国精一区二区三区| 欧美私模裸体表演在线观看| 国产视频精品视频| 日韩在线观看电影完整版高清免费悬疑悬疑| 插插插亚洲综合网| 亚洲黄网在线观看| 国产成人啪免费观看软件| 日本视频一区二区在线观看| 黄页网站在线| 欧美浪妇xxxx高跟鞋交| 日本护士做爰视频| 中文字幕人成人乱码| 欧美在线观看网址综合| 精品人妻一区二区三区含羞草| 久久久久久免费网| 日韩av在线播放不卡| 亚洲狼人综合| 在线观看亚洲区| 日本少妇激情视频| 国产福利91精品一区| 亚洲高清123| 老牛影视精品| 精品国产一区二区精华 | 黄色成人av在线| 国产性生活一级片| 精品欧美久久| 日韩av片免费在线观看| 日韩永久免费视频| 亚洲最新视频在线播放| 日韩av.com| 精品国产乱码久久久久久果冻传媒| 性色av一区二区三区免费| 99热这里只有精品99| 国产精品福利在线播放| 激情视频免费网站| 狠狠色狠狠色综合婷婷tag| 欧美孕妇与黑人孕交| 婷婷在线观看视频| 亚洲夂夂婷婷色拍ww47| 免费国偷自产拍精品视频| 999久久久免费精品国产| 国产精品久久久久久久久男| 精品无人乱码| 在线视频国产一区| 亚洲a v网站| 日日嗨av一区二区三区四区| 欧美乱偷一区二区三区在线| 在线高清av| 精品亚洲一区二区三区在线播放| 日本熟妇乱子伦xxxx| 成人av在线播放网址| 精品视频在线观看一区| 国产福利一区二区精品秒拍| 久久久噜噜噜久久久| 亚洲精品字幕在线| 午夜av一区二区| 中文字幕影片免费在线观看| 香蕉视频成人在线观看| 欧美另类网站| 日韩综合av| 久久在线免费视频| www.黄色一片| 婷婷一区二区三区| mm131丰满少妇人体欣赏图| 日本不卡123| 天堂av免费看| 国产精品99久久免费观看| 97香蕉久久超级碰碰高清版| 久久精品国产亚洲a∨麻豆| 欧美性色欧美a在线播放| 人人干在线观看| 国产精品一级片| 91专区在线观看| 国产精品一国产精品| 国产日本欧美一区| 黑人另类精品××××性爽| 日韩精品免费在线| 中文字幕视频免费观看| 亚洲精品福利视频网站| 最近日本中文字幕| 久久精品999| 国产欧美日韩网站| 成人免费在线播放| 99久久国产免费免费| 不卡av播放| 久久夜色精品国产| 无码国产精品一区二区免费16 | 91精品国产网站| 91.xxx.高清在线| 欧美成人精品福利| 日本一本在线观看| 亚洲主播在线播放| 国产精品成人在线视频| 国产高清精品网站| 一区在线观看视频| 国产精品欧美一区二区三区奶水| 五月婷婷在线视频| 精品国产乱码久久久久久久| 麻豆成人免费视频| 亚洲欧美激情视频在线观看一区二区三区 | 成人午夜在线观看视频| 欧美色视频一区| 男女爽爽爽视频| 亚洲乱码在线| 明星裸体视频一区二区| 精品入口麻豆88视频| 欧洲日本亚洲国产区| a篇片在线观看网站| 精品亚洲一区二区| 不卡av中文字幕| 欧美性大战久久久久久久| 久久久久久久久久99| 中文字幕不卡三区| 色婷婷免费视频| 国产老肥熟一区二区三区| 99免费视频观看| 在线精品一区| 四虎4hu永久免费入口| 欧美日韩精品一区二区视频| 国产在线一区二区三区欧美| 豆花视频一区| 国产精品网站视频| 美女100%一区| 国产91|九色| 日本高清在线观看视频| 久久精品免费播放| 嫩草在线播放| 日韩精品在线免费播放| 亚洲乱码国产乱码精品精软件| 欧美精品一卡两卡| 一区二区视频网站| 欧洲一区在线电影| 欧美黄色一级大片| 色婷婷久久久久swag精品| 中文字幕一区二区三区精品 | 国产一区二区按摩在线观看| 国产高清视频网站| 欧美96一区二区免费视频| 无遮挡又爽又刺激的视频| 国产亚洲在线| 日本成年人网址| 久久经典综合| 丁香啪啪综合成人亚洲| 老司机精品视频网站| 欧美天堂亚洲电影院在线播放| xxxx 国产| 亚洲国产精品久久艾草纯爱| 国产亚洲精品久久久久久打不开| 亚洲免费大片在线观看| 农村黄色一级片| 亚洲人成精品久久久久久 | 欧美xxx.com| 亚洲女人被黑人巨大进入al| 免费在线毛片| 国产一区二区三区网站| 香蕉视频在线看| 久久精品视频导航| 在线观看操人| 国精产品一区一区三区有限在线| 9999精品成人免费毛片在线看| 国内久久久精品| 美女在线视频免费| 日韩av观看网址| 国产一区高清| 亚洲va欧美va国产综合剧情| 亚洲天堂av资源在线观看| 国产精品久久久久久久天堂第1集 国产精品久久久久久久免费大片 国产精品久久久久久久久婷婷 | 91动漫在线看| 国产精品一区亚洲| 日本新janpanese乱熟| 精品一区二区免费在线观看| 美女被爆操网站| 91在线视频18| 成熟人妻av无码专区| 亚洲品质自拍视频| 黄色激情视频在线观看| 色婷婷综合视频在线观看| 一本色道久久综合无码人妻| 精品国产麻豆免费人成网站| 香蕉视频免费看| 日韩一区二区三区在线播放| 黄页网站大全在线免费观看| 国产精品福利无圣光在线一区| 91成人在线网站| 久久精品欧美| 97人人精品| 播放灌醉水嫩大学生国内精品| 美女视频网站黄色亚洲| 亚洲午夜精品在线观看| 国产亚洲一区二区三区在线观看| 在线观看av日韩| 日韩欧美中文在线观看| 久久久久网址| 国产大片一区| 欧美国产激情视频| 亚洲精品v日韩精品| 天天干天天草天天| 懂色一区二区三区免费观看| 播金莲一级淫片aaaaaaa| 17c精品麻豆一区二区免费| 国产性xxxx高清| 4438x成人网最大色成网站| 看片网址国产福利av中文字幕| 日本电影亚洲天堂一区| www.国产.com| 尤物yw午夜国产精品视频| 少妇av在线| 国产成人av网| 亚洲综合网站| 午夜啪啪免费视频| 每日更新成人在线视频| 蜜桃色一区二区三区| 成人看片网站| 国产九区一区在线| 亚洲啊v在线观看| 日韩亚洲在线视频| 成人禁用看黄a在线| 国产日产精品一区二区三区的介绍| 欧美日韩亚洲国产一区| 高清乱码毛片入口| 久久精品久久久久| 国产精品一区二区免费福利视频| 精品免费二区三区三区高中清不卡| 亚洲精品2区| 国产精品嫩草影院8vv8| 国产日产欧产精品推荐色| 国产欧美日韩另类| 精品99一区二区三区| 最新国产在线拍揄自揄视频| 国产日产欧美a一级在线| 成人羞羞网站| 牛夜精品久久久久久久| 国产亚洲精品bt天堂精选| 二区视频在线观看| 日韩电影中文字幕| 国产在线精彩视频| 国产精品v欧美精品v日韩| 黄色精品免费| 久久久久无码国产精品一区李宗瑞 | 3p视频在线观看| 国产精品色婷婷视频| 精品国产一区二区三区久久久蜜臀| 免费av网址在线| 国产日韩在线不卡| 亚洲永久精品一区| 中文字幕精品av| 日韩黄色碟片| 在线观看18视频网站| 国产精品正在播放| 欧美精品一级片| 亚洲国产婷婷香蕉久久久久久| a√中文在线观看| 精品一区二区三区日本| 亚洲免费影视| 成人小视频免费看| 欧美高清性hdvideosex| 污污的网站在线看| 国产伦精品一区二区三区| 国产美女一区| 精品无码人妻一区二区免费蜜桃| 欧美日韩一区二区电影| 巨大荫蒂视频欧美大片| 999视频在线免费观看| 国自产拍偷拍福利精品免费一 | 一区免费观看视频| 精品人妻少妇AV无码专区| 91av视频在线免费观看| 国产欧美日韩影院| 亚洲免费黄色录像| 午夜欧美一区二区三区在线播放| 毛片在线播放网站| 成人激情视频在线观看| 国模吧视频一区| av在线网站观看| 91精品国产麻豆国产自产在线 | 91精品国产高清| 精品午夜电影| 亚洲 中文字幕 日韩 无码| 国产精品对白交换视频 | 一级成人黄色片| 综合136福利视频在线| 精品一区二区三区中文字幕| 日本午夜激情视频| 国产精品久久久久久户外露出| 亚洲精品久久久久久久久久 | 最新在线中文字幕| 欧美成人午夜激情| 九热爱视频精品视频| 青娱乐精品在线| 日韩人在线观看| 18av在线视频| 婷婷精品国产一区二区三区日韩 | 欧美日韩夫妻久久| 国产不卡123| 正在播放久久| 久久综合久久久久88| 日韩欧美国产一二三区| 欧美成人午夜精品免费| 欧美日本韩国一区| 九色porny丨入口在线| www.-级毛片线天内射视视| 久久这里只有精品首页|