成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 淺談MySQL 億級數(shù)據(jù)分頁的優(yōu)化

淺談MySQL 億級數(shù)據(jù)分頁的優(yōu)化

熱門標(biāo)簽:北京金倫外呼系統(tǒng) html地圖標(biāo)注并導(dǎo)航 武漢電銷機(jī)器人電話 400電話辦理服務(wù)價格最實惠 呂梁外呼系統(tǒng) 催天下外呼系統(tǒng) 大豐地圖標(biāo)注app 南太平洋地圖標(biāo)注 400電話變更申請

背景

下班后愉快的坐在在回家的地鐵上,心里想著周末的生活怎么安排。

突然電話響了起來,一看是我們的一個開發(fā)同學(xué),頓時緊張了起來,本周的版本已經(jīng)發(fā)布過了,這時候打電話一般來說是線上出問題了。

果然,溝通的情況是線上的一個查詢數(shù)據(jù)的接口被瘋狂的失去理智般的調(diào)用,這個操作直接導(dǎo)致線上的MySql集群被拖慢了。
好吧,這問題算是嚴(yán)重了,下了地鐵匆匆趕到家,開電腦,跟同事把Pinpoint上的慢查詢?nèi)罩緭瞥鰜?。看到一個很奇怪的查詢,如下

POST  domain/v1.0/module/method?order=conditionorderType=descoffset=1800000limit=500

domain、module 和 method 都是化名,代表接口的域、模塊和實例方法名,后面的offset和limit代表分頁操作的偏移量和每頁的數(shù)量,也就是說該同學(xué)是在 翻第(1800000/500+1=3601)頁。初步撈了一下日志,發(fā)現(xiàn) 有8000多次這樣調(diào)用。

這太神奇了,而且我們頁面上的分頁單頁數(shù)量也不是500,而是 25條每頁,這個絕對不是人為的在功能頁面上進(jìn)行一頁一頁的翻頁操作,而是數(shù)據(jù)被刷了(說明下,我們生產(chǎn)環(huán)境數(shù)據(jù)有1億+)。詳細(xì)對比日志發(fā)現(xiàn),很多分頁的時間是重疊的,對方應(yīng)該是多線程調(diào)用。

通過對鑒權(quán)的Token的分析,基本定位了請求是來自一個叫做ApiAutotest的客戶端程序在做這個操作,也定位了生成鑒權(quán)Token的賬號來自一個QA的同學(xué)。立馬打電話給同學(xué),進(jìn)行了溝通和處理。

分析

其實對于我們的MySQL查詢語句來說,整體效率還是可以的,該有的聯(lián)表查詢優(yōu)化都有,該簡略的查詢內(nèi)容也有,關(guān)鍵條件字段和排序字段該有的索引也都在,問題在于他一頁一頁的分頁去查詢,查到越后面的頁數(shù),掃描到的數(shù)據(jù)越多,也就越慢。
我們在查看前幾頁的時候,發(fā)現(xiàn)速度非???,比如 limit 200,25,瞬間就出來了。但是越往后,速度就越慢,特別是百萬條之后,卡到不行,那這個是什么原理呢。先看一下我們翻頁翻到后面時,查詢的sql是怎樣的:

select * from t_name where c_name1='xxx' order by c_name2 limit 2000000,25;

這種查詢的慢,其實是因為limit后面的偏移量太大導(dǎo)致的。比如像上面的 limit 2000000,25 ,這個等同于數(shù)據(jù)庫要掃描出 2000025條數(shù)據(jù),然后再丟棄前面的 20000000條數(shù)據(jù),返回剩下25條數(shù)據(jù)給用戶,這種取法明顯不合理。

大家翻看《高性能MySQL》第六章:查詢性能優(yōu)化,對這個問題有過說明:

分頁操作通常會使用limit加上偏移量的辦法實現(xiàn),同時再加上合適的order by子句。但這會出現(xiàn)一個常見問題:當(dāng)偏移量非常大的時候,它會導(dǎo)致MySQL掃描大量不需要的行然后再拋棄掉。

數(shù)據(jù)模擬

那好,了解了問題的原理,那就要試著解決它了。涉及數(shù)據(jù)敏感性,我們這邊模擬一下這種情況,構(gòu)造一些數(shù)據(jù)來做測試。

1、創(chuàng)建兩個表:員工表和部門表

/*部門表,存在則進(jìn)行刪除 */
drop table if EXISTS dep;
create table dep(
    id int unsigned primary key auto_increment,
    depno mediumint unsigned not null default 0,
    depname varchar(20) not null default "",
    memo varchar(200) not null default ""
);

/*員工表,存在則進(jìn)行刪除*/
drop table if EXISTS emp;
create table emp(
    id int unsigned primary key auto_increment,
    empno mediumint unsigned not null default 0,
    empname varchar(20) not null default "",
    job varchar(9) not null default "",
    mgr mediumint unsigned not null default 0,
    hiredate datetime not null,
    sal decimal(7,2) not null,
    comn decimal(7,2) not null,
    depno mediumint unsigned not null default 0
);

2、創(chuàng)建兩個函數(shù):生成隨機(jī)字符串和隨機(jī)編號

/* 產(chǎn)生隨機(jī)字符串的函數(shù)*/
DELIMITER $
drop FUNCTION if EXISTS rand_string;
CREATE FUNCTION rand_string(n INT) RETURNS VARCHAR(255)
BEGIN
    DECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghijklmlopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    DECLARE return_str VARCHAR(255) DEFAULT '';
    DECLARE i INT DEFAULT 0;
    WHILE i  n DO
    SET return_str = CONCAT(return_str,SUBSTRING(chars_str,FLOOR(1+RAND()*52),1));
    SET i = i+1;
    END WHILE;
    RETURN return_str;
END $
DELIMITER;


/*產(chǎn)生隨機(jī)部門編號的函數(shù)*/
DELIMITER $
drop FUNCTION if EXISTS rand_num;
CREATE FUNCTION rand_num() RETURNS INT(5)
BEGIN
    DECLARE i INT DEFAULT 0;
    SET i = FLOOR(100+RAND()*10);
    RETURN i;
END $
DELIMITER;

3、編寫存儲過程,模擬500W的員工數(shù)據(jù)

/*建立存儲過程:往emp表中插入數(shù)據(jù)*/
DELIMITER $
drop PROCEDURE if EXISTS insert_emp;
CREATE PROCEDURE insert_emp(IN START INT(10),IN max_num INT(10))
BEGIN
    DECLARE i INT DEFAULT 0;
    /*set autocommit =0 把a(bǔ)utocommit設(shè)置成0,把默認(rèn)提交關(guān)閉*/
    SET autocommit = 0;
    REPEAT
    SET i = i + 1;
    INSERT INTO emp(empno,empname,job,mgr,hiredate,sal,comn,depno) VALUES ((START+i),rand_string(6),'SALEMAN',0001,now(),2000,400,rand_num());
    UNTIL i = max_num
    END REPEAT;
    COMMIT;
END $
DELIMITER;
/*插入500W條數(shù)據(jù)*/
call insert_emp(0,5000000);

4、編寫存儲過程,模擬120的部門數(shù)據(jù)

/*建立存儲過程:往dep表中插入數(shù)據(jù)*/
DELIMITER $
drop PROCEDURE if EXISTS insert_dept;
CREATE PROCEDURE insert_dept(IN START INT(10),IN max_num INT(10))
BEGIN
    DECLARE i INT DEFAULT 0;
    SET autocommit = 0;
    REPEAT
    SET i = i+1;
    INSERT  INTO dep( depno,depname,memo) VALUES((START+i),rand_string(10),rand_string(8));
    UNTIL i = max_num
    END REPEAT;
    COMMIT;
END $
DELIMITER;
/*插入120條數(shù)據(jù)*/
call insert_dept(1,120);

5、建立關(guān)鍵字段的索引,這邊是跑完數(shù)據(jù)之后再建索引,會導(dǎo)致建索引耗時長,但是跑數(shù)據(jù)就會快一些。

/*建立關(guān)鍵字段的索引:排序、條件*/
CREATE INDEX idx_emp_id ON emp(id);
CREATE INDEX idx_emp_depno ON emp(depno);
CREATE INDEX idx_dep_depno ON dep(depno);

測試

測試數(shù)據(jù)

/*偏移量為100,取25*/
SELECT a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno order by a.id desc limit 100,25;
/*偏移量為4800000,取25*/
SELECT a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno order by a.id desc limit 4800000,25;

執(zhí)行結(jié)果

[SQL]
SELECT a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno order by a.id desc limit 100,25;
受影響的行: 0
時間: 0.001s
[SQL]
SELECT a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno order by a.id desc limit 4800000,25;
受影響的行: 0
時間: 12.275s

因為掃描的數(shù)據(jù)多,所以這個明顯不是一個量級上的耗時。

解決方案

1、使用索引覆蓋+子查詢優(yōu)化

因為我們有主鍵id,并且在上面建了索引,所以可以先在索引樹中找到開始位置的 id值,再根據(jù)找到的id值查詢行數(shù)據(jù)。

/*子查詢獲取偏移100條的位置的id,在這個位置上往后取25*/
SELECT a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno
where a.id >= (select id from emp order by id limit 100,1)
order by a.id limit 25;

/*子查詢獲取偏移4800000條的位置的id,在這個位置上往后取25*/
SELECT a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno
where a.id >= (select id from emp order by id limit 4800000,1)
order by a.id limit 25;

執(zhí)行結(jié)果

執(zhí)行效率相比之前有大幅的提升:
[SQL]
SELECT a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno
where a.id >= (select id from emp order by id limit 100,1)
order by a.id limit 25;
受影響的行: 0
時間: 0.106s

[SQL]
SELECT a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno
where a.id >= (select id from emp order by id limit 4800000,1)
order by a.id limit 25;
受影響的行: 0
時間: 1.541s

2、起始位置重定義

記住上次查找結(jié)果的主鍵位置,避免使用偏移量 offset

/*記住了上次的分頁的最后一條數(shù)據(jù)的id是100,這邊就直接跳過100,從101開始掃描表*/
SELECT a.id,a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno
where a.id > 100 order by a.id limit 25;

/*記住了上次的分頁的最后一條數(shù)據(jù)的id是4800000,這邊就直接跳過4800000,從4800001開始掃描表*/
SELECT a.id,a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno
where a.id > 4800000
order by a.id limit 25;

執(zhí)行結(jié)果

[SQL]
SELECT a.id,a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno
where a.id > 100 order by a.id limit 25;
受影響的行: 0
時間: 0.001s

[SQL]
SELECT a.id,a.empno,a.empname,a.job,a.sal,b.depno,b.depname
from emp a left join dep b on a.depno = b.depno
where a.id > 4800000
order by a.id limit 25;
受影響的行: 0
時間: 0.000s

這個效率是最好的,無論怎么分頁,耗時基本都是一致的,因為他執(zhí)行完條件之后,都只掃描了25條數(shù)據(jù)。

但是有個問題,只適合一頁一頁的分頁,這樣才能記住前一個分頁的最后Id。如果用戶跳著分頁就有問題了,比如剛剛刷完第25頁,馬上跳到35頁,數(shù)據(jù)就會不對。

這種的適合場景是類似百度搜索或者騰訊新聞那種滾輪往下拉,不斷拉取不斷加載的情況。這種延遲加載會保證數(shù)據(jù)不會跳躍著獲取。

3、降級策略

看了網(wǎng)上一個阿里的dba同學(xué)分享的方案:配置limit的偏移量和獲取數(shù)一個最大值,超過這個最大值,就返回空數(shù)據(jù)。
因為他覺得超過這個值你已經(jīng)不是在分頁了,而是在刷數(shù)據(jù)了,如果確認(rèn)要找數(shù)據(jù),應(yīng)該輸入合適條件來縮小范圍,而不是一頁一頁分頁。
這個跟我同事的想法大致一樣:request的時候 如果offset大于某個數(shù)值就先返回一個4xx的錯誤。

小結(jié)

當(dāng)晚我們應(yīng)用上述第三個方案,對offset做一下限流,超過某個值,就返回空值。第二天使用第一種和第二種配合使用的方案對程序和數(shù)據(jù)庫腳本進(jìn)一步做了優(yōu)化。

合理來說做任何功能都應(yīng)該考慮極端情況,設(shè)計容量都應(yīng)該涵蓋極端邊界測試。

另外,該有的限流、降級也應(yīng)該考慮進(jìn)去。比如工具多線程調(diào)用,在短時間頻率內(nèi)8000次調(diào)用,可以使用計數(shù)服務(wù)判斷并反饋用戶調(diào)用過于頻繁,直接給予斷掉。

到此這篇關(guān)于MySQL 億級數(shù)據(jù)分頁的優(yōu)化的文章就介紹到這了,更多相關(guān)MySQL 億級數(shù)據(jù)分頁 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • mysql數(shù)據(jù)庫如何實現(xiàn)億級數(shù)據(jù)快速清理
  • 如何使用分區(qū)處理MySQL的億級數(shù)據(jù)優(yōu)化

標(biāo)簽:麗水 徐州 迪慶 自貢 無錫 南充 龍巖 西寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談MySQL 億級數(shù)據(jù)分頁的優(yōu)化》,本文關(guān)鍵詞  淺談,MySQL,億級,數(shù)據(jù),分頁,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談MySQL 億級數(shù)據(jù)分頁的優(yōu)化》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺談MySQL 億級數(shù)據(jù)分頁的優(yōu)化的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    成人在色线视频在线观看免费大全| 国产日韩欧美高清| 91超碰在线播放| 在线日韩网站| 久久综合一区二区| 国产高清视频在线观看| 我要看一级黄色大片| 成人1区2区3区| 91精品国产综合久久久蜜臀粉嫩| 精品72久久久久中文字幕| 国产美女精品在线观看| 成人在线观看免费播放| 粉嫩精品一区二区三区在线观看| 亚洲欧洲日产国码无码久久99| 亚洲欧洲日韩在线| 不卡在线一区二区| 狠色狠色综合久久| 亚洲人成网站在线| 日本不卡免费在线视频| 亚洲一级免费毛片| 99久久er热在这里只有精品15| 3751色影院一区二区三区| 国产在线视频第一页| 亚洲精品怡红院| 日韩美女视频免费在线观看| 中文字幕av第一页| 午夜黄色一级片| 激情综合网天天干| 国精产品一区一区三区mba视频| 国产a视频免费观看| 国产精品成人av久久| 欧美三级第一页| 亚洲图片视频小说| 久久精品视频在线观看免费| 欧美日韩国产成人高清视频| 无码人妻少妇伦在线电影| 欧美色第一页| 亚久久调教视频| 亚洲一区美女| 海角国产乱辈乱精品视频| 日韩av网站在线免费观看| 黄色小视频免费网站| 亚洲精品在线观看免费| 欧美特黄一级| 激情亚洲影院在线观看| 免费高清视频日韩| 国产精品久久久久高潮| 波多结衣在线观看| 国产一级做a爰片久久| 国产精品入口芒果| 性欧美18一19内谢| 成人精品网站在线观看| 欧美色道久久88综合亚洲精品| 九九久久婷婷| 欧美性生交大片免网| 蜜臀av性久久久久蜜臀av麻豆| 久久精品久久久| 欧美成人午夜影院| 久久草在线视频| 99er热精品视频| 奇米在线7777在线精品| 人妻少妇精品无码专区二区| 亚洲蜜桃视频| 中文字幕久精品免| 日韩精品你懂的| 亚洲一区av| 欧美电影免费提供在线观看| 久久精品午夜一区二区福利| 成人18视频日本| 国产麻豆综合视频在线观看| 国产天堂在线观看| 国产精品自拍第一页| 青青草这里只有精品| 亚洲精品欧美在线| 激情校园亚洲图片| 91国自产精品中文字幕亚洲| 九九视频免费看| 精品久久久久久久久国产字幕| 一本大道东京热无码aⅴ| 亚洲美女性生活视频| 欧美丝袜丝交足nylons| 911精品国产| 91在线精品| 国产一二三在线视频| 久久久精品久久| 久久伊人一区二区| 无码国产精品高潮久久99| 狠狠狠狠狠狠操| 国产精品传媒在线观看| 亚洲国产美女搞黄色| 一级日韩一级欧美| 欧美久久香蕉| 久久久久久久久久久久久久久国产| 久久久久久久久久看片| 国产中文第一页| 农民人伦一区二区三区| 国产精品99久久免费观看| 日本在线啊啊| www一区二区www免费| 午夜影院在线播放| 国产亚洲字幕| 秋霞无码一区二区| 欧美人妻一区二区| h视频在线观看免费完整版| 久久久久久国产精品mv| 一区二区三区四区影院| 天天干天天骑| 3d欧美精品动漫xxxx无尽| 国产成人综合一区| 亚洲激情小视频| 午夜精彩国产免费不卡不顿大片| 国产精品久久久久久久久久免费| 97色在线视频观看| 久久裸体网站| 亚洲不卡的av| 精品视频在线一区| 日韩av电影免费观看| 91抖音在线观看| 欧美e片成人在线播放乱妇| 欧美 日韩 国产 成人 在线 91| 欧美综合一区二区三区| 日韩精品第一区| 欧洲一区二区在线| 国产福利一区二区精品秒拍| а√天堂中文在线资源bt在线| 欧美激情二区三区| 国产厕所精品在线观看| 久久久精品视频在线观看| 欧美日韩国产精品综合| 三级久久三级久久| 日本激情视频在线播放| 亚洲美女免费精品视频在线观看| 国产又黄又粗又猛又爽的| 日韩欧美一级在线播放| 狂野欧美性猛交xxxx乱大交| 99这里只有久久精品视频| 亚洲综合色丁香婷婷六月图片| 天堂va蜜桃一区二区三区漫画版| 夜夜躁日日躁狠狠久久av| 日日碰狠狠躁久久躁婷婷| 中文字幕av片| 黄色三级视频在线观看| 一区在线中文字幕| 大胆欧美人体视频| 人妻少妇精品一区二区三区| 国产一区二区视频在线看| 亚洲在线免费播放| 麻豆国产视频| 色爱综合网站| 国产蜜臀97一区二区三区| 欧美在线观看一区二区| 久久精品国产免费看久久精品| 久久久久久免费毛片精品| 网友自拍视频在线| 狠久久av成人天堂| 天堂网在线最新版www中文网| 日本精品人妻无码77777| 亚洲精品精选| 超免费在线视频| 欧美吞精做爰啪啪高潮| 137大胆人体在线观看| 欧美高清性xxxxhdvideosex| 91精品在线免费观看| 亚洲在线天堂| 国产日韩欧美在线观看视频| 欧美日韩一区二区三区视频播放| 国产中文在线观看| 亚洲免费视频一区二区| 久久久久一区二区三区| 快播电影网址老女人久久| 久久久综合九色合综国产精品| 欧美日韩在线播放一区二区| 久久一区二区中文字幕| 天堂а√在线中文在线鲁大师| 国产曰批免费观看久久久| 欧美黄色一级片视频| 国产精品99久久久久久似苏梦涵| 精品国产一区二区三区四区在线观看| 欧美大喷水吹潮合集在线观看| 国产精品久久久久久久牛牛| 成人动漫精品一区二区| xfplay每日更新av资源在线| 一区二区三区中文字幕| 精品第一国产综合精品aⅴ| 国产欧美一区二区精品性色| 欧美日韩在线亚洲一区蜜芽| 四虎永久免费网站| 日本免费福利视频| 欧美片网站yy| 91精品国产综合久久精品麻豆| 韩国女主播成人在线| 日韩av黄色片| 国产精品中文字幕在线| 亚洲精品18| av福利导福航大全在线| 欧美久久一区| 亚洲啪啪av| 欧美性生活一区| 在线免费观看黄色| 91成人免费电影| 2019中文字幕在线视频| 国内揄拍国内精品| 亚洲国产精品v| 国产亚洲在线观看| 中文天堂在线视频| 波多野结衣mp4| 欲求不满的岳中文字幕| 性欧美ⅴideo另类hd| 高清视频一区二区三区| 99re6在线精品视频免费播放| 国产精品无码电影在线观看| 国产精品久久久久久亚洲伦| 最近2019年好看中文字幕视频| 日韩视频在线观看| 涩涩视频网站在线观看| 国产精品无码av在线播放| 四虎亚洲精品| 人人做人人爽| 成人免费在线电影网| 日韩一级在线播放| 成年人视频在线免费| 色综合老司机第九色激情| 欧美成人国产精品高潮| 高潮毛片无遮挡| 欧美日韩在线另类| 91大神在线观看线路一区| 欧美一级电影免费在线观看| 日韩中文字幕在线免费观看| 亚洲aaaaaaa| 水蜜桃在线视频| 精品亚洲第一| 国产成人tv| 欧美精品日日操| 米奇精品一区二区三区| 国产精品午夜久久久久久| 国产欧美一区| 亚洲人成电影网站| 动漫精品一区二区三区| 成人激情综合网| 中文字幕桃花岛| 亚洲最大视频网| 99久精品视频在线观看视频| 亚洲视频在线观看日本a| 国产精品一二三四| eeuss鲁一区二区三区| 亚洲国产日韩欧美一区二区三区| 欧美日韩国产欧美日美国产精品| 操91在线视频| 久久久影视传媒| yw在线观看| 欧美熟妇精品一区二区蜜桃视频| 青娱乐精品视频在线| 亚洲色欲久久久综合网东京热| 日韩精品中文字幕视频在线| 国产精品1区2区3区4区| 综合久久中文字幕| 韩日精品视频| 国产精品三级视频| 久久99精品久久久久久园产越南| 午夜dv内射一区二区| 在线看免费毛片| 又色又爽又黄视频| 国产一区二区日韩精品欧美精品| 欧美成人在线直播| 国产成人黄色av| 91精品国产高清一区二区三蜜臀| 久久久久亚洲AV成人无在| 韩国成人福利片在线播放| 九九九九免费视频| 在线观看成人av| 色乱码一区二区三区网站| 亚洲片在线观看| 原千岁中文字幕| 综合视频在线观看| 黄色片免费大全| av影院午夜一区| 在线观看三级视频欧美| 北岛玲一区二区| 91精品国产高清| 在线观看中文字幕亚洲| caopon在线免费视频| 黄色一级大片在线免费看国产| 清纯唯美亚洲经典中文字幕| 精品久久久久久亚洲国产300| 免费看日b视频| 久久久久久亚洲精品不卡| www国产亚洲精品久久麻豆| 亚洲福利视频网| 精品丝袜久久| 中文字幕久久av| 精品人妻一区二区三区视频| 日本中文字幕网| 99国产精品国产精品久久| 免费观看亚洲视频大全| 特级西西444www大精品视频免费看| 亚洲精品动漫100p| 欧美黄网在线观看| 欧美在线观看日本一区| 国产又大又黄又爽| 俄罗斯精品一区二区| 婷婷开心久久网| www.av在线| 91网址在线观看| 操你啦视频分享| 99久久99久久精品免费| www.4hu95.com四虎| 国产精品 日韩| 久久99国产精品自在自在app| 亚洲人成久久| 蜜桃精品在线观看| 成人在线tv视频| 浮生影视网在线观看免费| 黄色网页免费在线观看| 黄色网页在线| 精品福利av导航| 日韩中文av在线| 国产suv精品一区二区| 亚洲欧洲国产日韩| 精品国产鲁一鲁一区二区张丽| 国产成人无码一区二区在线观看| 精品在线视频免费观看| 欧美污在线观看| 尤物网站在线看| eeuss草民免费| 91午夜在线观看| 日韩国产欧美精品一区二区三区| 日韩理论电影大全| 色先锋av资源中文字幕|