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

明明加了唯一索引,為什么還是產生重復數據?

數據庫 MySQL
本文通過一次踩坑經歷,聊聊唯一索引,一些有意思的知識點。

前言

前段時間我踩過一個坑:在mysql8?的一張innodb?引擎的表?中,加了唯一索引?,但最后發現數據?竟然還是重復了。

到底怎么回事呢?

本文通過一次踩坑經歷,聊聊唯一索引,一些有意思的知識點。

圖片

一、還原問題現場

前段時間,為了防止商品組產生重復的數據,我專門加了一張防重表。

如果大家對防重表,比較感興趣,可以看看我的另一篇文章 《??高并發下如何防重???》,里面有詳細的介紹。

問題就出在商品組的防重表上。

具體表結構如下:

CREATE TABLE `product_group_unique` (
`id` bigint NOT NULL,
`category_id` bigint NOT NULL,
`unit_id` bigint NOT NULL,
`model_hash` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
`in_date` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

為了保證數據的唯一性,我給那種商品組防重表,建了唯一索引:

alter table product_group_unique add unique index 
ux_category_unit_model(category_id,unit_id,model_hash);

根據分類編號、單位編號和商品組屬性的hash值,可以唯一確定一個商品組。

給商品組防重表創建了唯一索引?之后,第二天查看數據,發現該表中竟然產生了重復的數據:

圖片

表中第二條數據和第三條數據重復了。

這是為什么呢?

二、索引字段包含null

如果你仔細查看表中的數據,會發現其中一個比較特殊地方:商品組屬性的hash值(model_hash字段)可能為??null??,即商品組允許不配置任何屬性。

在product_group_unique表中插入了一條model_hash字段等于100的重復數據:圖片執行結果:圖片從上圖中看出,mysql的唯一性約束生效了,重復數據被攔截了。

接下來,我們再插入兩條model_hash為null的數據,其中第三條數據跟第二條數據中category_id、unit_id和model_hash字段值都一樣。圖片從圖中看出,竟然執行成功了。

換句話說,如果唯一索引的字段中,出現了null值,則唯一性約束不會生效。

最終插入的數據情況是這樣的:

  1. 當model_hash字段不為空時,不會產生重復的數據。
  2. 當model_hash字段為空時,會生成重復的數據。

我們需要特別注意:創建唯一索引的字段,都不能允許為null,否則mysql的唯一性約束可能會失效。

三、邏輯刪除表加唯一索引

我們都知道唯一索引非常簡單好用,但有時候,在表中它并不好加。

不信,我們一起往下看。

通常情況下,要刪除表的某條記錄的話,如果用??delete??語句操作的話。

例如:

delete from product where id=123;

這種delete操作是物理刪除,即該記錄被刪除之后,后續通過sql語句基本查不出來。(不過通過其他技術手段可以找回,那是后話了)

還有另外一種是邏輯刪除?,主要是通過update語句操作的。

例如:

update product set delete_status=1,edit_time=now(3) 
where id=123;

邏輯刪除需要在表中額外增加一個刪除狀態字段,用于記錄數據是否被刪除。在所有的業務查詢的地方,都需要過濾掉已經刪除的數據。

通過這種方式刪除數據之后,數據任然還在表中,只是從邏輯上過濾了刪除狀態的數據而已。

其實對于這種邏輯刪除的表,是沒法加唯一索引的。

為什么呢?

假設之前給商品表中的name和model加了唯一索引,如果用戶把某條記錄刪除了,delete_status設置成1了。后來,該用戶發現不對,又重新添加了一模一樣的商品。

由于唯一索引的存在,該用戶第二次添加商品會失敗,即使該商品已經被刪除了,也沒法再添加了。

這個問題顯然有點嚴重。

有人可能會說:把name、model和delete_status?三個字段同時做成唯一索引不就行了?

答:這樣做確實可以解決用戶邏輯刪除了某個商品,后來又重新添加相同的商品時,添加不了的問題。但如果第二次添加的商品,又被刪除了。該用戶第三次添加相同的商品,不也出現問題了?

由此可見,如果表中有邏輯刪除功能,是不方便創建唯一索引的。

但如果真的想給包含邏輯刪除的表,增加唯一索引,該怎么辦呢?

1、刪除狀態+1

通過前面知道,如果表中有邏輯刪除功能,是不方便創建唯一索引的。

其根本原因是,記錄被刪除之后,delete_status會被設置成1,默認是0。相同的記錄第二次刪除的時候,delete_status被設置成1,但由于創建了唯一索引(把name、model和delete_status三個字段同時做成唯一索引),數據庫中已存在delete_status為1的記錄,所以這次會操作失敗。

我們為啥不換一種思考:不要糾結于delete_status為1,表示刪除,當delete_status為1、2、3等等,只要大于1都表示刪除。

這樣的話,每次刪除都獲取那條相同記錄的最大刪除狀態,然后加1。

這樣數據操作過程變成:

  1. 添加記錄a,delete_status=0。
  2. 刪除記錄a,delete_status=1。
  3. 添加記錄a,delete_status=0。
  4. 刪除記錄a,delete_status=2。
  5. 添加記錄a,delete_status=0。
  6. 刪除記錄a,delete_status=3。

由于記錄a,每次刪除時,delete_status都不一樣,所以可以保證唯一性。

該方案的優點是:不用調整字段,非常簡單和直接。

缺點是:可能需要修改sql邏輯,特別是有些查詢sql語句,有些使用delete_status=1判斷刪除狀態的,需要改成delete_status>=1。

2、增加時間戳字段

導致邏輯刪除表,不好加唯一索引最根本的地方在邏輯刪除那里。

我們為什么不加個字段,專門處理邏輯刪除的功能呢?

答:可以增加時間戳字段。

把name、model、delete_status和timeStamp,四個字段同時做成唯一索引

在添加數據時,timeStamp字段寫入默認值1。

然后一旦有邏輯刪除操作,則自動往該字段寫入時間戳。

這樣即使是同一條記錄,邏輯刪除多次,每次生成的時間戳也不一樣,也能保證數據的唯一性。

時間戳一般精確到秒。

除非在那種極限并發的場景下,對同一條記錄,兩次不同的邏輯刪除操作,產生了相同的時間戳。

這時可以將時間戳精確到毫秒。

該方案的優點是:可以在不改變已有代碼邏輯的基礎上,通過增加新字段實現了數據的唯一性。

缺點是:在極限的情況下,可能還是會產生重復數據。

3、增加id字段

其實,增加時間戳字段基本可以解決問題。但在在極限的情況下,可能還是會產生重復數據。

有沒有辦法解決這個問題呢?

答:增加主鍵字段:delete_id。

該方案的思路跟增加時間戳字段一致,即在添加數據時給delete_id設置默認值1,然后在邏輯刪除時,給delete_id賦值成當前記錄的主鍵id。

把name、model、delete_status和delete_id,四個字段同時做成唯一索引。

這可能是最優方案,無需修改已有刪除邏輯,也能保證數據的唯一性。

四、重復歷史數據如何加唯一索引?

前面聊過如果表中有邏輯刪除功能,不太好加唯一索引,但通過文中介紹的三種方案,可以順利的加上唯一索引。

但來自靈魂的一問:如果某張表中,已存在歷史重復數據,該如何加索引呢?

最簡單的做法是,增加一張防重表,然后把數據初始化進去。

可以寫一條類似這樣的sql:

insert into product_unqiue(id,name,category_id,unit_id,model) 
select max(id), select name,category_id,unit_id,model from product
group by name,category_id,unit_id,model;

這樣做可以是可以,但今天的主題是直接在原表中加唯一索引,不用防重表。

那么,這個唯一索引該怎么加呢?

其實可以借鑒上一節中,增加id字段的思路。

增加一個delete_id字段。

不過在給product表創建唯一索引之前,先要做數據處理。

獲取相同記錄的最大id:

select max(id), select name,category_id,unit_id,model from product
group by name,category_id,unit_id,model;

然后將delete_id字段設置成1。

然后將其他的相同記錄的delete_id字段,設置成當前的主鍵。

這樣就能區分歷史的重復數據了。

當所有的delete_id字段都設置了值之后,就能給name、model、delete_status和delete_id,四個字段加唯一索引了。

完美。

五、給大字段加唯一索引

接下來,我們聊一個有趣的話題:如何給大字段增加唯一索引。

有時候,我們需要給幾個字段同時加一個唯一索引,比如給name、model、delete_status和delete_id等。

但如果model字段很大,這樣就會導致該唯一索引,可能會占用較多存儲空間。

我們都知道唯一索引,也會走索引。

如果在索引的各個節點中存大數據,檢索效率會非常低。

由此,有必要對唯一索引長度做限制。

目前mysql innodb存儲引擎中索引允許的最大長度是3072 bytes,其中unqiue key最大長度是1000 bytes。

如果字段太大了,超過了1000 bytes,顯然是沒法加唯一索引的。

此時,有沒有解決辦法呢?

1、增加hash字段

我們可以增加一個hash字段,取大字段的hash值,生成一個較短的新值。該值可以通過一些hash算法生成,固定長度16位或者32位等。

我們只需要給name、hash、delete_status和delete_id字段,增加唯一索引。

這樣就能避免唯一索引太長的問題。

但它也會帶來一個新問題:

一般hash算法會產生hash沖突,即兩個不同的值,通過hash算法生成值相同。

當然如果還有其他字段可以區分,比如:name,并且業務上允許這種重復的數據,不寫入數據庫,該方案也是可行的。

2、不加唯一索引

如果實在不好加唯一索引,就不加唯一索引,通過其他技術手段保證唯一性。

如果新增數據的入口比較少,比如只有job,或者數據導入,可以單線程順序執行,這樣就能保證表中的數據不重復。

如果新增數據的入口比較多,最終都發mq消息,在mq消費者中單線程處理。

3、redis分布式鎖

由于字段太大了,在mysql中不好加唯一索引,為什么不用redis分布式鎖呢?

但如果直接加給name、model、delete_status和delete_id字段,加redis分布式鎖,顯然沒啥意義,效率也不會高。

我們可以結合5.1章節,用name、model、delete_status和delete_id字段,生成一個hash值,然后給這個新值加鎖。

即使遇到hash沖突也沒關系,在并發的情況下,畢竟是小概率事件。

圖片

六、批量插入數據

有些小伙們,可能認為,既然有redis分布式鎖了,就可以不用唯一索引了。

那是你沒遇到,批量插入數據的場景。

假如通過查詢操作之后,發現有一個集合:list的數據,需要批量插入數據庫。

如果使用redis分布式鎖,需要這樣操作:

for(Product product: list) {
try {
String hash = hash(product);
rLock.lock(hash);
//查詢數據
//插入數據
} catch (InterruptedException e) {
log.error(e);
} finally {
rLock.unlock();
}
}

需要在一個循環中,給每條數據都加鎖。

這樣性能肯定不會好。

當然有些小伙伴持反對意見,說使用redis的pipeline批量操作不就可以了?

也就是一次性給500條,或者1000條數據上鎖,最后使用完一次性釋放這些鎖?

想想都有點不靠譜,這個鎖得有多大呀。

極容易造成鎖超時,比如業務代碼都沒有執行完,鎖的過期時間就已經到了。

針對這種批量操作,如果此時使用mysql的唯一索引,直接批量insert即可,一條sql語句就能搞定。

數據庫會自動判斷,如果存在重復的數據,會報錯。如果不存在重復數據,才允許插入數據。

責任編輯:姜華 來源: 蘇三說技術
相關推薦

2024-08-19 09:43:00

2020-10-29 09:19:11

索引查詢存儲

2025-06-12 03:25:00

2016-08-05 14:33:19

MySQL索引數據庫

2023-01-03 07:44:53

MySQL查詢重復

2009-02-27 10:18:41

重復數據刪除In-linePost-Proces

2017-02-10 09:11:31

存儲云存儲

2024-03-11 05:00:00

Python集合開發

2021-06-28 07:13:35

SQL語句索引

2020-03-05 16:55:56

索引數據庫SQL

2023-02-10 10:14:59

普通索引唯一索引

2020-08-10 11:20:59

索引MySQL數據庫

2011-04-13 13:05:14

重復數據刪除

2024-12-02 08:01:47

加鎖高并發程序

2025-05-28 01:10:00

SQL索引MySQL

2024-03-26 12:16:13

MySQLInnodb數據庫

2023-02-26 00:00:06

MySQL索引故障

2021-11-30 10:00:01

SQL數據重復

2020-05-07 10:09:30

MAC地址網絡協議網絡

2011-08-18 11:18:25

Oracle唯一約束唯一索引
點贊
收藏

51CTO技術棧公眾號

欧美激情视频在线免费观看 欧美视频免费一| 狠狠躁天天躁日日躁欧美| 成人疯狂猛交xxx| 青青草激情视频| 国产成人精品亚洲线观看| 狠狠久久五月精品中文字幕| 伊人婷婷久久| 午夜视频免费在线| 久久国产免费看| 久久久免费电影| 欧美福利在线视频| 六月丁香久久丫| 欧美日韩高清一区| 两根大肉大捧一进一出好爽视频| 日本不卡在线| 成人免费毛片片v| 国产日韩在线看| 国产污污视频在线观看 | 美女av在线免费看| 亚洲人成小说网站色在线| 欧美精品一区在线发布| 精品人妻伦一区二区三区久久| 久久精品麻豆| 国内伊人久久久久久网站视频 | 成人区人妻精品一区二| 日韩一区二区三区四区五区| 一本一道波多野结衣一区二区| 超级碰在线观看| jizz在线观看中文| 91亚洲精华国产精华精华液| 91久久伊人青青碰碰婷婷| 亚洲最大成人av| 日韩精品一级中文字幕精品视频免费观看 | 日韩av电影免费观看高清完整版| 91精品国产91久久久久福利| 国产这里有精品| 国产精品久久久久久久免费观看 | 久久精品二区三区| 97精品久久久| 久久精品人妻一区二区三区| 欧美1区免费| 久久精品视频亚洲| 激情无码人妻又粗又大| 日韩激情在线| 最好看的2019年中文视频| 中文字幕在线看高清电影| 日本天堂一区| 日韩成人性视频| 亚洲精品乱码久久久久久不卡 | 亚洲成色最大综合在线| 国产在线观看免费| 国产日韩欧美高清| 日韩在线第一区| 成年人视频免费在线观看| 国产校园另类小说区| 欧美三级电影在线播放| 三级在线播放| 久久久久国色av免费看影院| 欧美视频观看一区| 国产污视频在线| 日本一区二区视频在线| 视频在线精品一区| 888av在线| 亚洲欧美日韩一区二区| 97超碰免费观看| 中文在线手机av| 亚洲成av人片一区二区三区 | 电影k8一区二区三区久久| 亚洲一区二区视频在线| 欧美不卡在线播放| 欧美电影免费观看高清完整| 欧美中文字幕亚洲一区二区va在线| 激情婷婷综合网| 日本午夜精品久久久久| 欧美一级高清大全免费观看| 亚洲天堂av网站| 久久成人高清| 色综合伊人色综合网站| 欧美激情一区二区视频| 亚洲精品1234| 国产精品九九九| 99久久精品国产一区色 | 天堂在线中文视频| 99精品全国免费观看视频软件| 欧美超级乱淫片喷水| 日本系列第一页| 日韩av一区二区在线影视| 91精品国产自产在线| 亚洲精品成人电影| 国产欧美日韩视频在线观看| 韩国黄色一级大片| 午夜不卡影院| 4438成人网| 三级黄色片网站| 欧美高清在线| 2020欧美日韩在线视频| 一本久道久久综合无码中文| 风间由美性色一区二区三区 | yiren22综合网成人| 亚洲欧美另类在线| 日本成人在线免费视频| 亚洲视频三区| 一区二区亚洲欧洲国产日韩| 国产在线视频你懂的| 免费观看在线色综合| 粉嫩高清一区二区三区精品视频 | 欧美a大片欧美片| 久久精品视频va| 激情网站在线观看| 成人aaaa免费全部观看| 日本不卡一区二区三区四区| 成人av观看| 精品免费一区二区三区| 永久av免费网站| 美女视频一区免费观看| 国产高清自拍一区| 男人影院在线观看| 欧洲一区在线电影| 97人妻精品一区二区三区免 | 国产女人高潮的av毛片| 久久久高清一区二区三区| 国产1区2区3区中文字幕| 国产精品原创视频| 亚洲欧美色婷婷| 日本网站免费观看| 国产不卡视频一区二区三区| 伊人色综合影院| 国产精品99久久久久久董美香| 亚洲精选在线观看| 国内免费精品视频| 福利一区二区在线观看| 国产精品视频一二三四区| 欧美成人福利| 色诱女教师一区二区三区| 日本视频网站在线观看| 97se亚洲国产综合自在线不卡 | 久久亚洲风情| 免费在线成人av电影| 国产网站在线| 亚洲黄色片网站| 激情综合网五月婷婷| 顶级嫩模精品视频在线看| 国产盗摄视频在线观看| 国产精品一区三区在线观看| 精品国模在线视频| 国产精品美女一区| 亚洲欧美综合另类在线卡通| 日本黄色福利视频| 久久久久久美女精品| 国产美女被下药99| 麻豆传媒在线免费看| 欧美二区三区的天堂| 艳妇荡乳欲伦69影片| 狠狠色狠狠色综合| 日本一区二区三区四区五区六区| 欧美片网站免费| 欧美激情va永久在线播放| 成人av手机在线| 亚洲第一主播视频| 变态另类丨国产精品| 久久精品男女| 婷婷久久五月天| 国产aa精品| 久久久久久久久久久成人| 好男人在线视频www| 天天射综合影视| 日本激情小视频| 蜜臀av一区二区在线免费观看 | 午夜在线精品偷拍| 少妇免费毛片久久久久久久久| 久久人体av| 欧美大片欧美激情性色a∨久久| 黄色一级a毛片| 欧美日在线观看| 成人18视频免费69| 粉嫩一区二区三区在线看| 欧美牲交a欧美牲交| 精品国产123区| 亚洲一区二区三区四区在线播放| 蜜桃传媒在线观看免费进入 | 成人福利在线观看视频| 亚洲精品一区在线观看| 免费一级a毛片| 一区二区三区精品久久久| 国产高清自拍视频| 麻豆免费精品视频| 国产亚洲黄色片| 欧美偷拍自拍| 国产精品一区二区三区精品| 精品免费av在线| 欧美激情videoshd| 成年人视频在线看| 亚洲国产精品高清久久久| 波多野结衣理论片| 亚洲一区二区欧美| 成人做爰69片免网站| 大尺度一区二区| 日本xxxx黄色| 国产欧美成人| 影音先锋男人的网站| 一本色道久久综合亚洲精品酒店| 91亚洲精品一区| 免费电影日韩网站| 久久久久久网站| 麻豆传媒视频在线| 亚洲深夜福利视频| 好吊色一区二区| 91精品婷婷国产综合久久性色 | 韩国成人福利片在线播放| 国产成人无码a区在线观看视频| 小处雏高清一区二区三区| 免费看污久久久| 国产日韩三级| 91视频8mav| 激情亚洲小说| 国产91色在线播放| 高清精品在线| 欧美裸体xxxx极品少妇| 五月香视频在线观看| 亚洲男人av电影| 欧美一区二区三区激情| 日韩欧美国产精品| 国产精品国产三级国产普通话对白 | 免费观看在线一区二区三区| 国产精品视频久久久久| 一区二区三区四区日本视频| 久久久视频精品| 中文在线免费| 欧美xxxx18国产| 久久五月精品| 日韩在线观看av| 无遮挡动作视频在线观看免费入口 | 国产精品久久久久久久久久| 亚洲午夜天堂| 欧美在线视频播放| 亚洲天堂av在线| 欧美在线亚洲一区| 久热在线观看视频| 51色欧美片视频在线观看| 91超碰在线播放| 97精品国产97久久久久久春色| 超碰中文在线| 久久乐国产精品| 麻豆蜜桃在线| 久久久伊人欧美| 超级白嫩亚洲国产第一| 韩国美女主播一区| 日韩欧美一中文字暮专区| 97福利一区二区| 天堂中文av在线资源库| 国产成人激情视频| 精品三区视频| 国产免费亚洲高清| 成人乱码手机视频| 亚洲伊人久久综合| www国产精品| 久久久久久欧美精品色一二三四| 日韩精品社区| 欧美一区二区在线视频观看| 日韩电影二区| 日本黄xxxxxxxxx100| 精久久久久久| 成年人网站大全| 捆绑调教美女网站视频一区| 手机精品视频在线| www.欧美精品一二区| 最新中文字幕视频| 欧美激情在线观看视频免费| 少妇人妻丰满做爰xxx| 亚洲成人精品在线观看| 97久久久久久久| 欧美色老头old∨ideo| 国产精品国产av| 日韩成人在线网站| 91在线播放网站| 欧美精品免费播放| 忘忧草在线影院两性视频| 国产日韩欧美在线看| 国产精品毛片久久久| 日韩影视精品| 影音先锋日韩资源| 亚洲成人av免费看| 成人午夜伦理影院| 欧美激情亚洲色图| 一区二区三区日本| 成人黄色三级视频| 日韩亚洲欧美高清| 丁香婷婷在线| 久久久这里只有精品视频| 免费污视频在线一区| 国产精品精品软件视频| 日本一本不卡| 97超碰在线人人| 免费在线看成人av| 国产精品无码毛片| 亚洲特黄一级片| 无码人妻丰满熟妇精品区| 欧美一级片在线| av在线三区| 91精品国产免费久久久久久 | 成人性生活毛片| 色婷婷国产精品综合在线观看| 国产成人三级一区二区在线观看一| 亚洲男人av在线| www欧美xxxx| 91视频88av| 色婷婷一区二区三区| 红桃av在线播放| 成人一区二区三区中文字幕| 国产精品视频一区二区在线观看| 欧美视频一区二区三区…| 国产精品国产三级国产普通话对白 | 欧美日韩精品免费观看视频完整| av丝袜天堂网| www一区二区| 日韩av女优在线观看| 欧美一区二区三区在线| 亚洲精品传媒| 国产精品99久久久久久白浆小说| 老牛国内精品亚洲成av人片| 久久av高潮av| 国产一区二区女| 少妇视频一区二区| 欧美日韩国产一二三| 东凛在线观看| 国产不卡视频在线| 制服丝袜日韩| 日韩视频在线免费看| 97精品视频在线观看自产线路二| 国产午夜精品无码| 精品成人免费观看| 青青草视频在线免费直播| 91久久爱成人| 激情91久久| 午夜视频在线观看国产| 亚洲v日本v欧美v久久精品| 午夜美女福利视频| 欧美激情网友自拍| 久久九九热re6这里有精品| 日韩精品在线中文字幕| 成人18视频日本| 日韩精品视频免费看| 亚洲精品电影在线| 周于希免费高清在线观看| 欧美日韩精品免费在线观看视频| 久久精品一区二区国产| 日韩av在线看免费观看| 欧美视频一二三区| 丝袜美腿美女被狂躁在线观看| 国产精品中文字幕在线| 91精品国产91久久久久久密臀| 在线免费看v片| 亚洲国产色一区| 污污的视频网站在线观看| 欧美在线精品免播放器视频| 影视先锋久久| www.com操| 亚洲桃色在线一区| 黄色av中文字幕| 热草久综合在线| 日韩激情图片| 人妻 丝袜美腿 中文字幕| 精品国产91乱高清在线观看| 久蕉依人在线视频| 国产女人18毛片水18精品| 欧美激情第10页| 久久人人爽人人人人片| 欧美中文字幕一区二区三区亚洲| 国产日产一区二区三区| 成人欧美一区二区| 日韩中文字幕不卡| 日本在线一级片| 日韩高清免费在线| 欧美性aaa| 日韩av高清在线看片| 日本一区二区在线不卡| 国产激情久久久久久熟女老人av| 97久久久久久| 不卡中文字幕| zjzjzjzjzj亚洲女人| 日韩欧美中文第一页| 欧美日韩在线资源| 国外成人在线视频网站| 日韩电影在线一区二区| 欧美被狂躁喷白浆精品| 亚洲欧美日韩一区二区在线| 国产999精品在线观看| 97在线播放视频| 一区二区三区在线播放| 男同在线观看| 丁香五月网久久综合| 免费观看一级特黄欧美大片| 日韩毛片在线播放| 久久精品男人天堂| 嫩草影视亚洲| 欧美xxxxx精品| 在线播放欧美女士性生活| 综合毛片免费视频| 乱熟女高潮一区二区在线| 国产精品女同一区二区三区|