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

如何半天搞定數(shù)據(jù)庫遷移10億級數(shù)據(jù)

數(shù)據(jù)庫 SQL Server
無水平或者垂直切分,但是采用了分區(qū)表。分區(qū)表策略是按時(shí)間降序分的區(qū),將近30個(gè)分區(qū)。正因?yàn)榉謪^(qū)表的原因,系統(tǒng)才保證了在性能不是太差的情況下堅(jiān)持至今。

[[258747]]

一、問題分析

經(jīng)過幾分鐘的排查,數(shù)據(jù)庫情況如下:

數(shù)據(jù)庫采用SQLserver 2008 R2,單表數(shù)據(jù)量21億

無水平或者垂直切分,但是采用了分區(qū)表。分區(qū)表策略是按時(shí)間降序分的區(qū),將近30個(gè)分區(qū)。正因?yàn)榉謪^(qū)表的原因,系統(tǒng)才保證了在性能不是太差的情況下堅(jiān)持至今。

此表除聚集索引之外,無其他索引,無主鍵(主鍵其實(shí)是利用索引來快速查重的)。所以在頻繁插入新數(shù)據(jù)的情況下,索引調(diào)整所耗費(fèi)的性能比較低。

至于聚集索引和非聚集索引等知識(shí),請各位移步google或者百度。

至于業(yè)務(wù),不是太復(fù)雜。經(jīng)過相關(guān)人員咨詢,大約40%的請求為單條Insert,大約60%的請求為按class_id 和in_time(倒序)分頁獲取數(shù)據(jù)。Select請求全部命中聚集索引,所以性能非常高。這也是聚集索引這樣設(shè)計(jì)的目的。

二、解決問題

由于單表數(shù)據(jù)量已經(jīng)超過21億,并且2017年以前的數(shù)據(jù)幾乎不影響業(yè)務(wù),所以決定把2017年以前(不包括2017年)的數(shù)據(jù)遷移到新表,僅供以后特殊業(yè)務(wù)查詢使用。經(jīng)過查詢大約有9億數(shù)據(jù)量。

數(shù)據(jù)遷移工作包括三個(gè)個(gè)步驟:

  • 從源數(shù)據(jù)表查詢出要遷移的數(shù)據(jù)
  • 把數(shù)據(jù)插入新表
  • 把舊表的數(shù)據(jù)刪除

1、傳統(tǒng)做法

這里申明一點(diǎn),就算是傳統(tǒng)的做法也需要分頁獲取源數(shù)據(jù),因?yàn)槟愕膬?nèi)存一次性裝載不下9億條數(shù)據(jù)。

1)從源數(shù)據(jù)表分頁獲取數(shù)據(jù),具體分頁條數(shù),太少則查詢原表太頻繁,太多則查詢太慢。

SQL語句類似于:

  1. SELECT * FROM ( 
  2. SELECT *,ROW_NUMBER() OVER(ORDER BY class_id,in_time) p FROM  tablexx WHERE in_time <'2017.1.1'   
  3. ) t WHERE t.p BETWEEN 1 AND 100 

2)把查詢出來的數(shù)據(jù)插入目標(biāo)數(shù)據(jù)表,這里強(qiáng)調(diào)一點(diǎn),一定不要用單條插入策略,必須用批量插入。

3)把數(shù)據(jù)刪除,其實(shí)這里刪除還是有一個(gè)小難點(diǎn),表沒有標(biāo)示列。這里不展開,因?yàn)檫@不是本文要說的重點(diǎn)。

如果你的數(shù)據(jù)量不大,以上方法完全沒有問題,但是在9億這個(gè)數(shù)字前面,以上方法顯得心有余而力不足。一個(gè)字:慢,太慢,非常慢。

可以大體算一下,假如每秒可以遷移1000條數(shù)據(jù),大約需要的時(shí)間為(單位:分):

  1. 900000000/1000/60=15000(分鐘) 

大約需要10天^ V ^

2、改進(jìn)做法

以上的傳統(tǒng)做法弊端在哪里呢?

  • 在9億數(shù)據(jù)前查詢必須命中索引,就算是非聚集索引我也不推薦,首推聚集索引。
  • 如果你了解索引的原理,你應(yīng)該明白,不停的插入新數(shù)據(jù)的時(shí)候,索引在不停的更新,調(diào)整,以保持樹的平衡等特性。尤其是聚集索引影響甚大,因?yàn)檫€需要移動(dòng)實(shí)際的數(shù)據(jù)。

提取以上兩點(diǎn)共同的要素,那就是聚集索引。相應(yīng)的解決方案也就應(yīng)運(yùn)而生:

  • 按照聚集索分頁引查詢數(shù)據(jù);
  • 批量插入數(shù)據(jù)迎合聚集索引,即:按照聚集索引的順序批量插入;
  • 按照聚集索引順序批量刪除;

由于做了表分區(qū),如果有一種方式把2017年以前的分區(qū)直接在磁盤物理層面從當(dāng)前表剝離,然后掛載到另外一個(gè)表,可算是神級操作。有誰能指導(dǎo)一下,不勝感激~

三、擴(kuò)展閱讀

一個(gè)表的聚集索引的順序就是實(shí)際數(shù)據(jù)文件的順序,映射到磁盤上,本質(zhì)上位于同一個(gè)磁道上,所以操作的時(shí)候磁盤的磁頭不必跳躍著去操作。

存儲(chǔ)在硬盤中的每個(gè)文件都可分為兩部分:文件頭和存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)區(qū)。文件頭用來記錄文件名、文件屬性、占用簇號(hào)等信息,文件頭保存在一個(gè)簇并映射在FAT表(文件分配表)中。

而真實(shí)的數(shù)據(jù)則是保存在數(shù)據(jù)區(qū)當(dāng)中的。

平常所做的刪除,其實(shí)是修改文件頭的前2個(gè)代碼,這種修改映射在FAT表中,就為文件作了刪除標(biāo)記,并將文件所占簇號(hào)在FAT表中的登記項(xiàng)清零,表示釋放空間,這也就是平常刪除文件后,硬盤空間增大的原因。

而真正的文件內(nèi)容仍保存在數(shù)據(jù)區(qū)中,并未得以刪除。要等到以后的數(shù)據(jù)寫入,把此數(shù)據(jù)區(qū)覆蓋掉,這樣才算是徹底把原來的數(shù)據(jù)刪除。如果不被后來保存的數(shù)據(jù)覆蓋,它就不會(huì)從磁盤上抹掉。

四、實(shí)際運(yùn)行代碼

第一步:由于聚集索引需要class_id,所以寧可花2-4秒時(shí)間把要操作的class_id查詢出來(ORM為dapper),并且升序排列:

  1. DateTime dtMax = DateTime.Parse("2017.1.1"); 
  2.  var allClassId = DBProxy.GeSourcetLstClassId(dtMax)?.OrderBy(s=>s); 

按照第一步class_id列表順序查詢數(shù)據(jù),每個(gè)class_id分頁獲取,然后插入目標(biāo)表,全部完成然后刪除源表相應(yīng)class_id的數(shù)據(jù)。

  1. int pageIndex = 1; //頁碼 
  2.            int pageCount = 20000;//每頁的數(shù)據(jù)條數(shù) 
  3.            DataTable tempData =null
  4.            int successCount = 0; 
  5.            foreach (var classId in allClassId) 
  6.            { 
  7.                tempData = null
  8.                pageIndex = 1; 
  9.                while (true
  10.                { 
  11.                    int startIndex = (pageIndex - 1) * pageCount+1; 
  12.                    int endIndex = pageIndex * pageCount; 
  13.                    tempData = DBProxy.GetSourceDataByClassIdTable(dtMax, classId, startIndex, endIndex); 
  14.                    if (tempData == null || tempData.Rows.Count==0) 
  15.                    { 
  16.                        //末尾一頁無數(shù)據(jù)了,刪除源數(shù)據(jù)源數(shù)據(jù)然后跳出 
  17.                         DBProxy.DeleteSourceClassData(dtMax, classId); 
  18.                        break; 
  19.                    } 
  20.                    else 
  21.                    { 
  22.                        DBProxy.AddTargetData(tempData); 
  23.                    } 
  24.                    pageIndex++; 
  25.                } 
  26.                successCount++; 
  27.                Console.WriteLine($"班級:{classId} 完成,已經(jīng)完成:{successCount}個(gè)"); 
  28.            } 

DBProxy完整代碼:

  1. class DBProxy 
  2.     { 
  3.         //獲取要遷移的數(shù)據(jù)所有班級id 
  4.         public static IEnumerable<int> GeSourcetLstClassId(DateTime dtMax) 
  5.         { 
  6.             var connection = Config.GetConnection(Config.SourceDBStr); 
  7.             string Sql = @"SELECT class_id FROM  tablexx WHERE in_time <@dtMax GROUP BY class_id "
  8.             using (connection
  9.             { 
  10.                 return connection.Query<int>(Sql, new { dtMax = dtMax }, commandType: System.Data.CommandType.Text); 
  11.             } 
  12.         } 
  13.         public static DataTable GetSourceDataByClassIdTable(DateTime dtMax, int classId, int startIndex, int endIndex) 
  14.         { 
  15.             var connection = Config.GetConnection(Config.SourceDBStr); 
  16.             string Sql = @" SELECT * FROM ( 
  17.                         SELECT *,ROW_NUMBER() OVER(ORDER BY in_time desc) p FROM  tablexx WHERE in_time <@dtMax  AND class_id=@classId 
  18.                         ) t WHERE t.p BETWEEN @startIndex AND @endIndex "; 
  19.             using (connection
  20.             { 
  21.                 DataTable table = new DataTable("MyTable"); 
  22.                 var reader = connection.ExecuteReader(Sql, new { dtMax = dtMax, classId = classId, startIndex = startIndex, endIndex = endIndex }, commandType: System.Data.CommandType.Text); 
  23.                 table.Load(reader); 
  24.                 reader.Dispose(); 
  25.                 return table
  26.             } 
  27.         } 
  28.          public static int DeleteSourceClassData(DateTime dtMax, int classId) 
  29.         { 
  30.             var connection = Config.GetConnection(Config.SourceDBStr); 
  31.             string Sql = @" delete from  tablexx WHERE in_time <@dtMax  AND class_id=@classId "
  32.             using (connection
  33.             { 
  34.                 return connection.Execute(Sql, new { dtMax = dtMax, classId = classId }, commandType: System.Data.CommandType.Text); 
  35.             } 
  36.         } 
  37.         //SqlBulkCopy 批量添加數(shù)據(jù) 
  38.         public static int AddTargetData(DataTable data) 
  39.         { 
  40.             var connection = Config.GetConnection(Config.TargetDBStr); 
  41.             using (var sbc = new SqlBulkCopy(connection)) 
  42.             { 
  43.                 sbc.DestinationTableName = "tablexx_2017";                
  44.                 sbc.ColumnMappings.Add("class_id""class_id"); 
  45.                 sbc.ColumnMappings.Add("in_time""in_time"); 
  46.                 . 
  47.                 . 
  48.                 . 
  49.                 using (connection
  50.                 { 
  51.                     connection.Open(); 
  52.                     sbc.WriteToServer(data); 
  53.                 }                
  54.             } 
  55.             return 1; 
  56.         } 
  57.     } 

運(yùn)行報(bào)告:

程序本機(jī)運(yùn)行,開虛擬專用網(wǎng)絡(luò)連接遠(yuǎn)程DB服務(wù)器,運(yùn)行1分鐘,遷移的數(shù)據(jù)數(shù)據(jù)量為1915560,每秒約3萬條數(shù)據(jù)。

1915560 / 60=31926 條/秒

CPU情況(不高):

磁盤隊(duì)列情況(不高):

五、寫在后面

在以下情況下速度還將提高:

  • 源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫硬盤為ssd,并且分別為不同的服務(wù)器;
  • 遷移程序和數(shù)據(jù)庫在同一個(gè)局域網(wǎng),保障數(shù)據(jù)傳輸時(shí)候帶寬不會(huì)成為瓶頸;
  • 合理的設(shè)置SqlBulkCopy參數(shù);
  • 我們的場景大多數(shù)場景下每次批量插入的數(shù)據(jù)量達(dá)不到設(shè)置的值,因?yàn)橛械腸lass_id 對應(yīng)的數(shù)據(jù)量就幾十條,甚至幾條而已,打開關(guān)閉數(shù)據(jù)庫連接也是需要耗時(shí)的;
  • 單純的批量添加或者批量刪除操作。

 

責(zé)任編輯:武曉燕 來源: 互聯(lián)網(wǎng)修煉之道
相關(guān)推薦

2024-08-22 14:16:08

2025-02-21 08:20:33

2019-06-05 14:30:21

MySQL數(shù)據(jù)庫索引

2019-05-27 09:56:00

數(shù)據(jù)庫高可用架構(gòu)

2019-05-28 09:31:05

Elasticsear億級數(shù)據(jù)ES

2021-02-05 10:58:28

數(shù)據(jù)存儲(chǔ)架構(gòu)

2023-12-01 15:50:46

2019-09-19 16:29:41

云數(shù)據(jù)庫遷移DBaaS數(shù)據(jù)庫

2021-06-29 08:12:22

MySQL數(shù)據(jù)分頁數(shù)據(jù)庫

2011-03-03 10:32:07

Mongodb億級數(shù)據(jù)量

2009-03-19 09:50:25

遷移微軟Analysis Se

2023-10-09 08:37:39

2015-05-15 14:51:11

TB 級數(shù)據(jù)云備份

2024-07-17 08:29:20

2021-04-07 13:43:07

PythonDash數(shù)據(jù)庫

2023-11-13 08:16:08

MySQL數(shù)據(jù)數(shù)據(jù)庫

2019-07-09 08:23:07

數(shù)據(jù)安全旅游網(wǎng)絡(luò)安全

2018-12-14 09:32:06

億級數(shù)據(jù)存在

2018-12-14 09:16:31

裝載數(shù)據(jù)數(shù)組

2022-09-25 22:09:09

大數(shù)據(jù)量技術(shù)HDFS客戶端
點(diǎn)贊
收藏

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

男人天堂手机在线| 免费黄色小视频在线观看| 日本精品在线播放| 亚洲国产成人av网| 日韩成人在线资源| 91国在线视频| 亚洲久久一区| 中文字幕日本欧美| yjizz视频| 美女色狠狠久久| 亚洲一区在线观看网站| 亚洲自拍小视频| aaa人片在线| 五月婷婷六月综合| 日韩电视剧在线观看免费网站| 男人女人黄一级| 国产又色又爽又黄刺激在线视频| 久久精品亚洲一区二区三区浴池| 91免费高清视频| 久久精品久久久久久久| 欧美国内亚洲| 在线色欧美三级视频| 2025中文字幕| 日韩欧美三区| 色老汉av一区二区三区| 国产欧美久久久久| 日本在线免费| 久久久精品日韩欧美| 国产成人精品日本亚洲11| 中文字幕乱码人妻二区三区| 亚洲精品乱码| 美女精品视频一区| 国产成人免费观看网站| 欧美激情久久久久久久久久久| 欧美精品v国产精品v日韩精品| 日本成年人网址| 羞羞的视频在线看| 亚洲欧美一区二区在线观看| 日产国产精品精品a∨| 少妇喷水在线观看| 国产乱理伦片在线观看夜一区| 国产精品精品久久久久久| 国产在线拍揄自揄拍| 亚洲高清影视| 久久激情五月丁香伊人| 欧美人与禽zoz0善交| 免费毛片在线不卡| 日韩精品极品在线观看| 黄色性视频网站| 一区二区日韩| 日韩欧美在线1卡| 亚洲一区精品视频在线观看| 国产综合色区在线观看| 日韩欧美第一页| 欧美女人性生活视频| av资源网在线播放| 亚洲一线二线三线视频| wwwwww欧美| 牛牛精品在线视频| 亚洲美女偷拍久久| 一级黄色片播放| bt在线麻豆视频| 亚洲黄色在线视频| 成人在线视频一区二区三区| 毛片大全在线观看| 亚洲高清不卡在线| 毛片在线播放视频| 美女100%一区| 欧美午夜影院一区| 亚洲黄色av片| 久久久久久久久成人| 日韩欧美久久久| 在线xxxxx| 林ゆな中文字幕一区二区| 亚洲精品久久久久中文字幕二区| 亚洲 欧美 日韩在线| 日韩精品社区| 亚洲午夜女主播在线直播| 欧美激情 一区| 亚洲一级淫片| 午夜免费日韩视频| 久久99国产综合精品免费| 日韩综合一区二区| 91深夜福利视频| 人人妻人人澡人人爽精品日本| 91亚洲精华国产精华精华液| 视频一区二区精品| 成人午夜在线影视| 午夜精品成人在线| 91n.com在线观看| 精品国产一级| 日韩av在线影院| 男人的天堂av网| 亚洲va在线| 97视频在线观看网址| 天天综合久久综合| 国产福利一区在线观看| 蜜桃精品久久久久久久免费影院| 伊人免费在线| 精品久久久久人成| 日本中文字幕精品—区二区| 一区二区免费| 在线观看亚洲视频| 久久精品免费av| 免费在线观看视频一区| 国产91社区| 97电影在线观看| 一区二区三区久久久| 久久久久久久久久久久久久国产| 国产精品美女久久久久| 亚洲欧洲黄色网| 青青草手机在线视频| 视频一区视频二区中文字幕| 99精彩视频在线观看免费| 美女欧美视频在线观看免费| 亚洲视频 欧洲视频| 国产精品视频一区二区三区四区五区| 欧美久久久网站| 日韩精品一区二区视频| 九九热精品免费视频| 男男成人高潮片免费网站| 精品国产一区二区三区四区精华 | 国产一区二区导航在线播放| 区一区二区三区中文字幕| 超级碰碰不卡在线视频| 欧美二区在线观看| 精品国产aaa| 性感少妇一区| 国内一区二区在线视频观看| a毛片在线播放| 欧美天堂一区二区三区| 色呦呦一区二区| 亚洲性感美女99在线| 成人欧美一区二区三区在线湿哒哒| 国产主播福利在线| 精品久久久久久亚洲精品| 日本性生活一级片| 亚洲天堂一区二区三区四区| 成人av在线网址| 中文日本在线观看| 欧洲精品中文字幕| 亚洲一区二区三区日韩| 国产日韩一区二区三区在线| 国产伦视频一区二区三区| 1区2区在线观看| 欧美一区二区三区小说| 亚洲人与黑人屁股眼交| 精品亚洲porn| 中文字幕一区二区三区5566| www.一区| 日韩在线观看成人| 亚洲一区中文字幕永久在线| 国产精品乱人伦一区二区| 欧美性猛交xxx乱久交| 国产亚洲电影| 国产欧美在线视频| 搞黄网站在线观看| 91精品国产综合久久婷婷香蕉| 少妇高潮在线观看| 国产老妇另类xxxxx| 精品一区二区成人免费视频| 91亚洲精品在看在线观看高清| 久久精品91久久香蕉加勒比| 国产亲伦免费视频播放| 一区二区三区四区视频精品免费| 国产成人精品一区二区在线小狼| 在线欧美不卡| 精品国产一区二区三| 人人鲁人人莫人人爱精品| 中日韩美女免费视频网站在线观看| 又污又黄的网站| 一色桃子久久精品亚洲| 91人妻一区二区三区| 激情成人亚洲| 免费av在线一区二区| 国产激情久久| 欧美人与性动交| 少妇人妻精品一区二区三区| 在线影院国内精品| 中文乱码字幕高清一区二区| 国产精品 欧美精品| 成人免费观看cn| 精品国产网站| 91原创国产| 欧美日韩在线观看首页| 夜夜嗨av色综合久久久综合网| 国产精品欧美激情在线| 亚洲18女电影在线观看| 日本视频在线免费| 国产成人免费视频网站高清观看视频 | 久久精品视频在线观看免费| 欧美日韩一区二区国产| 欧美精品在线一区| 精品国产鲁一鲁****| 日本精品久久久久影院| 激情成人四房播| 亚洲精品av在线| 一级黄色片免费看| 精品久久香蕉国产线看观看亚洲 | 国内av一区二区三区| 制服.丝袜.亚洲.中文.综合| 国产成人无码精品久在线观看| 国产欧美一区二区精品久导航| 视频区 图片区 小说区| 久久国产主播| xxxxxx在线观看| 欧洲福利电影| 国产在线精品一区| 成人97精品毛片免费看| 日韩av电影国产| 国产又色又爽又黄刺激在线视频| 中文在线不卡视频| 亚洲AV第二区国产精品| 欧美一区二区网站| 中文字幕永久在线| 欧美日韩国产综合视频在线观看中文| 男人的午夜天堂| 国产女同性恋一区二区| 麻豆精品国产传媒av| 国产一区二区伦理片| 老司机午夜av| 性久久久久久| 妞干网在线观看视频| 亚洲女同另类| 亚洲欧洲免费无码| 国产成人黄色| 九9re精品视频在线观看re6| 97se亚洲| 91久久精品www人人做人人爽| 国产乱子精品一区二区在线观看| 热99久久精品| 中文字幕在线视频久| 久久久伊人日本| 尤物在线网址| 欧美成人精品在线播放| 在线免费观看黄| 亚洲色图18p| 青青草手机在线| 日韩成人在线视频| 日韩中文字幕观看| 亚洲高清不卡av| 免费看av毛片| 精品国产乱码久久久久久久| 亚洲黄色a级片| 欧美成人aa大片| 性色av蜜臀av| 精品国产欧美一区二区| 农村少妇久久久久久久| 精品国产乱码久久久久久老虎| 亚洲精品久久久久久久久久久久久久 | 一区二区三区www污污污网站| 欧美午夜影院一区| 一级视频在线播放| 欧美电影一区二区三区| 97精品人妻一区二区三区| 在线不卡a资源高清| 一级做a爰片久久毛片16| 欧美精三区欧美精三区| 国产精品欧美激情在线| 日韩久久精品一区| 成人高潮片免费视频| 亚洲第一网站男人都懂| 色网站在线免费观看| 亚洲免费电影一区| shkd中文字幕久久在线观看| 日韩视频亚洲视频| 在线观看三级视频| 久久人人爽人人| 一区二区乱码| 国产精品嫩草影院久久久| 欧美91在线|欧美| 91精品黄色| 精品亚洲自拍| 五月天亚洲综合小说网| 91精品天堂福利在线观看 | 麻豆蜜桃在线| 日本国产一区二区三区| jizzyou欧美16| 亚洲最大的av网站| 美女av一区| 亚洲狠狠婷婷综合久久久| 欧美.日韩.国产.一区.二区| 人妻夜夜添夜夜无码av| 日韩精品免费视频人成| 日韩高清在线一区二区| 99久久99久久免费精品蜜臀| 在线观看亚洲大片短视频| 一区二区三区毛片| 99久久久无码国产精品免费蜜柚| 欧美高清性hdvideosex| 午夜视频在线免费播放| 日韩中文在线中文网在线观看| 成人短视频在线观看| 97久久伊人激情网| 欧美成人黄色| 精品亚洲欧美日韩| 小处雏高清一区二区三区| 91成人在线观看喷潮教学| 日本欧美久久久久免费播放网| 美女日批在线观看| 国产三级欧美三级| 久久午夜无码鲁丝片午夜精品| 欧美性xxxx极品hd满灌| 国产免费的av| 亚洲人成自拍网站| 国产经典三级在线| 国产欧美中文字幕| 日韩高清电影免费| 日本中文字幕一级片| 日韩制服丝袜先锋影音| 秘密基地免费观看完整版中文 | 亚洲第一av在线| 老司机午夜在线| 日韩av免费在线观看| 深夜激情久久| 亚洲人成网站在线观看播放| 国产欧美午夜| 爱情岛论坛亚洲自拍| 欧美国产精品一区二区三区| 免费在线观看黄网站| 91麻豆精品国产自产在线观看一区| 你懂的好爽在线观看| 欧美激情精品久久久久久变态| 日本午夜精品久久久久| 欧美日韩中文国产一区发布| 一区二区亚洲| 99999精品| 综合激情成人伊人| 国产成人无码精品久在线观看 | 国产精品永久免费在线| 亚洲人成网站77777在线观看| 99热这里只有精品免费| 精品一区二区久久| 中国特黄一级片| 在线观看一区二区视频| 青青国产在线| 日韩美女在线看| 九九视频免费观看视频精品| 鲁一鲁一鲁一鲁一色| 成人免费不卡视频| 九九视频在线免费观看| 日韩欧美成人一区二区| 中文字幕中文字幕在线十八区 | 手机在线看福利| 国产日韩欧美精品综合| 99久久久久久久久| 亚洲欧洲日产国码av系列天堂| 亚洲欧美小说色综合小说一区| 好吊色欧美一区二区三区视频| 国一区二区在线观看| www.久久com| 亚洲精品免费在线播放| 亚洲成人精品女人久久久| 欧美乱妇40p| 波多野结衣欧美| 国产深夜男女无套内射| 成人福利在线看| 草久视频在线观看| 亚洲欧美日韩天堂| 亚洲成人av观看| 在线码字幕一区| 久久精品免费观看| 麻豆精品一区二区三区视频| 日韩免费性生活视频播放| 中文字幕中文字幕在线中高清免费版| 99视频在线播放| 亚洲欧洲日本一区二区三区| 日韩网站在线播放| 欧美午夜电影在线| 9色在线观看| 亚洲999一在线观看www| 激情视频一区| 91视频免费观看网站| 欧美日韩国产电影| 麻豆福利在线观看| 欧美大香线蕉线伊人久久国产精品| 视频一区中文字幕国产| 欧美爱爱免费视频| 亚洲国产精品va在看黑人| 午夜欧美巨大性欧美巨大| 亚洲一区免费看| 粉嫩一区二区三区在线看| 亚洲熟妇无码乱子av电影| 色多多国产成人永久免费网站| 91精品久久久久久综合五月天 | 精品久久免费观看| 岛国一区二区三区| 天天爱天天做天天爽| 久热国产精品视频| 色吊丝一区二区| 中文字幕免费高清在线| 亚洲国产精品影院| 成人全视频高清免费观看| 91影院未满十八岁禁止入内| 天堂一区二区在线| 麻豆91精品91久久久| 国产一区二区三区中文| 欧美视频三区| 国产一级不卡毛片| 亚洲国产另类av|