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

聊聊Insert ... On Duplicate Key Update 和ReplaceInto有什么區別

數據庫 MySQL
insert ... on duplicate key update 和 replace into 執行成功之后返回的影響行數,是個比較小的主題,我們先說結論,然后再分析這兩種 SQL 執行過程中計算影響行數的邏輯。

前段時間和滴滴的一位同學聊到 insert ... on duplicate key update 插入一條記錄成功后,影響行數為 2 意味著什么?

以前沒有深挖過這里面的細節,最近幾天抽空翻了翻源碼,可以來扒一扒這背后的細節了。對了,insert ... on duplicate key update 還有個兄弟叫 replace into,一起帶飛吧。

為了方便描述,本文后面會用 insert duplicate 表示 insert ... on duplicate key update。

本文內容基于 MySQL 5.7.35 源碼。

1、 準備工作

示例表結構及插入初始化數據 SQL 如下:

CREATE TABLE `t_insert` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`i1` int(11) NOT NULL DEFAULT '0',
`i2` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_i1` (`i1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into t_insert(i1, i2) values
(101, 201),
(102, 202),
(103, 203),
(104, 204),
(105, 205)

2、先說結論

insert ... on duplicate key update 和 replace into 執行成功之后返回的影響行數,是個比較小的主題,我們先說結論,然后再分析這兩種 SQL 執行過程中計算影響行數的邏輯。

對執行過程細節不感興趣的朋友,直接看本小節就好,可以不需要看第 3 小節的執行過程分析了。

在源碼實現中,批量插入和單條插入記錄沒什么區別,批量插入實際上是循環執行單條插入。所以,結論和執行過程分析兩小節,都基于插入單條記錄進行分析。

(1) insert ... on duplicate key update

insert duplicate 語句,插入一條記錄,影響行數可能有 3 種取值:0、1、2,影響行數 = 插入行數 + 更新行數。

影響行數 = 1,表示插入記錄和表中記錄不存在主鍵或唯一索引沖突,插入操作可以直接成功。影響行數 = 插入行數(1) + 更新行數(0) = 1。

影響行數 = 0,表示插入記錄和表中記錄存在主鍵或唯一索引沖突,并且 insert duplicate 語句 update 字段列表中每個字段的字段值和沖突記錄中對應的字段值一樣。

update 字段列表

以 t_insert 表為例,i1 字段上有唯一索引,表中記錄如下:

示例 SQL 如下:

insert into t_insert(i1, i2)
values (105, 999)
on duplicate key update i2 = 205

示例 SQL 中,update i2 字段值和表中 i1 = 105 的記錄的 i2 字段值一樣。示例 SQL 既不會更新表中記錄,也不會往表中插入記錄。影響行數 = 插入行數(0) + 更新行數(0) = 0。

影響行數 = 2,表示插入記錄和表中記錄存在主鍵或唯一索引沖突,但是 insert duplicate 語句 update 字段列表中的字段值和沖突記錄中的字段值不一樣,插入語句會更新表中沖突的第 1 條記錄。

因為表中主鍵 + 唯一索引可能存在多個,插入一條記錄,該記錄中的多個字段可能和多條不同記錄存在沖突,這種情況下,insert duplicate 只會更新沖突的第 1 條記錄。

以 t_insert 表為例,i1 字段上有唯一索引,表中記錄如下:

示例 SQL 如下:

-- i2 = 999 也可以寫成 i2 = values(i2)
insert into t_insert(i1, i2)
values (105, 999)
on duplicate key update i2 = 999

示例 SQL 中,update 字段列表中的 i2 字段值和表中 i1 = 105 的記錄的 i2 字段值(205)不一樣。

SQL 執行過程中,會把 i1 = 105 的記錄中的 i2 字段值更新為 999,執行結果為插入成功。插入行數加 1,但這個插入成功實際上是修改了表中已有記錄,修改行數也要加 1。影響行數 = 插入行數(1) + 更新行數(1) = 2。

(2) replace into

replace into 語句,插入一條記錄,影響行數可能的取值有兩種:1、N(大于 1)。影響行數 = 插入行數 + 刪除行數。

影響行數 = 1,表示插入記錄和表中記錄不存在主鍵或唯一索引沖突,插入操作可以直接成功。影響行數 = 插入行數(1) + 刪除行數(0) = 1。

影響行數 = N,表示插入記錄和表中的 N - 1 條記錄存在主鍵或唯一索引沖突,插入成功之前,會刪除這 N - 1 條沖突記錄。影響行數 = 插入行數(1) + 刪除行數(N - 1) = N。

主鍵和唯一索引中都不允許存在重復記錄,為什么 replace into 語句插入一條記錄會和表中多條記錄存在沖突?

因為一個表中,主鍵 + 唯一索引可能有多個,插入記錄中不同字段可能會和不同的記錄產生沖突。

以 t_insert 表為例,id 為主鍵字段,i1 字段上有唯一索引。t_insert 表中記錄如下:

示例 SQL 如下:

replace into t_insert(id, i1, i2)
values (4, 105, 888)

示例 SQL 中,待插入記錄的 id = 4,和主鍵沖突;待插入記錄的 i1 = 105,和 i1 字段上的唯一索引沖突。

replace into 語句執行過程中,會刪除 id = 4 和 i1 = 105 的兩條記錄,插入 id = 4、i1 = 105、i2 = 888 這條記錄。

也就是先刪除 2 條記錄,再插入 1 條記錄,影響行數 = 插入行數(1) + 刪除行數(2) = 3。

插入之后表中數據如下:

3、 執行過程分析

(1) insert ... on duplicate key update

insert duplicate 語句是 MySQL 對 SQL 標準的擴展,它有 2 種行為:

  • 如果插入記錄和表中記錄不存在主鍵或唯一索引沖突,它和普通插入語句一樣。
  • 如果插入記錄和表中記錄存在主鍵或唯一索引沖突,它不會插入失敗,而是會用 update 字段列表中的字段值更新沖突記錄對應的字段。

update 字段列表

insert duplicate 語句的影響行數,保存在 Statistics 類的實例屬性 copied 和 updated 中,計算公式:影響行數 = copied + updated。

copied 表示插入行數,updated 表示更新行數。

接下來,我們來看看 insert duplicate 語句的執行過程。

insert duplicate 執行流程圖

第 1 步,調用插入記錄方法,如果插入成功,插入操作主流程就完成了,不需要執行第 2 ~ 4 步。影響行數 = copied(1) + updated(0) = 1。

第 2 步,如果因為主鍵或唯一索引沖突導致插入失敗,MySQL 會找到是因為哪一個索引沖突造成的,然后構造由這個索引的所有字段組成的查詢條件,去存儲引擎讀取沖突的記錄,讀取出來的這條記錄叫作舊記錄。

第 3 步,用 insert duplicate 語句 update 字段列表中的字段值替換舊記錄中對應字段的值后得到新記錄。

第 4 步,判斷新記錄和舊記錄的內容是否完全一樣。

如果完全一樣,就不需要進行更新操作,影響行數 = copied(0) + updated(0) = 0。

如果不完全一樣,調用更新記錄方法,把新記錄各字段的值更新到表中,影響行數 = copied(1) + updated(1) = 2。

有一點需要注意,如果待插入記錄和表中多條記錄存在主鍵或唯一索引沖突,insert duplicate 只會更新沖突的第 1 條記錄。哪個索引報記錄沖突,就更新這個索引中沖突的這條記錄。

(2) replace into

replace into 語句也是對標準 SQL 的擴展,它也有 2 種行為:

  • 如果插入記錄和表中記錄不存在主鍵或唯一索引沖突,它和普通插入語句一樣。
  • 如果插入記錄和表中記錄存在主鍵或唯一索引沖突,它會先刪除表中的沖突記錄,然后插入新記錄,這很符合 replace into 語句替換的語義。

除了先刪除再插入,還有另一種方式:用 replace into 語句 values() 中各字段的值更新表中的沖突記錄。不過,要使用這種方式,需要滿足一些條件,后面會詳細說。

replace into 語句的影響行數,保存在 Statistics 類的實例屬性 copied 和 deleted 中,計算公式:影響行數 = copied + deleted。

copied 表示插入行數,deleted 表示刪除行數。

接下來,我們來看一下 replace into 語句的執行過程:

replace into 執行流程圖

第 1 步,調用插入記錄方法,如果插入成功,插入操作主流程就完成了,不需要執行第 2 ~ 3 步。影響行數 = copied(1) + deleted(0) = 1。

這一步和 insert duplicate 語句是一樣的,因為它們倆在這一步執行的是同一行代碼,兄弟倆還沒有分家。

第 2 步,如果因為主鍵或唯一索引沖突導致插入失敗,MySQL 會找到是因為哪一個索引沖突造成的,然后構造由這個索引的所有字段組成的查詢條件,從存儲引擎讀取沖突的記錄,讀取出來的這條記錄叫作舊記錄。

舊記錄用于第 3 步中刪除沖突記錄,以及判斷需要把插入記錄中的哪些字段更新到表中。

這一步和 insert duplicate 語句也是一樣的,因為在這一步它們執行的是同一段代碼,兄弟倆還沒有分家。

第 3 步,從這一步開始,replace into 和 insert duplicate 的邏輯就不一樣了。

在這一步,MySQL 會根據一些條件判斷是用更新舊記錄,還是刪除舊記錄,插入新記錄的方式來實現 replace into 操作。

使用更新舊記錄方式,如果能夠使用這種方式實現 replace into,說明插入記錄只和表中的一條記錄沖突,把待插入記錄各字段的值更新到舊記錄中,增加 deleted 計數,replace into 主流程就完成了。

因為 replace into 的語義是替換,也就是刪除舊記錄,插入新記錄,所以,雖然這里用的是更新舊記錄的方式,但計數還是用了 deleted 而不是 updated。

使用刪除舊記錄,插入新記錄方式,第 1 ~ 3 步是一個循環,在第 3 步會直接把沖突的第一條記錄刪除,然后再回到第 1 步執行插入操作,循環執行第 1~ 3 步,直到刪除了所有沖突記錄之后,插入才能夠成功。

如果多次執行第 3 步,每次執行時,deleted 計數都會加 1。

第 4 步,增加 copied 計數,copied 值由 0 變為 1。

如果第 3 步使用更新舊記錄方式實現,影響行數 = copied(1) + deleted(1) = 2。

如果第 3 步使用刪除舊記錄,插入新記錄方式實現,第 3 步有可能會多次執行,執行幾次,deleted 值就是幾,影響行數 = copied(1) + deleted(N) = 1 + N。

其中,N 表示第 3 步的執行次數。

執行流程中還有一個邏輯沒有說,就是第 3 步中,怎么決定使用更新舊記錄方式還是刪除舊記錄,插入新記錄方式。

使用更新舊記錄方式,需要同時滿足 3 個條件:

條件 1,第 2 步中報記錄沖突的那個索引是表中最后創建的唯一索引(也可能是主鍵)。

條件 2,表中的所有字段,都沒有被其它表的字段作為外鍵約束。

條件 3,表上沒有定義過刪除觸發器。

外鍵約束和刪除觸發器都很少使用,不展開講了。

4、 總結

先說結論小節,先介紹了 insert ... on duplicate key update 語句執行成功之后,影響行數可能的 3 種取值:0、1、2,以及對每一種取值進行了比較詳細的說明。

然后介紹了 replace into 語句執行成功之后,影響行數可能的 2 種取值:1、N(大于 1 的整數),以及對這兩種取值進行了比較詳細的說明。

執行過程分析小節,詳細分析了 insert ... on duplicate key update 語句、replace into 語句的執行過程。

本文轉載自微信公眾號「一樹一溪」,可以通過以下二維碼關注。轉載本文請聯系一樹一溪公眾號。

責任編輯:姜華 來源: 一樹一溪
相關推薦

2022-05-26 09:09:08

NetOpsDevOpsNetSecOps

2022-06-07 09:30:36

URLURN

2021-01-13 09:27:31

微服務API分布式

2021-05-16 14:26:08

RPAIPACIO

2024-05-27 00:40:00

2022-02-27 15:33:22

安全CASBSASE

2021-12-17 14:40:02

while(1)for(;;)語言

2022-08-02 08:23:37

SessionCookies

2024-03-05 18:59:59

前端開發localhost

2024-09-09 13:10:14

2020-03-09 20:56:19

LoRaLoRaWAN無線技術

2022-06-06 14:53:02

LoRaLoRaWAN

2020-11-09 14:07:53

PyQtQt編程

2022-09-07 18:32:57

并發編程線程

2022-09-08 18:38:26

LinuxWindowsmacOS

2021-07-27 08:02:45

DTO 軟件Pojo

2023-12-15 09:21:17

ObjectJavaString

2022-08-31 08:33:54

Bash操作系統Linux

2022-08-22 07:06:32

MyBatisSQL占位符

2025-03-10 09:30:00

SpringJava開發
點贊
收藏

51CTO技術棧公眾號

91丝袜美腿高跟国产极品老师| 国产精品videosex性欧美| 亚洲国产裸拍裸体视频在线观看乱了| 51国偷自产一区二区三区的来源| 欧美精品videos极品| 91蝌蚪精品视频| 欧美性生活大片免费观看网址| 亚洲精品视频一二三| 精品久久久久久亚洲综合网站| 在线亚洲伦理| 久久视频免费在线播放| 国产真实乱人偷精品| 成人亚洲综合| 污片在线观看一区二区| 国产精品美女在线播放| 污视频在线免费| 精品在线免费视频| 欧美精品福利在线| 青青草自拍偷拍| 好吊妞视频这里有精品| 69精品人人人人| 国产无套内射久久久国产| 黄色的网站在线观看| 97精品久久久午夜一区二区三区 | 日韩av最新在线| 国产精欧美一区二区三区白种人| 中文av在线全新| 亚洲一区在线观看视频| 在线精品日韩| 国产精品一级伦理| 久久夜色精品一区| 精品视频导航| 国产91久久久| 国产福利精品导航| 国产精品女人网站| 欧美亚洲另类小说| 亚洲欧美日本国产专区一区| 美女av一区二区三区 | 亚洲欧洲国产综合| 成人免费视频播放| 成人免费在线看片| 精品人妻一区二区三区浪潮在线| 久久99精品国产麻豆婷婷洗澡| 日韩av电影院| 永久免费无码av网站在线观看| 亚洲五月婷婷| 欧美大学生性色视频| 国产在线一卡二卡| 在线中文一区| 欧美成人精品xxx| 四虎免费在线视频| 欧美在线首页| 欧美日本黄视频| 久久精品一区二区三| 女人香蕉久久**毛片精品| 久久久国产一区二区三区| 欧美88888| 国产精品久久久久久久免费观看 | 白白色在线观看| 午夜激情综合网| 欧美 日韩 国产 高清| 九色porny丨首页入口在线| 亚洲高清不卡在线观看| 国模无码视频一区二区三区| 无遮挡爽大片在线观看视频| 五月婷婷久久综合| 男人天堂成人在线| 亚洲一区有码| 欧美成人精精品一区二区频| 在线中文字日产幕| 婷婷五月色综合香五月| 国产亚洲欧美视频| 91麻豆精品久久毛片一级| 99久久www免费| 欧美极品第一页| 欧美精品一二三四区| 蜜臀91精品一区二区三区| 亚洲va国产va天堂va久久| 丰满熟妇乱又伦| 久久久久国产精品人| 亚洲三区在线| 污视频免费在线观看| 精品久久久久久久久国产字幕| 99热成人精品热久久66| 深夜福利亚洲| 亚洲激情 国产| 免费在线观看a视频| 影音先锋日韩在线| 欧美一级免费看| 91成人在线免费| av一区二区不卡| 亚洲午夜精品久久久久久浪潮| 亚洲精品白浆| 色婷婷精品大视频在线蜜桃视频| 182午夜视频| 久久99视频| 美女性感视频久久久| 中文字幕在线欧美| 国产一区二区三区不卡在线观看| 精品乱码一区二区三区| 三级外国片在线观看视频| 亚洲福利电影网| 国产成年人视频网站| 都市激情久久| 久久久999精品视频| www.中文字幕在线观看| 国产最新精品精品你懂的| 美女主播视频一区| 日韩av官网| 欧美日本在线播放| 午夜理伦三级做爰电影| 欧美a级一区| 国产精品自在线| 天天影院图片亚洲| 一区二区三区在线观看视频 | 国产一区二区三区免费播放| 精品不卡在线| 丝袜在线观看| 欧美日韩aaa| 熟妇高潮精品一区二区三区| 亚洲香蕉av| 国产精品免费久久久| 天天干天天舔天天射| 怡红院av一区二区三区| 日本熟妇人妻中出| 婷婷亚洲精品| 97香蕉超级碰碰久久免费的优势| 99久久99久久久精品棕色圆| 欧美激情综合五月色丁香小说| 亚洲熟妇无码另类久久久| 精品中文视频| 日韩在线观看你懂的| 欧美超碰在线观看| 久久嫩草精品久久久精品| 欧美视频在线观看网站| 天堂久久av| 欧美成aaa人片免费看| 91麻豆成人精品国产免费网站| 国产午夜亚洲精品理论片色戒| 欧美一级欧美一级| 日韩高清一区| 欧美大片免费看| 国产jzjzjz丝袜老师水多| 中文字幕五月欧美| 日本一二区免费| 99精品视频在线观看播放| 国产精品视频精品| 成人在线观看免费| 在线观看一区日韩| 国产在线综合视频| 蜜桃av一区二区| 午夜视频久久久| 国产在视频一区二区三区吞精| 国产亚洲一级高清| 中文字幕1区2区3区| 国产精品的网站| 国产精品自在自线| 欧美国产91| 国产66精品久久久久999小说| 欧美videossex| 亚洲成人黄色网| 天堂网av手机版| 国产丝袜美腿一区二区三区| 东京热加勒比无码少妇| 成人短片线上看| 91精品免费久久久久久久久| 超碰超碰在线| 精品少妇一区二区三区日产乱码 | 超碰超碰在线| 欧美精品一区二区三区蜜桃视频 | 久久一二三区| 亚洲一区二区三区精品在线观看 | 久久婷婷开心| 日本肉肉一区| 麻豆成人在线看| 丰满少妇被猛烈进入| 日韩欧美精品网站| 国产又粗又长又黄的视频| 国产精品影视在线| 青青艹视频在线| 欧美日韩有码| 97超碰资源| 中文字幕在线中文字幕在线中三区| 亚洲女同精品视频| 国产精品探花视频| 亚洲 欧美综合在线网络| 老熟妇一区二区| 韩国毛片一区二区三区| av免费观看大全| 成人vr资源| 国产日韩精品一区观看| av免费在线一区| 欧美精品videosex牲欧美| 欧美zzoo| 日韩精品一区二区三区蜜臀| 久久99国产综合精品免费| 亚洲欧美综合色| 久久无码人妻精品一区二区三区| 秋霞午夜鲁丝一区二区老狼| 波多野结衣 作品| 欧美先锋资源| 国产伦精品一区二区三区| 日本一区免费网站| 欧美激情第三页| 天天影视久久综合| 日韩电影在线观看中文字幕| 国产亚洲久一区二区| 亚洲午夜精品在线| 精品在线观看一区| 91免费在线播放| ass极品水嫩小美女ass| 日韩精品五月天| 日韩五码在线观看| 亚洲精品99| 视频一区在线免费观看| 精品亚洲自拍| 不卡视频一区二区| 精品自拍视频| 国产99久久精品一区二区 夜夜躁日日躁 | 91尤物视频在线观看| 无码人妻一区二区三区在线视频| 美女网站久久| 欧美 日韩 亚洲 一区| 欧美福利在线| 天天干天天色天天爽| 经典一区二区| 免费国产一区| 秋霞影视一区二区三区| 不卡视频一区| 综合激情久久| 97人摸人人澡人人人超一碰| 伊人久久一区| 国产精品久久在线观看| 三级成人黄色影院| 97成人精品视频在线观看| 人交獸av完整版在线观看| 久久久国产精品视频| 色综合久久影院| 精品国产一区二区三区久久狼5月 精品国产一区二区三区久久久狼 精品国产一区二区三区久久久 | 亚洲国产aⅴ成人精品无吗| 少妇高潮惨叫久久久久| 国产欧美日本一区二区三区| 国产一二三四五区| 久久综合久久综合九色| theav精尽人亡av| 99精品视频在线免费观看| 国产综合内射日韩久| 国产高清精品在线| 国产一级二级av| 高清成人在线观看| 中文字幕免费在线播放| www.色精品| 欲求不满的岳中文字幕| 91偷拍与自偷拍精品| 91精品国产自产| 国产日韩影视精品| 久久久久亚洲AV成人无在| 国产精品久久久久9999吃药| 女同久久另类69精品国产| 中文字幕在线不卡国产视频| 国产欧美小视频| 亚洲人被黑人高潮完整版| 欧美黄色一级网站| 亚洲午夜精品网| 国产精品久久久久久久久久久久久久久久久 | 亚洲一区欧美一区| 91精品国产高潮对白| 图片区小说区区亚洲影院| 日产电影一区二区三区| 一区二区三区波多野结衣在线观看| 五月天丁香激情| 成人欧美一区二区三区在线播放| 国产av 一区二区三区| 午夜影院久久久| 69视频免费看| 91精品蜜臀在线一区尤物| 亚洲第一页综合| 亚洲精品有码在线| 日本视频在线播放| 久久免费少妇高潮久久精品99| 少妇视频一区| 成人激情春色网| 国产精品18hdxxxⅹ在线| 日本高清不卡三区| 亚洲一区二区| 欧美 国产 综合| 狠狠色丁香婷婷综合久久片| 中国xxxx性xxxx产国| 国产午夜久久久久| 玖玖爱免费视频| 色婷婷久久99综合精品jk白丝| 97精品人妻一区二区三区香蕉| 欧美精品一区二区三区在线播放| 福利视频在线导航| 欧美国产日韩免费| jizzyou欧美16| 国产伦一区二区三区色一情| 日本电影一区二区| 少妇人妻无码专区视频| 美女视频黄免费的久久 | 亚洲人成网www| 成年人免费观看的视频| 国产农村妇女精品一区二区| 国内av一区二区| 91看片淫黄大片一级在线观看| 亚洲色偷偷综合亚洲av伊人| 福利二区91精品bt7086| 国产精品无码久久av| 亚洲欧美日韩网| av在线网页| 亚洲综合av影视| 成久久久网站| 粗暴91大变态调教| 成人免费观看视频| 日本精品在线免费观看| 色94色欧美sute亚洲线路二| 天堂av在线免费| 欧美成人精品h版在线观看| 69堂免费精品视频在线播放| 国产伦精品一区| 亚洲午夜在线| 亚洲自拍第三页| 中文字幕视频一区| 中文字幕网址在线| 亚洲视频电影图片偷拍一区| 国产高清中文字幕在线| 3d动漫啪啪精品一区二区免费 | 欧美人一级淫片a免费播放| 欧美videofree性高清杂交| 欧美13一16娇小xxxx| 国产精品劲爆视频| 久久99国产精一区二区三区| 亚洲美免无码中文字幕在线| 国产sm精品调教视频网站| 91麻豆免费视频网站| 欧美日韩一卡二卡| www黄在线观看| 国产精品国内视频| 精品国产一区二区三区| 国产xxxxx在线观看| 337p粉嫩大胆噜噜噜噜噜91av | 欧美性做爰猛烈叫床潮| 久香视频在线观看| 欧美专区福利在线| 综合伊思人在钱三区| 成年人观看网站| 91原创在线视频| 亚洲不卡在线视频| 亚洲人成电影网站| 国产超碰精品| 婷婷亚洲婷婷综合色香五月| 久热成人在线视频| 国产精品久久久免费看| 欧美日韩精品高清| 成人影院www在线观看| 97超碰人人模人人爽人人看| 亚洲午夜一区| 人妻大战黑人白浆狂泄| 色哟哟一区二区在线观看| 国产黄色在线| 国产欧美在线观看| 中文不卡在线| 亚洲图片综合网| 色哟哟日韩精品| 免费大片黄在线| av噜噜色噜噜久久| 在线亚洲精品| 日韩一卡二卡在线观看| 91精品国产综合久久精品图片| 欧美hdxxx| 欧美二区在线看| 久色婷婷小香蕉久久| 九九热只有精品| 亚洲视频在线免费观看| 涩涩涩久久久成人精品| 男人天堂av片| 久久久久久久久岛国免费| 中文字幕日韩经典| 久久久最新网址| 国内成人自拍| 日本女人黄色片| 欧美色道久久88综合亚洲精品| sese一区| 国产精品一区二区欧美| 日本在线不卡视频一二三区| wwwav国产| 亚洲欧美在线第一页| 国产美女亚洲精品7777| 亚洲熟妇无码一区二区三区| 国产精品视频一二| 亚洲精品国产片| 国产精品第一第二| 国产一区二区三区四区老人| 精品人伦一区二区三电影| 日韩精品一区二区三区中文精品| 欧美一级大黄| 日韩欧美猛交xxxxx无码| 久久精品人人做| 亚洲免费成人在线| 国产欧美精品一区二区|