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

慢 SQL 分析與優化

原創 精選
數據庫
拋開數據庫硬件層面,數據庫表設計、索引設計、業務代碼邏輯、分庫分表策略、數據歸檔策略都對 SQL 執行效率有影響,我們只有在整個設計、開發、運維階段保持高度敏感、追求極致,才能讓我們系統的可用性、伸縮性不會隨著業務增長而劣化。

作者 | 伍樓華

背景介紹

從系統設計角度看,一個系統從設計搭建到數據逐步增長,SQL 執行效率可能會出現劣化,為繼續支撐業務發展,我們需要對慢 SQL 進行分析和優化,嚴峻的情況下甚至需要對整個系統進行重構。所以我們往往需要在系統設計前對業務進行充分調研、遵守系統設計規范,在系統運行時定期結合當前業務發展情況進行系統瓶頸的分析。

從數據庫角度看,每個 SQL 執行都需要消耗一定 I/O 資源,SQL 執行的快慢,決定了資源被占用時間的長短。假如有一條慢 SQL 占用了 30%的資源共計 1 分鐘。那么在這 1 分鐘時間內,其他 SQL 能夠分配的資源總量就是 70%,如此循環,當資源分配完的時候,所有新的 SQL 執行將會排隊等待。所以往往一條慢 SQL 會影響到整個業務。

本文僅討論 MySQL-InnoDB 的情況。

優化方式

SQL 語句執行效率的主要因素

數據量

  • SQL 執行后返回給客戶端的數據量的大小;
  • 數據量越大需要掃描的 I/O 次數越多,數據庫服務器的 IO 更容易成為瓶頸。

取數據的方式

  • 數據在緩存中還是在磁盤上;
  • 是否能夠通過全局索引快速尋址;
  • 是否結合謂詞條件命中全局索引加速掃描。

數據加工的方式

  • 排序、子查詢、聚合、關聯等,一般需要先把數據取到臨時表中,再對數據進行加工;
  • 對于數據量比較多的計算,會消耗大量計算節點的 CPU 資源,讓數據加工變得更加緩慢;
  • 是否選擇了合適的 join 方式

優化思路

  • 減少數據掃描(減少磁盤訪問)
  • 盡量在查詢中加入一些可以提前過濾數據的謂詞條件,比如按照時間過濾數據等,可以減少數據的掃描量,對查詢更友好;
  • 在掃描大表數據時是否可以命中索引,減少回表代價,避免全表掃描。
  • 返回更少數據(減少網絡傳輸或磁盤訪問)
  • 減少交互次數(減少網絡傳輸)
  • 將數據存放在更快的地方
  • 某條查詢涉及到大表,無法進一步優化,如果返回的數據量不大且變化頻率不高但訪問頻率很高,此時應該考慮將返回的數據放在應用端的緩存當中或者 Redis 這樣的緩存當中,以提高存取速度。
  • 減少服務器 CPU 開銷(減少 CPU 及內存開銷)
  • 避免大事務操作
  • 利用更多資源(增加資源)

優化案例

數據分頁優化

select * from table_demo where type = ?  limit ?,?;

優化方式一:偏移 id

lastId = 0 or min(id)
do {
select * from table_demo where type = ? and id >{#lastId} limit ?;
lastId = max(id)
} while (isNotEmpty)

優化方式二:分段查詢

該方式較方式一的優點在于可并行查詢,每個分段查詢互不依賴;較方式一的缺點在于較依賴數據的連續性,若數據過于分散,代價較高。

minId = min(id) maxId = max(id)
for(int i = minId; i<= maxId; i+=pageSize){
select * from table_demo where type = ? and id between i and i+ pageSize;
}

優化 GROUP BY

提高 GROUP BY 語句的效率, 可以通過將不需要的記錄在 GROUP BY 之前過濾掉.下面兩個查詢返回相同結果但第二個明顯就快了許多。

低效:

select job , avg(sal) from table_demo group by job having  job = ‘manager'

高效:

select job , avg(sal) from table_demo where  job = ‘manager' group by job

范圍查詢

聯合索引中如果有某個列存在范圍(大于小于)查詢,其右邊的列是否還有意義?

explain select count(1) from statement where org_code='1012' and trade_date_time >= '2019-05-01 00:00:00' and trade_date_time<='2020-05-01 00:00:00'
explain select * from statement where org_code='1012' and trade_date_time >= '2019-05-01 00:00:00' and trade_date_time<='2020-05-01 00:00:00' limit 0, 100
explain select * from statement where org_code='1012' and trade_date_time >= '2019-05-01 00:00:00' and trade_date_time<='2020-05-01 00:00:00'
  • 使用單鍵索引 trade_date_time 的情況下
  • 從索引里找到所有 trade_date_time 在'2019-05-01' 到'2020-05-01' 區間的主鍵 id。假設有 100 萬個。
  • 對這些 id 進行排序(為的是在下面一步回表操作中優化 I/O 操作,因為很多挨得近的主鍵可能一次磁盤 I/O 就都取到了)
  • 回表,查出 100 萬行記錄,然后逐個掃描,篩選出 org_code='1020'的行記錄
  • 使用聯合索引 trade_date_time, org_code -聯合索引 trade_date_time, org_code 底層結構推導如下:

圖片

以查找 trade_date_time >='2019-05-01' and trade_date_time <='2020-05-01' and org_code='1020'為例:

  1. 在范圍查找的時候,直接找到最大,最小的值,然后進行鏈表遍歷,故僅能用到 trade_date_time 的索引,無法使用到 org_code 索引
  2. 基于 MySQL5.6+的索引下推特性,雖然 org_code 字段無法使用到索引樹,但是可以用于過濾回表的主鍵 id 數。

小結:對于該 case, 索引效果[org_code,trade_date_time] > [trade_date_time, org_code]>[trade_date_time]。實際業務場景中,檢索條件中 trade_date_time 基本上肯定會出現,但 org_code 卻不一定,故索引的設計還需要結合實際業務需求。

優化 Order by

索引:

KEY `idx_account_trade_date_time` (`account_number`,`trade_date_time`),
KEY `idx_trade_date_times` (`trade_date_time`)
KEY `idx_createtime` (`create_time`),

慢 SQL:

SELECT  id,....,creator,modifier,create_time,update_time  FROM statement
WHERE (account_number = 'XXX' AND create_time >= '2022-04-24 06:03:44' AND create_time <= '2022-04-24 08:03:44' AND dc_flag = 'C') ORDER BY trade_date_time DESC,id DESC LIMIT 0,1000;

優化前:SQL 執行超時被 kill 了

SELECT  id,....,creator,modifier,create_time,update_time  FROM statement
WHERE (account_number = 'XXX' AND create_time >= '2022-04-24 06:03:44' AND create_time <= '2022-04-24 08:03:44' AND dc_flag = 'C') ORDER BY create_time DESC,id DESC LIMIT 0,1000;

優化后:執行總行數為:6 行,耗時 34ms。

MySQL使不使用索引與所查列無關,只與索引本身,where條件,order by 字段,group by 字段有關。索引的作用一個是查找,一個是排序。

業務拆分

select * from order where status='S' and update_time < now-5min  limit 500

拆分優化:

隨著業務數據的增長 status='S'的數據基本占據數據的 90%以上,此時該條件無法走索引。我們可以結合業務特征,對數據獲取按日期進行拆分。

date = now; minDate = now - 10 days
while(date > minDate) {
select * from order where order_date={#date} and status='S' and update_time < now-5min limit 500
date = data + 1
}

數據庫結構優化

  1. 范式優化:表的設計合理化(符合 3NF),比如消除冗余(節省空間);
  2. 反范式優化:比如適當加冗余等(減少 join)
  3. 拆分表:分區將數據在物理上分隔開,不同分區的數據可以制定保存在處于不同磁盤上的數據文件里。這樣,當對這個表進行查詢時,只需要在表分區中進行掃描,而不必進行全表掃描,明顯縮短了查詢時間,另外處于不同磁盤的分區也將對這個表的數據傳輸分散在不同的磁盤 I/O,一個精心設置的分區可以將數據傳輸對磁盤 I/O 競爭均勻地分散開。對數據量大的表可采取此方法,可按月建表分區。

SQL 語句優化

SQL 檢查狀態及分數計算邏輯

  1. 盡量避免使用子查詢
  2. 用 IN 來替換 OR
  3. 讀取適當的記錄 LIMIT M,N,而不要讀多余的記錄
  4. 禁止不必要的 Order By 排序
  5. 總和查詢可以禁止排重用 union all
  6. 避免隨機取記錄
  7. 將多次插入換成批量 Insert 插入
  8. 只返回必要的列,用具體的字段列表代替 select * 語句
  9. 區分 in 和 exists
  10. 優化 Group By 語句
  11. 盡量使用數字型字段
  12. 優化 Join 語句

大表優化

  • 分庫分表(水平、垂直)
  • 讀寫分離
  • 數據定期歸檔

原理剖析

MySQL 邏輯架構圖:

圖片

索引的優缺點

優點

  • 提高查詢語句的執行效率,減少 IO 操作的次數
  • 創建唯一性索引,可以保證數據庫表中每一行數據的唯一性
  • 加了索引的列會進行排序,在使用分組和排序子句進行查詢時,可以顯著減少查詢中分組和排序的時間

缺點

  • 索引需要占物理空間
  • 創建索引和維護索引要耗費時間,這種時間隨著數據量的增加而增加
  • 當對表中的數據進行增刪改查時,索引也要動態的維護,這樣就降低了數據的更新效率

索引的數據結構

主鍵索引

圖片

普通索引

圖片

組合索引

圖片

索引頁結構

圖片

索引頁由七部分組成,其中 Infimum 和 Supremum 也屬于記錄,只不過是虛擬記錄,這里為了與用戶記錄區分開,還是決定將兩者拆開。

圖片

數據行格式:

MySQL 有 4 種存儲格式:

  1. Compact
  2. Redundant (5.0 版本以前用,已廢棄)
  3. Dynamic (MySQL5.7 默認格式)
  4. Compressed

圖片

Dynamic 行存儲格式下,對于處理行溢出(當一個字段存儲長度過大時,會發生行溢出)時,僅存放溢出頁內存地址。

索引的設計原則

哪些情況適合建索引

  • 數據又數值有唯一性的限制
  • 頻繁作為 where 條件的字段
  • 經常使用 group by 和 order by 的字段,既有 group by 又有 order by 的字段時,建議建聯合索引
  • 經常作為 update 或 delete 條件的字段
  • 經常需要 distinct 的字段
  • 多表連接時的字段建議創建索引,也有注意事項
  • 連接表數量最好不要超過 3 張,每增加一張表就相當于增加了一次嵌套循環,數量級增長會非常快
  • 對多表查詢時的 where 條件創建索引
  • 對連接字段創建索引,并且數據類型保持一致
  • 在確定數據范圍的情況下盡量使用數據類型較小的,因為索引會也會占用空間
  • 對字符串創建索引時建議使用字符串的前綴作為索引
  • 這樣做的好處是:
  • 能節省索引的空間,
  • 雖然不能精確定位,但是能夠定位到相同的前綴,然后通過主鍵查詢完整的字符串,這樣既能節省空間,又減少了字符串的比較時間,還能解決排序問題。
  • 區分度高(散列性高)的字段適合作為索引。
  • 在多個字段需要創建索引的情況下,聯合索引優先于單值索引。使用最頻繁的列作為索引的最左側 。

哪些情況下不需要使用索引

  • 在 where 條件中用不到的字段不需要。
  • 數據量小的不需要建索引,比如數據少于 1000 條。
  • 由大量重復數據的列上不要建索引,比如性別字段中只有男和女時。
  • 避免在經常更新的表或字段中創建過多的索引。
  • 不建議主鍵使用無序的值作為索引,比如 uuid。
  • 不要定義冗余或重復的索引
  • 例如:已經創建了聯合索引 key(id,name)后就不需要再單獨建一個 key(id)的索引

索引優化之 MRR

例如有一張表 user,主鍵 id,普通字段 age,為 age 創建非聚集索引,有一條查詢語句 select* user from table where age > 18;(注意查詢語句中的結果是*)

在 MySQL5.5 以及之前的版本中如何查詢呢?先通過非聚集索引查詢到 age>18 的第一條數據,獲取到了主鍵 id;然后根據非聚集索引中的葉子節點存儲的主鍵 id 去聚集索引中查詢行數據;根據 age>18 的數據條數每次查詢聚集索引,這個過程叫做回表。

上述的步驟有什么缺點呢?如何 age>18 的數據非常多,那么每次回表都需要經過 3 次 IO(假設 B+樹的高度是 3),那么會導致查詢效率過低。

在 MySQL5.6 時針對上述問題進行了優化,優化器先查詢到 age>3 的所有數據的主鍵 id,對所有主鍵的 id 進行排序,排序的結果緩存到 read_rnd_buffer,然后通過排好序的主鍵在聚簇索引中進行查詢。

如果兩個主鍵的范圍相近,在同一個數據頁中就可以之間按照順序獲取,那么磁盤 io 的過程將會大大降低。這個優化的過程就叫做 Multi Range Read(MRR) 多返回查詢。

索引下推

假設有索引(name, age), 執行 SQL: select * from tuser where name like '張%' and age=10;

圖片

MySQL 5.6 以后, 存儲引擎根據(name,age)聯合索引,找到,由于聯合索引中包含列,所以存儲引擎直接在聯合索引里按照age=10過濾。按照過濾后的數據再一一進行回表掃描。

圖片

索引下推使用條件

  • 只能用于range?、 ref?、 eq_ref、ref_or_null訪問方法;
  • 只能用于InnoDB?和 MyISAM存儲引擎及其分區表;
  • 對存儲引擎來說,索引下推只適用于二級索引(也叫輔助索引);

索引下推的目的是為了減少回表次數,也就是要減少 IO 操作。對于的聚簇索引來說,數據和索引是在一起的,不存在回表這一說。

  • 引用了子查詢的條件不能下推;
  • 引用了存儲函數的條件不能下推,因為存儲引擎無法調用存儲函數。

思考:

  1. MySQL 一張表到底能存多少數據?
  2. 為什么要控制單行數據大小?
  3. 優化案例 4 中優化前的 SQL 為什么走不到索引?

總結

拋開數據庫硬件層面,數據庫表設計、索引設計、業務代碼邏輯、分庫分表策略、數據歸檔策略都對 SQL 執行效率有影響,我們只有在整個設計、開發、運維階段保持高度敏感、追求極致,才能讓我們系統的可用性、伸縮性不會隨著業務增長而劣化。

責任編輯:未麗燕 來源: 字節跳動技術團隊
相關推薦

2017-05-23 16:26:26

MySQL優化處理

2021-07-30 07:28:16

SQL優化日志

2010-06-29 09:56:00

SQL Server查

2020-11-23 11:40:35

MySQSQL數據庫

2011-04-02 16:45:58

SQL Server查詢優化

2020-06-05 09:21:20

MySQL慢查詢數據庫

2012-12-11 09:48:55

廣域網網絡優化網絡加速

2015-04-20 11:22:04

SQL慢查詢優化

2025-08-07 01:00:00

2020-01-22 16:36:52

MYSQL開源數據庫

2020-01-16 18:30:07

技術SQL優化

2010-01-08 09:43:23

SQL Server分Analysis Se

2009-03-04 09:06:56

優化sqlOracle

2021-08-03 17:15:19

SQL 慢 SQL

2024-07-12 09:12:47

2011-06-28 08:32:40

MySQL慢查詢日志

2022-10-27 09:42:22

數據庫SQL

2010-07-06 14:06:52

SQL Server存

2011-01-21 10:01:07

jQueryjavascriptweb

2022-06-10 11:17:26

數據庫實踐
點贊
收藏

51CTO技術棧公眾號

捆绑调教一区二区三区| 中文字幕成人| 91丨porny丨户外露出| 欧洲成人免费aa| 成人一级片免费看| 亚洲一区二区三区久久久| 亚洲一区日韩精品中文字幕| 91成人在线看| 国产午夜福利一区二区| 国产探花一区| 日韩精品中文字幕一区二区三区| 久久综合九色综合88i| 亚洲免费视频一区二区三区| 国产91色综合久久免费分享| 国产98色在线| 久久精品国产亚洲AV无码麻豆| 嫩草一区二区三区| 日韩一级高清毛片| 亚洲成色www.777999| 色呦呦在线视频| 欧美激情一区二区三区四区| 国产精品区一区二区三含羞草| 亚洲精品国产精品国自产网站按摩| 中文视频一区| 在线播放国产一区中文字幕剧情欧美 | 中文字幕在线视频精品| 日本黄色免费在线| 亚洲欧美日本在线| 亚洲高清不卡一区| 欧美日韩在线精品一区二区三区激情综| 久久99国产精品尤物| 欧日韩在线观看| 日韩欧美一区二区一幕| 国产精品mm| 日韩中文字幕久久| 一区二区伦理片| 女人抽搐喷水高潮国产精品| 欧美一级欧美三级| 涩涩网站在线看| 成人h在线观看| 色一情一乱一乱一91av| 日韩a∨精品日韩在线观看| 国产黄a三级三级三级av在线看| 久久精品一二三| 久久久免费看| 欧美 日韩 国产 成人 在线| 国产激情偷乱视频一区二区三区 | 伊人久久大香线蕉av超碰| 欧美日韩国产123区| 无码人妻精品一区二区三区66| 岛国在线视频网站| 亚洲午夜影视影院在线观看| 久久久久久久久久久久久国产| 日本高清视频在线观看| 国产精品色在线| 日本一区视频在线| 国产视频第一页在线观看| 久久嫩草精品久久久久| 日韩成人av网站| 国产毛片av在线| 欧美国产禁国产网站cc| 亚洲ai欧洲av| 在线播放日本| 亚洲欧洲国产日本综合| 伊人av成人| 欧美成人hd| 17c精品麻豆一区二区免费| 自拍另类欧美| 羞羞的视频在线观看| 一级特黄大欧美久久久| 少妇一晚三次一区二区三区| 欧美14一18处毛片| 天天操天天色综合| 免费激情视频在线观看| 国产精品4hu.www| 欧美精品成人一区二区三区四区| 久久久久久国产精品日本| 亚洲高清在线一区| 亚洲精品久久7777777| 欧美特黄一区二区三区| 色婷婷热久久| 欧美日本黄视频| 九九热国产视频| 久久久久久久欧美精品| 国产精品久久久久久久美男| 国产精品无码免费播放| 成人性生交大合| 九九九九久久久久| 最新97超碰在线| 亚洲一二三区视频在线观看| 免费av观看网址| 国产精品第一国产精品| 精品久久99ma| 免费黄色片网站| 欧美69视频| 欧美孕妇与黑人孕交| 亚洲影视一区二区| 国产91丝袜在线播放0| 欧美日韩精品一区| 蜜桃av在线免费观看| 一区二区久久久久久| 337p粉嫩大胆噜噜噜鲁| 福利视频一区| 亚洲国产欧美在线成人app| 亚洲а∨天堂久久精品2021| 欧美久久99| 国产精品欧美在线| 天堂在线观看av| 亚洲欧洲精品成人久久奇米网| 欧美日韩一道本| 国产精品日韩精品在线播放| 亚洲欧美日韩中文在线| 欧美日韩成人免费观看| 免费成人av在线播放| 极品校花啪啪激情久久| 欧美激情午夜| 色欧美日韩亚洲| 人妻 丝袜美腿 中文字幕| 日韩精品中文字幕第1页| 性色av一区二区三区| 国产视频手机在线观看| 亚洲国产精华液网站w| 浮妇高潮喷白浆视频| 日韩在线观看中文字幕| 少妇精69xxtheporn| 日本网站在线播放| 国产精品一级片| 亚洲免费视频一区| 自拍网站在线观看| 亚洲高清不卡av| 91精品国产高清一区二区三蜜臀| 久久久国产亚洲精品| 国产欧美日韩视频一区二区三区| 免费网站成人| 91国偷自产一区二区开放时间| 香蕉视频污视频| 欧美人成网站| 91精品国产99久久久久久红楼 | 黑色丝袜福利片av久久| 久久伊人免费视频| 国产精品无码白浆高潮| 国产精品乱码妇女bbbb| 天天爽天天爽夜夜爽| 国产一区二区三区电影在线观看| 91精品国产色综合久久不卡98口| 免费毛片b在线观看| va亚洲va日韩不卡在线观看| 一区二区三区av在线| 欧美大片1688| 丰满白嫩尤物一区二区| 亚洲精品一区二区三区蜜桃久| 亚洲最大网站| 精品在线小视频| 97免费在线观看视频| 成人h动漫精品一区二区| 成人区一区二区| 亚洲一二av| 欧美多人乱p欧美4p久久| 精品人妻伦一二三区久久 | 56国语精品自产拍在线观看| 欧美一区二区三区粗大| 麻豆国产精品777777在线| 亚洲一区精彩视频| 成人免费91| 久久99精品久久久久久青青91| www.热久久| 夜夜嗨av一区二区三区四季av| 人妻互换一二三区激情视频| 激情综合在线| 久久久久久九九九九| 性欧美18xxxhd| 亚洲福利在线观看| 国产综合免费视频| 综合国产视频| 国产精品jizz在线观看麻豆| 波多野结衣一区二区| 欧美日产在线观看| 国产精品老熟女一区二区| 懂色av中文一区二区三区| 久久久久久久久久网| 国产成人精品免费视| 国产精品一区二区久久| av毛片在线| 亚洲国产又黄又爽女人高潮的| www亚洲视频| 国产精品私房写真福利视频| 色婷婷激情视频| 在线不卡视频| 日韩一区二区三区高清| 国产精品亚洲综合在线观看 | 欧美手机在线视频| 丰满少妇高潮久久三区| 91丨九色丨尤物| xxww在线观看| 亚洲大片av| 亚洲成人一区二区三区| 99久久婷婷国产综合精品青牛牛 | 国产麻豆9l精品三级站| 日本成年人网址| 久久久久久久久久久妇女 | 欧美做受高潮电影o| 国产在线二区| 亚洲精品视频网上网址在线观看 | 精品国产乱码久久久久久图片 | 91精品福利在线一区二区三区| 日本少妇全体裸体洗澡| 国产精品久久久一本精品| 中文字幕无码人妻少妇免费| 国产真实乱对白精彩久久| 欧美 日韩精品| 欧美搞黄网站| 亚洲黄色一区二区三区| 日韩啪啪网站| 成人高清在线观看| 亚洲成a人片777777久久| 91成人在线播放| 日本高清在线观看| 中文字幕日韩av| 你懂的好爽在线观看| 日韩欧美国产1| 在线观看中文字幕码| 无码av免费一区二区三区试看| 2014亚洲天堂| 欧美激情一区在线| 日韩乱码人妻无码中文字幕久久| 国产激情视频一区二区三区欧美| 天天色综合天天色| 日韩精品亚洲一区| 少妇高潮喷水久久久久久久久久| 午夜久久美女| 国产精品夜夜夜爽张柏芝| 欧美伦理影院| 欧美视频1区| 色婷婷综合久久久久久| 国产精品推荐精品| 日韩在线观看中文字幕| 1卡2卡3卡精品视频| 国产精品一区二区三区av| 国产精品电影一区| 黑人精品一区| 欧美一级电影免费在线观看| 电影在线观看一区| 国内精品久久久久久久| 成人福利电影| 91精品国产乱码久久久久久蜜臀| 俺来俺也去www色在线观看| 久99九色视频在线观看| 调教一区二区| 欧美国产第一页| 欧美人与禽猛交乱配| 欧美激情三级免费| 超碰在线网站| 777777777亚洲妇女| 午夜伦理福利在线| 欧洲亚洲在线视频| 偷拍精品精品一区二区三区| 国产成人精品电影久久久| 澳门av一区二区三区| 国产精品久久久久免费a∨| 国产精品xxx| 91欧美日韩一区| 日韩欧美一级| 国产伦精品一区二区三毛| 日本久久成人网| 欧美高清性xxxxhd | 岛国一区二区在线观看| yjizz视频| 久久久国产精品麻豆| 欧美日韩中文字幕视频| 亚洲天堂网中文字| 黄页网站免费观看| 精品高清一区二区三区| 久草视频在线观| 欧美色欧美亚洲另类二区| 国产精品乱码久久久| 精品国产污污免费网站入口 | 成人18视频在线播放| 亚洲国产无码精品| 中文字幕亚洲欧美在线不卡| 久草免费在线观看视频| 欧美性xxxx18| 91麻豆成人精品国产| 精品精品国产高清一毛片一天堂| 香蕉视频网站在线| 少妇激情综合网| av电影免费在线看| 国产精品免费一区| 91综合精品国产丝袜长腿久久| 久久精品aaaaaa毛片| 爽成人777777婷婷| 999在线观看视频| 美女脱光内衣内裤视频久久影院| 亚洲精品无码久久久久久久| 久久综合成人精品亚洲另类欧美| 青青青视频在线播放| 亚洲第一av色| 国产一区二区三区视频免费观看 | 国产精品无码专区在线观看| 9l视频自拍九色9l视频成人| 日本一区二区精品视频| 国产精品porn| av污在线观看| 91首页免费视频| 午夜国产福利一区二区| 色偷偷久久人人79超碰人人澡| 国产欧美一级片| 亚洲人线精品午夜| 波多野结衣在线高清| 国产免费亚洲高清| 日本亚洲不卡| 日韩在线视频在线| 精品在线一区二区| 伊人网在线视频观看| 亚洲妇女屁股眼交7| 国产又粗又大又黄| 国产一区二区三区在线观看视频 | 久久发布国产伦子伦精品| 2023国产精品| 日本五十路女优| 欧美一区二区三区视频免费播放 | 欧美激情第一页xxx| 激情亚洲小说| 欧美一级二级三级| 国产一区二区精品| 白嫩情侣偷拍呻吟刺激| 亚洲欧美日韩国产成人精品影院| 国产九色91回来了| 一区二区成人av| 成人做爰视频www网站小优视频| 国产精品三区www17con| 欧美三级网页| 红桃视频一区二区三区免费| 国产精品女主播av| 精品国产青草久久久久96| 亚洲网站在线看| 中老年在线免费视频| 精品卡一卡二| 亚洲一区二区三区高清不卡| 黄色激情在线观看| 亚洲国产综合91精品麻豆| 亚洲av无码乱码国产麻豆| 欧美成人精品激情在线观看| 国产亚洲久久| 丁香色欲久久久久久综合网| 国产精品 日产精品 欧美精品| 欧美人与禽zozzo禽性配| 日韩欧美中文一区| 麻豆福利在线观看| 国产精品白丝jk白祙| 精品白丝av| 国产麻豆xxxvideo实拍| 欧美日韩国产中文字幕| 日本免费不卡| 日韩美女av在线免费观看| 久久99国内| wwwwxxxx日韩| 国产精品久久久久婷婷二区次| 一区二区不卡视频在线观看| 精品国产一区久久久| **国产精品| 超薄肉色丝袜足j调教99| 国产成人av自拍| 日韩精品一区三区| 亚洲欧美国产一区二区三区| 日韩欧美一区二区三区免费观看| 亚洲图色在线| 国产毛片精品视频| 日韩成人一区二区三区| 亚洲欧美中文另类| 精品国产黄a∨片高清在线| 麻豆md0077饥渴少妇| 国产白丝网站精品污在线入口| 日韩xxx高潮hd| 国产一区二区三区在线观看视频 | 国产伦理一区二区三区| 亚洲国产激情| 可以直接看的无码av| 欧美日韩精品欧美日韩精品| 4438x成人网全国最大| 国产精品久久久久久久久久久久午夜片 | 亚洲精品视频播放| 亚洲免费资源| 欧美视频在线观看视频| 久久精品一区二区三区av| 国产绳艺sm调教室论坛| 欧美一级高清免费| 999国产精品| 超碰男人的天堂| 欧美乱妇20p| 国产理论在线| 一区二区在线观看网站| 成人av资源在线| 自拍偷拍第八页| 国内精品美女av在线播放| 欧美日韩第一| 国产在线观看免费播放| 欧美午夜免费电影| av中文字幕在线观看第一页| 亚洲精品欧美精品| www.亚洲色图.com|