国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一文快速入門分庫分表

數(shù)據(jù)庫 MySQL
之前有不少剛?cè)肟?Java 的粉絲留言,想系統(tǒng)的學(xué)習(xí)一下分庫分表相關(guān)技術(shù),可我一直沒下定決心搞,眼下趕上公司項(xiàng)目在使用 sharing-jdbc 對現(xiàn)有 MySQL 架構(gòu)做分庫分表的改造,所以借此機(jī)會出一系分庫分表落地實(shí)踐的文章,也算是自己對架構(gòu)學(xué)習(xí)的一個(gè)總結(jié)。

[[344038]]

本文轉(zhuǎn)載自微信公眾號「程序員內(nèi)點(diǎn)事」,作者程序員內(nèi)點(diǎn)事 。轉(zhuǎn)載本文請聯(lián)系程序員內(nèi)點(diǎn)事公眾號。

之前有不少剛?cè)肟?Java 的粉絲留言,想系統(tǒng)的學(xué)習(xí)一下分庫分表相關(guān)技術(shù),可我一直沒下定決心搞,眼下趕上公司項(xiàng)目在使用 sharing-jdbc 對現(xiàn)有 MySQL 架構(gòu)做分庫分表的改造,所以借此機(jī)會出一系分庫分表落地實(shí)踐的文章,也算是自己對架構(gòu)學(xué)習(xí)的一個(gè)總結(jié)。

我在網(wǎng)上陸陸續(xù)續(xù)的也看了一些有關(guān)于分庫分表的文章,可發(fā)現(xiàn)網(wǎng)上同質(zhì)化的資料有點(diǎn)多,而且知識點(diǎn)又都比較零碎,還沒有詳細(xì)的實(shí)戰(zhàn)案例。為了更深入的學(xué)習(xí)下,我在某些平臺買了點(diǎn)付費(fèi)課程,看了幾節(jié)課發(fā)現(xiàn)有點(diǎn)經(jīng)驗(yàn)的人看還可以,但對于新手入門來說,其實(shí)學(xué)習(xí)難度還是蠻大的。

為了讓新手也能看得懂,有些知識點(diǎn)我可能會用更多的篇幅加以描述,希望大家不要嫌我啰嗦,等這分庫分表系列文章完結(jié)后,我會把它做成 PDF 文檔開源出去,能幫一個(gè)算一個(gè)吧!如果發(fā)現(xiàn)文中有哪些錯(cuò)誤或不嚴(yán)謹(jǐn)之處,歡迎大家交流指正。

具體實(shí)踐分庫分表之前在啰嗦幾句,回頭復(fù)習(xí)下分庫分表的基礎(chǔ)概念。

什么是分庫分表

其實(shí) 分庫 和 分表 是兩個(gè)概念,只不過通常分庫與分表的操作會同時(shí)進(jìn)行,以至于我們習(xí)慣性的將它們合在一起叫做分庫分表。

分庫分表是為了解決由于庫、表數(shù)據(jù)量過大,而導(dǎo)致數(shù)據(jù)庫性能持續(xù)下降的問題。按照一定的規(guī)則,將原本數(shù)據(jù)量大的數(shù)據(jù)庫拆分成多個(gè)單獨(dú)的數(shù)據(jù)庫,將原本數(shù)據(jù)量大的表拆分成若干個(gè)數(shù)據(jù)表,使得單一的庫、表性能達(dá)到最優(yōu)的效果(響應(yīng)速度快),以此提升整體數(shù)據(jù)庫性能。

如何分庫分表

分庫分表的核心理念就是對數(shù)據(jù)進(jìn)行切分(Sharding),以及切分后如何對數(shù)據(jù)的快速定位與查詢結(jié)果整合。而分庫與分表都可以從:垂直(縱向)和 水平(橫向)兩種緯度進(jìn)行切分。


 

分庫分表

 

下邊我們就以訂單相關(guān)的業(yè)務(wù)舉例,看看如何做庫、表的 垂直 和 水平 切分。

垂直切分

垂直切分有 垂直 分庫 和 垂直分表。

1、垂直分庫

垂直分庫相對來說是比較好理解的,核心理念就四個(gè)字:專庫專用。

按業(yè)務(wù)類型對表進(jìn)行分類,像訂單、支付、優(yōu)惠券、積分等相應(yīng)的表放在對應(yīng)的數(shù)據(jù)庫中。開發(fā)者不可以跨庫直連別的業(yè)務(wù)數(shù)據(jù)庫,想要其他業(yè)務(wù)數(shù)據(jù),對應(yīng)業(yè)務(wù)方可以提供 API 接口,這就是微服務(wù)的初始形態(tài)。

垂直分庫很大程度上取決于業(yè)務(wù)的劃分,但有時(shí)候業(yè)務(wù)間的劃分并不是那么清晰,比如:訂單數(shù)據(jù)的拆分要考慮到與其他業(yè)務(wù)間的關(guān)聯(lián)關(guān)系,并不是說直接把訂單相關(guān)的表放在一個(gè)庫里這么簡單。

在一定程度上,垂直分庫似乎提升了一些數(shù)據(jù)庫性能,可實(shí)際上并沒有解決由于單表數(shù)據(jù)量過大導(dǎo)致的性能問題,所以就需要配合水平切分方式來解決。

垂直分庫

 

2、垂直分表

垂直分表是基于數(shù)據(jù)表的列(字段)為依據(jù)切分的,是一種大表拆小表的模式。

例如:一張 order 訂單表,將訂單金額、訂單編號等訪問頻繁的字段,單獨(dú)拆成一張表,把 blob 類型這樣的大字段或訪問不頻繁的字段,拆分出來創(chuàng)建一個(gè)單獨(dú)的擴(kuò)展表 work_extend ,這樣每張表只存儲原表的一部分字段,再將拆分出來的表分散到不同的庫中。

 

垂直分表

 

我們知道數(shù)據(jù)庫是以行為單位將數(shù)據(jù)加載到內(nèi)存中,這樣拆分以后核心表大多是訪問頻率較高的字段,而且字段長度也都較短,因而可以加載更多數(shù)據(jù)到內(nèi)存中,來增加查詢的命中率,減少磁盤IO,以此來提升數(shù)據(jù)庫性能。

垂直切分的優(yōu)點(diǎn):

  • 業(yè)務(wù)間數(shù)據(jù)解耦,不同業(yè)務(wù)的數(shù)據(jù)進(jìn)行獨(dú)立的維護(hù)、監(jiān)控、擴(kuò)展。
  • 在高并發(fā)場景下,一定程度上緩解了數(shù)據(jù)庫的壓力。

垂直切分的缺點(diǎn):

  • 提升了開發(fā)的復(fù)雜度,由于業(yè)務(wù)的隔離性,很多表無法直接訪問,必須通過接口方式聚合數(shù)據(jù)。
  • 分布式事務(wù)管理難度增加。
  • 數(shù)據(jù)庫還是存在單表數(shù)據(jù)量過大的問題,并未根本上解決,需要配合水平切分。

水平切分

前邊說了垂直切分還是會存在單庫、表數(shù)據(jù)量過大的問題,當(dāng)我們的應(yīng)用已經(jīng)無法在細(xì)粒度的垂直切分時(shí), 依舊存在單庫讀寫、存儲性能瓶頸,這時(shí)就要配合水平切分一起了,水平切分能大幅提升數(shù)據(jù)庫性能。

1、水平分庫

水平分庫是把同一個(gè)表按一定規(guī)則拆分到不同的數(shù)據(jù)庫中,每個(gè)庫可以位于不同的服務(wù)器上,以此實(shí)現(xiàn)水平擴(kuò)展,是一種常見的提升數(shù)據(jù)庫性能的方式。

這種方案往往能解決單庫存儲量及性能瓶頸問題,但由于同一個(gè)表被分配在不同的數(shù)據(jù)庫中,數(shù)據(jù)的訪問需要額外的路由工作,因此系統(tǒng)的復(fù)雜度也被提升了。

例如下圖,訂單DB_1、訂單DB_1、訂單DB_3 三個(gè)數(shù)據(jù)庫內(nèi)有完全相同的表 order,我們在訪問某一筆訂單時(shí)可以通過對訂單的訂單編號取模的方式 訂單編號 mod 3 (數(shù)據(jù)庫實(shí)例數(shù)) ,指定該訂單應(yīng)該在哪個(gè)數(shù)據(jù)庫中操作。

水平分庫

 

2、水平分表

水平分表是在同一個(gè)數(shù)據(jù)庫內(nèi),把一張大數(shù)據(jù)量的表按一定規(guī)則,切分成多個(gè)結(jié)構(gòu)完全相同表,而每個(gè)表只存原表的一部分?jǐn)?shù)據(jù)。

例如:一張 order 訂單表有 900萬數(shù)據(jù),經(jīng)過水平拆分出來三個(gè)表,order_1、order_2、order_3,每張表存有數(shù)據(jù) 300萬,以此類推。

水平分表

 

水平分表盡管拆分了表,但子表都還是在同一個(gè)數(shù)據(jù)庫實(shí)例中,只是解決了單一表數(shù)據(jù)量過大的問題,并沒有將拆分后的表分散到不同的機(jī)器上,還在競爭同一個(gè)物理機(jī)的CPU、內(nèi)存、網(wǎng)絡(luò)IO等。要想進(jìn)一步提升性能,就需要將拆分后的表分散到不同的數(shù)據(jù)庫中,達(dá)到分布式的效果。

 

 

 

分庫分表

 

水平切分的優(yōu)點(diǎn):

  • 解決高并發(fā)時(shí)單庫數(shù)據(jù)量過大的問題,提升系統(tǒng)穩(wěn)定性和負(fù)載能力。
  • 業(yè)務(wù)系統(tǒng)改造的工作量不是很大。

水平切分的缺點(diǎn):

  • 跨分片的事務(wù)一致性難以保證。
  • 跨庫的join關(guān)聯(lián)查詢性能較差。
  • 擴(kuò)容的難度和維護(hù)量較大,(拆分成幾千張子表想想都恐怖)。

一定規(guī)則是什么

我們上邊提到過很多次 一定規(guī)則 ,這個(gè)規(guī)則其實(shí)是一種路由算法,就是決定一條數(shù)據(jù)具體應(yīng)該存在哪個(gè)數(shù)據(jù)庫的哪張表里。

常見的有 取模算法 和 范圍限定算法

1、取模算法

按字段取模(對hash結(jié)果取余數(shù) (hash() mod N),N為數(shù)據(jù)庫實(shí)例數(shù)或子表數(shù)量)是最為常見的一種切分方式。

還拿 order 訂單表舉例,先對數(shù)據(jù)庫從 0 到 N-1進(jìn)行編號,對 order 訂單表中work_no 訂單編號字段進(jìn)行取模,得到余數(shù) i,i=0存第一個(gè)庫,i=1存第二個(gè)庫,i=2存第三個(gè)庫....以此類推。

這樣同一筆訂單的數(shù)據(jù)都會存在同一個(gè)庫、表里,查詢時(shí)用相同的規(guī)則,用 work_no 訂單編號作為查詢條件,就能快速的定位到數(shù)據(jù)。

優(yōu)點(diǎn):

  • 數(shù)據(jù)分片相對比較均勻,不易出現(xiàn)請求都打到一個(gè)庫上的情況。

缺點(diǎn):

  • 這種算法存在一些問題,當(dāng)某一臺機(jī)器宕機(jī),本應(yīng)該落在該數(shù)據(jù)庫的請求就無法得到正確的處理,這時(shí)宕掉的實(shí)例會被踢出集群,此時(shí)算法變成hash(userId) mod N-1,用戶信息可能就不再在同一個(gè)庫中了。

2、范圍限定算法

按照 時(shí)間區(qū)間 或 ID區(qū)間 來切分,比如:我們切分的是用戶表,可以定義每個(gè)庫的User 表里只存10000條數(shù)據(jù),第一個(gè)庫只存 userId 從1 ~ 9999的數(shù)據(jù),第二個(gè)庫存 userId 為10000 ~ 20000,第三個(gè)庫存 userId 為 20001~ 30000......以此類推,按時(shí)間范圍也是同理。

優(yōu)點(diǎn):

  • 單表數(shù)據(jù)量是可控的
  • 水平擴(kuò)展簡單只需增加節(jié)點(diǎn)即可,無需對其他分片的數(shù)據(jù)進(jìn)行遷移
  • 能快速定位要查詢的數(shù)據(jù)在哪個(gè)庫

缺點(diǎn):

  • 由于連續(xù)分片可能存在數(shù)據(jù)熱點(diǎn),比如按時(shí)間字段分片,可能某一段時(shí)間內(nèi)訂單驟增,可能會被頻繁的讀寫,而有些分片存儲的歷史數(shù)據(jù),則很少被查詢。

分庫分表的難點(diǎn)

1、分布式事務(wù)

由于表分布在不同庫中,不可避免會帶來跨庫事務(wù)問題。一般可使用 "三階段提交 "和 "兩階段提交" 處理,但是這種方式性能較差,代碼開發(fā)量也比較大。通常做法是做到最終一致性的方案,如果不苛求系統(tǒng)的實(shí)時(shí)一致性,只要在允許的時(shí)間段內(nèi)達(dá)到最終一致性即可,采用事務(wù)補(bǔ)償?shù)姆绞健?/p>

這里我應(yīng)用阿里的分布式事務(wù)框架Seata 來做分布式事務(wù)的管理,后邊會結(jié)合實(shí)際案例。

2、分頁、排序、跨庫聯(lián)合查詢

分頁、排序、聯(lián)合查詢是開發(fā)中使用頻率非常高的功能,但在分庫分表后,這些看似普通的操作卻是讓人非常頭疼的問題。將分散在不同庫中表的數(shù)據(jù)查詢出來,再將所有結(jié)果進(jìn)行匯總整理后提供給用戶。

3、分布式主鍵

分庫分表后數(shù)據(jù)庫的自增主鍵意義就不大了,因?yàn)槲覀儾荒芤揽繂蝹€(gè)數(shù)據(jù)庫實(shí)例上的自增主鍵來實(shí)現(xiàn)不同數(shù)據(jù)庫之間的全局唯一主鍵,此時(shí)一個(gè)能夠生成全局唯一ID的系統(tǒng)是非常必要的,那么這個(gè)全局唯一ID就叫 分布式ID。

4、讀寫分離

不難發(fā)現(xiàn)大部分主流的關(guān)系型數(shù)據(jù)庫都提供了主從架構(gòu)的高可用方案,而我們需要實(shí)現(xiàn) 讀寫分離 + 分庫分表,讀庫與寫庫都要做分庫分表處理,后邊會有具體實(shí)戰(zhàn)案例。

5、數(shù)據(jù)脫敏

數(shù)據(jù)脫敏,是指對某些敏感信息通過脫敏規(guī)則進(jìn)行數(shù)據(jù)轉(zhuǎn)換,從而實(shí)現(xiàn)敏感隱私數(shù)據(jù)的可靠保護(hù),如身份證號、手機(jī)號、卡號、賬號密碼等個(gè)人信息,一般這些都需要進(jìn)行做脫敏處理。

分庫分表工具

我還是那句話,盡量不要自己造輪子,因?yàn)樽约涸斓妮喿涌赡懿荒敲磮A,業(yè)界已經(jīng)有了很多比較成熟的分庫分表中間件,我們根據(jù)自身的業(yè)務(wù)需求挑選,將更多的精力放在業(yè)務(wù)實(shí)現(xiàn)上。

  • sharding-jdbc(當(dāng)當(dāng))
  • TSharding(蘑菇街)
  • Atlas(奇虎360)
  • Cobar(阿里巴巴)
  • MyCAT(基于Cobar)
  • Oceanus(58同城)
  • Vitess(谷歌)

為什么選 sharding-jdbc

sharding-jdbc 是一款輕量級 Java 框架,以 jar 包形式提供服務(wù),是屬于客戶端產(chǎn)品不需要額外部署,它相當(dāng)于是個(gè)增強(qiáng)版的 JDBC 驅(qū)動;相比之下像 Mycat 這類需要單獨(dú)的部署服務(wù)的服務(wù)端產(chǎn)品,就稍顯復(fù)雜了。況且我想把更多精力放在實(shí)現(xiàn)業(yè)務(wù),不想做額外的運(yùn)維工作。

  • sharding-jdbc的兼容性也非常強(qiáng)大,適用于任何基于 JDBC 的 ORM 框架,如:JPA, Hibernate,Mybatis,Spring JDBC Template 或直接使用的JDBC。
  • 完美兼容任何第三方的數(shù)據(jù)庫連接池,如:DBCP, C3P0, BoneCP,Druid, HikariCP 等,幾乎對所有關(guān)系型數(shù)據(jù)庫都支持。

不難發(fā)現(xiàn)確實(shí)是比較強(qiáng)大的一款工具,而且它對項(xiàng)目的侵入性很小,幾乎不用做任何代碼層的修改,也無需修改 SQL 語句,只需配置待分庫分表的數(shù)據(jù)表即可。

 

總結(jié)

簡單的回顧一下分庫分表的基礎(chǔ)知識,接下來的文章會配合實(shí)戰(zhàn)項(xiàng)目介紹 sharding-jdbc在分庫分表中的各個(gè)功能點(diǎn)。

 

責(zé)任編輯:武曉燕 來源: 程序員內(nèi)點(diǎn)事
相關(guān)推薦

2024-08-13 17:09:00

架構(gòu)分庫分表開發(fā)

2020-11-06 15:30:23

分庫分表Sharding-JD數(shù)據(jù)庫

2024-12-04 13:02:34

數(shù)據(jù)庫分庫分表

2022-02-23 08:55:06

數(shù)據(jù)遷移分庫分表數(shù)據(jù)庫

2023-02-24 15:24:14

MySQL數(shù)據(jù)庫管理分庫分表

2023-07-07 08:00:00

KafkaSpringBoo

2021-05-29 10:11:00

Kafa數(shù)據(jù)業(yè)務(wù)

2020-11-27 09:40:53

Rollup前端代碼

2022-05-16 10:49:28

網(wǎng)絡(luò)協(xié)議數(shù)據(jù)

2020-07-30 17:59:34

分庫分表SQL數(shù)據(jù)庫

2024-05-11 08:18:49

2019-11-12 09:54:20

分庫分表數(shù)據(jù)

2024-10-08 08:52:59

2024-08-19 13:46:00

2023-02-26 00:00:04

項(xiàng)目標(biāo)簽體系

2021-01-06 05:31:13

線性表鏈表數(shù)據(jù)

2021-10-25 09:16:27

MySQL分庫分表

2022-06-22 07:32:53

Sharding分庫數(shù)據(jù)源

2022-06-30 07:34:46

分庫分表外賣訂單系統(tǒng)

2022-05-11 11:54:55

Http傳送協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

天堂美国久久| 免费在线看污片| 视频国产精品| 欧美日韩在线视频一区二区| 轻轻色免费在线视频| 亚洲精品视频免费观看| 99视频免费| 精品露脸国产偷人在视频| 亚洲精品承认| 亚洲第一区在线观看| 欧美亚洲人成在线| 久久男人资源站| 厕沟全景美女厕沟精品| 欧美黑人xxx| 日韩精品首页| 国产在线传媒| 亚洲欧美日韩中文视频| 毛片.com| 制服丝袜一区二区三区| 韩国成人在线| 国产精品91久久久久久| 嫩草成人www欧美| 18禁男女爽爽爽午夜网站免费| 亚洲午夜在线观看视频在线| 福利在线导航136| 国产精品视频永久免费播放| 免费高清视频精品| 香港经典三级在线| 亚洲a∨日韩av高清在线观看| h片在线播放| 中文字幕日本精品| 综合天天久久| 999精彩视频| 精品亚洲va在线va天堂资源站| 欧美大片在线观看一区二区| 国产欧美88| 亚洲成人自拍| 毛片一区二区| 国产特级毛片| 91在线观看免费| 在线不卡中文字幕播放| 日韩电影在线观看电影| 欧美一区二区三区红桃小说| 午夜视频在线观看韩国| 神马欧美一区二区| 韩国日本不卡在线| 91精品黄色片免费大全| 天堂在线亚洲视频| 亚洲丝袜精品| 国产美女主播在线| 久久久久久久成人| 欧美日韩在线观看视频| 一区二区日本视频| 极品美鲍一区| 99热在线观看| 欧美日韩精品一区| 国内成人精品视频| 亚洲久久在线| 中文字幕乱码在线播放| 国产a视频免费观看| av免费观看国产| 欧美激情一区二区三区在线视频观看| 电影网一区二区| 国产手机视频在线观看| 蜜月aⅴ免费一区二区三区| 中文字幕在线视频一区| 在线国产一区| 欧洲中文字幕精品| 久久99日本精品| 岳的好大精品一区二区三区| 黄色av网站在线| 青青草精品视频在线| 国产精品劲爆视频| 日韩午夜精品视频| 欧美国产亚洲另类动漫| 欧美涩涩网站| 日韩成人久久| 3d成人动漫在线| 91蝌蚪视频在线观看| 精品视频一区在线| 国色天香2019中文字幕在线观看| 欧美综合亚洲图片综合区| 国产精品无码久久久久| 久久av少妇| 超碰影院在线观看| 亚洲一区不卡在线| 亚洲wwwav| 中文字幕成人网| 国产91精品一区二区麻豆网站| 天天色综合色| 精品影片在线观看的网站| 国内精品美女在线观看| 欧美日韩经典丝袜| 日本24小时在线高清视频| 国产av天堂无码一区二区三区| 国产综合欧美在线看| 国产91色在线|| 欧美激情在线狂野欧美精品| 亚洲毛片在线免费观看| 欧美一区二区三区播放老司机| 亚洲v中文字幕| 亚洲综合免费观看高清完整版 | 精品亚洲va在线va天堂资源站| 日本高清不卡aⅴ免费网站| 香蕉加勒比综合久久| 欧美性生活一区| 6080午夜不卡| 国产999精品久久久久久| 成人网av.com/| 国产在线超碰| 国产极品人妖在线观看| 亚洲18在线| 精品久久网站| 天堂va蜜桃一区二区三区漫画版| 成人福利电影精品一区二区在线观看| 亚洲日本乱码在线观看| 欧美日韩精品一区二区三区四区 | 欧美高清在线| 六月婷婷一区| 久久久国际精品| 亚洲青青青在线视频| 岛国av一区二区在线在线观看| 欧美精品高清视频| 国产亚洲欧美日韩美女| 青青久久av北条麻妃海外网| 欧洲亚洲一区二区| 黄色高清在线观看| gay欧美网站| 99热免费精品| 一区二区三区波多野结衣在线观看 | 国产伦精品一区二区三区高清 | 国产精品久久久99| 欧美日韩中文字幕一区| 精品国产乱码久久久久久图片 | 国产一区日韩| 亚洲深深色噜噜狠狠爱网站| 天堂影院一区二区| 99精品欧美一区二区三区小说| 最新不卡av在线| 欧美日韩在线播放三区四区| 久久五月情影视| 91天堂在线视频| 波多野结衣综合网| 男人天堂网在线| 性欧美video另类hd尤物| 婷婷综合社区| 不卡一区二区中文字幕| 婷婷成人激情在线网| 亚洲美女喷白浆| 成人毛片网站| 国产精品视频一区二区图片| 爱啪啪综合导航| 午夜精品久久| 国产精品麻豆欧美日韩ww| 在线不卡免费av| 91牛牛免费视频| 高清国语自产在线观看| 福利影院在线看| 午夜久久福利| 亚洲午夜久久久久中文字幕久| 色中色综合影院手机版在线观看| 欧美日韩一区国产| 日本不卡免费高清视频| 国产成人a亚洲精v品无码| 欧美videossex| 欧美午夜国产| 在线丨暗呦小u女国产精品| 国产精品手机在线| 欧美中文娱乐网| 中文字幕亚洲乱码| 嗯啊主人调教在线播放视频 | 久久精品国产成人| 亚洲一区二区三区涩| av资源种子在线观看| 午夜精彩国产免费不卡不顿大片| 亚洲一区二区成人在线观看| 亚洲精品小说| 香蕉成人久久| 8v天堂国产在线一区二区| 国产mv免费观看入口亚洲| 成人综合视频在线| 欧洲日本在线| 911精品美国片911久久久| thepron国产精品| 久久精品99无色码中文字幕| 黄网站色大毛片| 国产欧美三级电影| 美女视频黄免费的久久 | 性色av一区| 精品午夜电影| 1024亚洲合集| 国产精品r级在线| 在线久久视频| 欧美另类综合| 日韩欧美不卡一区| 国产二区视频在线| 视频精品二区| 亚洲午夜在线视频| 精品无人乱码一区二区三区的优势 | 亚欧美无遮挡hd高清在线视频|