国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

和產(chǎn)品爭(zhēng)論MySQL底層如何實(shí)現(xiàn)order by的,慘敗!

共 8844字,需瀏覽 18分鐘

 ·

2021-04-13 23:23


  點(diǎn)擊上方“JavaEdge”,關(guān)注公眾號(hào)

設(shè)為“星標(biāo)”,好文章不錯(cuò)過!


這天風(fēng)和日麗,小a正在工位上苦練摸魚技術(shù),

 

突然接到產(chǎn)品的??,又來需求?      

只聽到產(chǎn)品又開始口若黃河:我需要要查詢到city是“上?!钡乃腥说膎ame,并且還要按name排序返回前1000人的name、age。

小a急忙正襟危坐,從一堆庫(kù)表中翻出需要的表,抽出其建表語(yǔ)句: 

看看表結(jié)構(gòu),再看看產(chǎn)品的需求 

感覺很容易,隨手SQL這么一寫:  

誒,這語(yǔ)句看著簡(jiǎn)單而樸實(shí),一個(gè)需求好像就完美解決了。但為了顯示自己強(qiáng)大的性能優(yōu)化水平,考慮到要避免全表掃描,于是又給 city 字段加索引。建完索引,自然還需要使用explain驗(yàn)證一下:

explain select city, name, age from citizen where city = '上海' order by name limit 1000;+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-----------------------------+| id | select_type | table   | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra                       |+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-----------------------------+|  1 | SIMPLE      | citizen | NULL       | ALL  | city          | NULL | NULL    | NULL |   32 |   100.00 | Using where; Using filesort |+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-----------------------------+1 row in set, 1 warning (0.00 sec)


Extra字段的 Using filesort 表示需要排序,MySQL會(huì)給每個(gè)線程分配一塊內(nèi)存用于排序,稱為sort_buffer。

這時(shí)魔鬼產(chǎn)品突然湊過來問:給我看看你代碼咋寫的,你這么寫你真的懂MySQL 底層怎么執(zhí)行order by的嗎?小a突然驚醒,還真沒想過這些。

產(chǎn)品經(jīng)理冷笑道:你知道你的 city 索引長(zhǎng)啥樣嗎?我自己建立的,我咋可能不知道!隨手直接畫出

  • city字段的索引示意圖 

產(chǎn)品,你可好好看了,這里 id_x ~ id_(x+n) 的數(shù)據(jù)都滿足city='上海’。

產(chǎn)品:那你倒是說說這條SQL的執(zhí)行流程?不知道了吧,我來告訴你吧:

  1. 初始化sort_buffer,確定放入name、city、age三字段

  2. 從索引city找到第一個(gè)滿足city='上?!?/span>條件的主鍵id, 即id_x

  3. 到id主鍵索引取出整行,取name、city、age三個(gè)字段的值,存入sort_buffer

  4. 從索引city取下一個(gè)記錄的主鍵id

  5. 重復(fù)3、4,直到city的值不滿足查詢條件,即主鍵id_y

  6. 對(duì)sort_buffer中數(shù)據(jù)按name做快排

  7. 取排序后結(jié)果的前1000行返回給客戶端

這就是全字段排序,執(zhí)行流程如下: 


按name排序 這一操作可能在內(nèi)存中完成,也可能需要外部排序,而這就取決于

  • 排序所需內(nèi)存

  • 參數(shù)sort_buffer_size MySQL為排序開辟的內(nèi)存(sort_buffer)的大小。若要排序的數(shù)據(jù)量小于sort_buffer_size,排序就在內(nèi)存中完成。若排序數(shù)據(jù)量太大,內(nèi)存放不下,則得利用磁盤臨時(shí)文件輔助排序。

產(chǎn)品又開始炫技了,又問到:你知道 一條排序語(yǔ)句何時(shí)才會(huì)使用臨時(shí)文件 嗎?這?這還真又觸及到我的知識(shí)盲區(qū)了! 

mysql> SET optimizer_trace='enabled=on';Query OK, 0 rows affected (0.00 sec)
/* 使用 @a 保存 Innodb_rows_read 的初始值 */mysql> select VARIABLE_VALUE into @a from performance_schema.session_status where variable_name = 'Innodb_rows_read';Query OK, 1 row affected (0.00 sec)
mysql> select city, name,age from citizen where city='上海' order by name limit 1000;+--------+------+-----+| city | name | age |+--------+------+-----+| 上海 | java | 22 |...
/* 查看 OPTIMIZER_TRACE 輸出 */SELECT * FROM `information_schema`.`OPTIMIZER_TRACE`\G
/* 使用 @b 保存 Innodb_rows_read 的當(dāng)前值 */mysql> select VARIABLE_VALUE into @b from performance_schema.session_status where variable_name = 'Innodb_rows_read';Query OK, 1 row affected (0.00 sec)
/* 計(jì)算 Innodb_rows_read 的差值 */mysql> select @b-@a;

查看 OPTIMIZER_TRACE 結(jié)果中的 number_of_tmp_files 字段確認(rèn)是否使用臨時(shí)文件。

"filesort_execution": [],"filesort_summary": {  "rows": 4000  "examined_rows": 4000,  "number_of_tmp_files": 12,  "sort_buffer_size": 32664 ,  "sort_mode": "<sort_key, packed_additional_fields>"


  • number_of_tmp_files 排序過程中使用的臨時(shí)文件數(shù)。為啥需要12個(gè)文件??jī)?nèi)存放不下時(shí),就需要使用外部排序,外部排序一般使用歸并排序。MySQL將需要排序的數(shù)據(jù)分成12份,每一份單獨(dú)排序后存在這些臨時(shí)文件中。然后把這12個(gè)有序文件再合并成一個(gè)有序的大文件。

若 sort_buffer_size 超過需排序的數(shù)據(jù)量大小,則 number_of_tmp_files 就是0,即排序可直接在內(nèi)存完成。

否則就需要放在臨時(shí)文件中排序。sort_buffer_size越小,需要分成的份數(shù)越多,number_of_tmp_files的值就越大。

  • examined_rows 參與排序的行數(shù)。測(cè)試表有4000條滿足city='上?!挠涗?,所以該參數(shù)為4000。

  • sort_mode 的packed_additional_fields 排序過程對(duì)字符串做了“緊湊”處理。即使name字段的定義是varchar(16),在排序過程中還是要按實(shí)際長(zhǎng)度分配空間。

select @b-@a 的結(jié)果4000,即整個(gè)執(zhí)行過程只掃描了4000行。

注意,為了避免對(duì)結(jié)論造成干擾,我把internal_tmp_disk_storage_engine設(shè)置成MyISAM。否則,select @b-@a的結(jié)果會(huì)顯示為4001。因?yàn)椴樵?strong>OPTIMIZER_TRACE表時(shí),需要用到臨時(shí)表,而internal_tmp_disk_storage_engine的默認(rèn)值是InnoDB。若使用InnoDB,把數(shù)據(jù)從臨時(shí)表取出時(shí),會(huì)讓Innodb_rows_read的值加1。

我驚奇地望著產(chǎn)品,像瞻仰偉人一般,不如你繼承我的代碼吧,讓我來做產(chǎn)品?  

rowid排序 上面的算法,只是對(duì)原表數(shù)據(jù)讀了一遍,剩下的操作都是在sort_buffer和臨時(shí)文件中執(zhí)行。但這就存在問題:若查詢要返回的字段很多,那么sort_buffer要放的字段數(shù)就會(huì)很多,內(nèi)存里能夠同時(shí)放下的行數(shù)就會(huì)變少,就要分成很多臨時(shí)文件,排序性能就會(huì)很差。 所以若單行很大,該方法的效率可不夠行哦。

  

產(chǎn)品大大又開始發(fā)難,那么你知道若MySQL認(rèn)為排序的單行長(zhǎng)度太大,它又會(huì)干啥嗎

現(xiàn)在修改個(gè)參數(shù),讓MySQL采用另外一種算法。

SET max_length_for_sort_data = 16;


  • max_length_for_sort_data MySQL用于控制用于排序的行數(shù)據(jù)的長(zhǎng)度。若單行的長(zhǎng)度超過該值,MySQL就認(rèn)為單行太大,要換個(gè)算法。

city、name、age 三字段的定義總長(zhǎng)度36,那你看我把max_length_for_sort_data設(shè)為16會(huì)咋樣。

新的算法放入sort_buffer的字段,只有要排序的列(即name字段)和主鍵id。但這時(shí),排序的結(jié)果就因少了cityage字段值,不能直接返回了,整個(gè)執(zhí)行流程變成如下:

  1. 初始化sort_buffer,確定放入兩個(gè)字段,即nameid

  2. city找到第一個(gè)滿足city='上?!瘲l件的主鍵id,也就是圖中的id_x

  3. 到id取出整行,取name、id這兩個(gè)字段,存入sort_buffer

  4. city取下一個(gè)記錄的主鍵id

  5. 重復(fù)步驟3、4直到不滿足city='上海’,也就是圖中的id_y

  6. 對(duì)sort_buffer中的數(shù)據(jù)按照字段name進(jìn)行排序

  7. 遍歷排序結(jié)果,取前1000行,并按照id的值回到原表中取出city、name和age三個(gè)字段返回給客戶端。

 

聽到這里,感覺明白了一些:產(chǎn)品你別急,你看我畫下這個(gè)rowid排序執(zhí)行過程的示意圖,看看對(duì)不對(duì)? 


 你看這個(gè)和你之前畫的全字段排序示意圖,其實(shí)就是多訪問了一次表citizen的主鍵索引,即step7。

注意了,最后的resultSet是一個(gè)邏輯概念,實(shí)際上MySQL服務(wù)端從排序后的sort_buffer中依次取出id,然后到原表查到city、name和age這三字段的結(jié)果,不需要在服務(wù)端再耗費(fèi)內(nèi)存存儲(chǔ)結(jié)果,而是直接返回給客戶端。

這時(shí)查看rowid排序的OPTIMIZER_TRACE結(jié)果,看看和之前的不同之處在哪里

"filesort_execution": [],"filesort_summary": {  "rows": 4000  "examined_rows": 4000,  "number_of_tmp_files": 10,  "sort_buffer_size": 32728 ,  "sort_mode": "<sort_key, rowid>"


  • select @b-@a結(jié)果變成5000 因?yàn)檫@時(shí)除了排序過程,在排序完成后,還要根據(jù)id去原表取值。由于語(yǔ)句是limit 1000,因此會(huì)多讀1000行。

  • sort_mode 變成了 <sort_key, rowid> 表示參與排序的只有name和id字段

  • number_of_tmp_files 變成10 因?yàn)檫@時(shí)參與排序的行數(shù)雖然還是4000,但每行都變小了,因此需排序的總數(shù)據(jù)量就小了,需要的臨時(shí)文件也就少咯。

產(chǎn)品最后總結(jié)到:

  • 若MySQL認(rèn)為排序內(nèi)存太小,會(huì)影響排序效率,就會(huì)采用rowid排序 這樣排序過程中一次可以排序更多行,但最后需要回表取數(shù)據(jù)

  • 若MySQL認(rèn)為內(nèi)存夠大,會(huì)優(yōu)先選擇全字段排序 把需要字段都放到sort_buffer,這樣排序后就直接從內(nèi)存返回查詢結(jié)果,不用回表。

所以MySQL就是:若內(nèi)存夠,就多利用內(nèi)存,盡量減少磁盤訪問。

對(duì)InnoDB,rowid排序會(huì)要求回表,多造成了磁盤讀,因此不會(huì)被優(yōu)先選擇。所以MySQL排序是個(gè)高成本操作。

  • 是不是所有order by都需排序呢?若不排序就能得到正確的結(jié)果,那對(duì)系統(tǒng)的消耗會(huì)小很多,語(yǔ)句的執(zhí)行時(shí)間也會(huì)變得更短。

并非所有order by都需排序操作。MySQL之所以需要生成臨時(shí)表,并且在臨時(shí)表上做排序,是因?yàn)樵瓉淼臄?shù)據(jù)都是無(wú)序的。

  • 如果能保證從city索引上取出來的行,天生就是按name遞增排序,是不是就可以不用再排序了?是的。

所以可以創(chuàng)建一個(gè)city,name聯(lián)合索引:

alter table t add index citizen(city, name);


  • 該索引的示意圖  依然可以用樹搜索定位到第一個(gè)滿足city='上?!挠涗?,并且能確保接下來按順序取“下一條記錄”的遍歷過程,只要city是上海,name值一定有序。這樣整個(gè)查詢過程的流程就變成:

  1. 從索引(city,name)找到第一個(gè)滿足city='上?!瘲l件的主鍵id

  2. 到主鍵id索引取出整行,取name、city、age三個(gè)字段的值,作為結(jié)果集的一部分直接返回

  3. 從索引(city,name)取下一個(gè)記錄主鍵id

  4. 重復(fù)步驟2、3,直到查到第1000條記錄,或者是不滿足city='上海’條件時(shí)循環(huán)結(jié)束

  • 引入(city,name)聯(lián)合索引后,查詢語(yǔ)句的執(zhí)行計(jì)劃 

可見,該查詢過程無(wú)需臨時(shí)表,也無(wú)需排序。

  • 使用 explain 查看(city,name)聯(lián)合索引,查詢語(yǔ)句的執(zhí)行計(jì)劃

 explain select city, name, age from citizen where city = '上海' order by name limit 1000;+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-----------------------------+| id | select_type | table   | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra                       |+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-----------------------------+|  1 | SIMPLE      | citizen | NULL       | ref  | city,name       | name | 51    | const |   4000 |   100.00 | Using index condition |+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-----------------------------+1 row in set, 1 warning (0.00 sec)

可見Extra字段中沒有Using filesort了,也就是不需要排序了。而且由于(city,name)這個(gè)聯(lián)合索引本身有序,所以該查詢也不用把4000行全都讀一遍,只要找到滿足條件的前1000條記錄即可退出。在這個(gè)例子里,只需掃描1000次。

該語(yǔ)句的執(zhí)行流程有沒有可能進(jìn)一步簡(jiǎn)化呢?

  • 覆蓋索引 索引上的信息足夠滿足查詢請(qǐng)求,不需要再回到主鍵索引上去取數(shù)據(jù)。

按覆蓋索引,可以再優(yōu)化一下這個(gè)查詢語(yǔ)句的執(zhí)行流程。針對(duì)這個(gè)查詢,我們可以創(chuàng)建一個(gè)city、name和age的聯(lián)合索引,對(duì)應(yīng)的SQL語(yǔ)句就是:

alter table t add index city_user_age(city, name, age);


這時(shí),對(duì)于city字段的值相同的行來說,還是按照name字段的值遞增排序的,此時(shí)的查詢語(yǔ)句也就不再需要排序了。這樣整個(gè)查詢語(yǔ)句的執(zhí)行流程就變成了:

  1. 從索引(city,name,age)找到第一個(gè)滿足city='上?!瘲l件的記錄,取出其中的city、name和age這三個(gè)字段的值,作為結(jié)果集的一部分直接返回

  2. 從索引(city,name,age)取下一個(gè)記錄,同樣取出這三個(gè)字段的值,作為結(jié)果集的一部分直接返回

  3. 重復(fù)2,直到查到第1000條記錄或不滿足city='上海'

引入 (city,name,age) 聯(lián)合索引,查詢語(yǔ)句的執(zhí)行流程 

  • explain查看(city,name,age)聯(lián)合索引查詢語(yǔ)句的執(zhí)行計(jì)劃

explain select city, name, age from citizen where city = '上海' order by name limit 1000;+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-----------------------------+| id | select_type | table   | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra                       |+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-----------------------------+|  1 | SIMPLE      | citizen | NULL       | ref  | city,name,age        | age | 51    | const |   4000 |   100.00 | Using where; Using index |+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-----------------------------+1 row in set, 1 warning (0.00 sec)

Extra字段里面多了“Using index”,說明使用了覆蓋索引,性能上會(huì)快很多。但這并非說要為了每個(gè)查詢能用上覆蓋索引,就要把語(yǔ)句中涉及的字段都建上聯(lián)合索引,畢竟索引也很占空間,而且修改新增都會(huì)導(dǎo)致索引改變,還是具體業(yè)務(wù)場(chǎng)景具體分析。

參考

  • “order by”是怎么工作的?

  • https://blog.csdn.net/Linuxhus/article/details/112672434?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

  • 天天寫order by,你知道Mysql底層執(zhí)行原理嗎?


往期推薦


由于不知線程池的bug,某Java程序員叕被祭天

程序員因重復(fù)記錄日志撐爆ELK被辭退!

擁抱Kubernetes,再見了Spring Cloud

JDK為何自己先破壞雙親委派模型?




目前交流群已有 800+人,旨在促進(jìn)技術(shù)交流,可關(guān)注公眾號(hào)添加筆者微信邀請(qǐng)進(jìn)群



喜歡文章,點(diǎn)個(gè)“在看、點(diǎn)贊、分享”素質(zhì)三連支持一下~

瀏覽 34
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 婷婷五月国产| 日韩熟妇无码中文字幕| 婷婷高清无码| 亚洲精品无码中文| 不卡一二三区| 国产黄色在线视频| 亚洲精品人伦一区二区| 黄色工厂这里只有精品| 人人摸人人摸人人| 亚洲成人网站视频| 国产自偷自拍| 刘玥91精一区二区三区| 91精品人妻少妇无码影院| 国产一区久久| 欧美亚洲小说| AV在线不卡中文| 免费视频a| 久肏| 日韩美女免费视频| 午夜老司机福利一二三区| 日韩操逼一区| 免费黄色电影在线观看| 久操中文| 午夜成人视频在线观看| 肏屄视频在线播放| 五月丁香激情在线| 人人操天天| 亚洲品久久久蜜| 91视频久久| 成人免费在线| 美女免费网站| 新版欧美内射大全| 中文字幕成人影片| 天天做天天爱夜夜爽| 成人免费黄| 西西4444WWW大胆无视频| 无码一区三区| aaa久久| 久久综合久| 清清草在线视频| 激情无码av| 成人AV在线电影| 成人h在线| 影音先锋日韩资源| 亚色视频| 玖玖爱在线精品视频| 大肉大捧视频免费观看| 特黄一级A片| 西西444大胆无码视频| 91三级片| 一区免费视频| 91人妻人人操人人爽| 男人天堂视频网| 人人色人人看| 国产黄色视频在线看| 丰满熟妇人妻无码视频| 亚洲AV无码黑人专区| 操逼视频国产91| 欧美熟妇精品一二三区| 手机AV在线| 野花AV| 免费一级做a爱片毛片A片小说 | 久久久噜噜噜久久中文字幕色伊伊| 国产亚洲日韩在线| 婷婷五月天基地| 亚洲天堂视频在线播放| 黄色免费视频| 超碰人人人人人人人人| 亚洲不卡在线| 国产二区视频| 国产三级日本三级国产三级| 久久偷拍视频| 在线观看中文字幕| 91精品人妻一区二区三区蜜桃| 熟女人妻人妻HD| 大香蕉伊人在线观看视频| 这里只有精品在线观看| 一级a免一级a做免费线看内裤的注意事项| 国产乱子伦无码视频免费| 肏屄视频在线看| 午夜亚洲视频| 国产又粗又大又黄视频| 天天干天天日蜜臀色欲av| 免费做爱视频网站| 四虎2025在线51| 欧美一级片| 成人精品无码| av天天干| 殴美老妇BBBBBBBBB| 青青草无码成人天堂免费| 成片免费观看视频大全| 大鸡巴视频在线观看| 久久久久久高清毛片一级| 爱爱视频h| 97精品在线观看| 丁香五月天社区| 亚洲二区在线| 亚洲视频在线免费看| 欧美视频基地| 国产l精品久久久久久久久久| 91豆花成人社区| 国产理论在线| 天天舔天天操| 年轻女教师高潮2| 无码人妻AV一区| 91乱了伦国产乱子伦| 亚洲无码一区二区三| 天天日天天干天天爽| 91精品国产乱码| 国产一级AA大片毛片| 西西人体大胆ww4444图片 | 欧美一级A片在免费看| 日韩1234区| 日韩黄色片在线观看| 欧美精品一级| 激情国产精品| 一本一道久久综合| 国产精品色综合| 成年人黄色在线观看| 国产一区二区不卡亚洲涩情| 久久群交| 99re在线观看观看这里只有精品| 亚洲中文字幕在线视频播放 | 亚洲av动漫| 无码99| 欧美又粗又大| 日本激情视频| www男人的天堂| 先锋影音AV在线| 亚洲v天堂| 欧美性爱无码| 俺来也俺也啪www色| 亚洲AV成人无码久久精品麻豆| 黄色视频网站在线| 中文字幕av久久波多野结| 丁香五月天堂网| 亚洲免费清高| 三级AV在线免费观看| 日韩乱轮小说与视频| 色五月婷婷丁香五月| 熟妇高潮一区二区高潮| 免费看黄色大全| 亚洲无码中文字幕视频| TheAV精尽人亡av| 久久久77| av无码一区二区| 国产精品不卡一区二区三区| 精品亚洲无码视频| 一级全黄120分钟免费| 91天堂网| 99无码视频| AV在线免费播放| 欧美AⅤ| 一区二区三区四区五区六区高清无吗视频 | 午夜黄色影视| 西西444WWW无码视频软件功能介绍 | 欧美热热| 性生活黄色视频| 麻豆亚洲AV成人无码久久精品| 2025AV天堂| 成人影音先锋| 无码人妻一区二区三区| 蜜柚av| 亚洲AV无码第一区二区三区蜜桃 | 加勒比DVD手机在线播放观看视频 日韩精品一区二区三区四区蜜桃视频 | 亚洲AV秘无码一区在线| 国产成人三级片在线观看| 久草高清视频| 麻豆熟女| 激情人妻AV| 国产一区二区三区视频在线观看| 国产h视频在线观看| 黑人无码视频| 2025av中文字幕| 中文无码熟妇一区二区| 蜜臀av网站| 99er在线观看| 三级片无码麻豆视频| 国产—a毛—a毛A免费看图| 黄色福利在线观看| 99香蕉视频| 蜜挑视频一区二区三区| 中文字幕自拍偷拍| 182AV| 超碰日逼| 天天操夜夜操人人操| 丰满少妇在线观看网站| 77777免费观看电视剧推荐爱的教育| A黄色绿像| 国产一级性爱视频| xxxxx无码| 综合亚洲视频| 精品欧美乱码久久久久久| 亚洲小说区图片区| 亚洲人人操| 免费一级片视频| 日日夜夜草| 日本无码精品| 欧美性爱一级| 嫩BBB搡BBB槡BBB小号| 精品福利在线观看| 国产精品探花熟女AV| 久久人视频| 中文字幕免费MV第一季歌词| 欧美性爱福利视频| 青青草在线视频免费观看| 久久偷拍视频| 不卡无码av| 欧美成人手机在线看片| 97爱爱爱| av高清| 人妻无码| 婷婷精品秘进入| 欧美性爱成人| 国产三级三级三级| 91资源在线| 成人在线网站| 北条麻妃无码视频在线| AV在线导航| 亚洲免费黄色视频| 欧美日韩免费在线观看| 777免费观看成人电影视频| 撸撸综合网| 中文无码在线观看中文字幕av中文| 亚洲日韩欧美一区二区| 亚洲一区中文字幕| 青娱乐黄片| 国产有码在线观看| 91人妻人人澡人人爽人妻| 日本成人精品| 日韩性爱网站| 精品少妇无码视频| 色色五月丁香婷婷| 国产精品无码成人AV在线播放 | 性九九九九九九| 丁香六月综合| 一级黄色A片| 人人妻人人做| 台湾无码片| 丁香五月婷婷网| 久久三级| 国产精品偷拍视频| 人妻天天爽夜夜爽| 久操视频在线免费观看| 成人视频18| 日韩AV资源网| 柠檬AV导航| 91成人一区二区三区| 青草娱乐| 嫩BBB搡BBB搡BBB四川| 黑人巨粗进入疼哭A片| 人人妻人人澡人人爽人人DVD| 色香蕉视频在线观看| 91黄网站在线观看| 国产亚洲久一区二区三区| 天天爽| 亚洲成人一区二区在线观看| www.91在线看| 亚洲无码视频一区二区| 日本中文在线| 亚洲中文字幕日本| 91精品国产一区二区| 日批网站在线观看| 大吊无码| 黄色一级大片在线免费看产| 国内精品久久久久| 国产av一区二区三区| 日韩极品在线观看| 51国产黑料吃瓜在线入口| 国产一区无码| 玖玖热在线视频| 强伦轩一区二区三区在线观看| 免费操逼网| 操噜噜噜噜噜插| 2026AV天堂网| 拍真实国产伦偷精品| 影音先锋亚洲无码| 337P大胆粉嫩银噜噜噜| 高清无码视频观看| 丁香激情五月天| 操日韩美女| 亚洲一区二区三区在线视频| 四虎精品影院| 成人黄片在线免费观看| 国产av一区二区三区四区| 九九国产精品| 婷婷五月色综合| 婷婷五月天在线电影| 一级片黄色电影| 少妇搡BBBB搡BBB搡HD(| 嫩草亚洲小泬久久夂| 韩日成人| 蜜臀久久99精品久久久兰草影视| 国产成人片| 久久久久久久艹| 国产欧美日韩| 亚洲黄色无码视频| 亚洲伊人综合| 俺来也俺去也| 久久久123| 超碰97久久| 欧美日韩不卡在线| 黄色激情五月| 人妻无码精品| 国产精品久免费的黄网站| 毛片小说| 综合成人在线| 夜夜撸天天干| 五月天福利导航| 天天干天天日天天干天天日| 黄色美女视频网站| 欧美特黄AAA| 男人的天堂色婷婷| 久久大香蕉视频| 99久久国产热无码精品免费 | 黄色片在线看| 蜜臀精品色无码蜜臀AV| 大鸡巴视频在线观看| 国产精品无码一区二区三| 香蕉AV777XXX色综合一区| 蜜臀av在线| 在线播放亚洲| 中文字幕+乱码+中文乱码www| 欧美一级操逼视频| 爱搞视频在线播放| 蜜桃视频91| 豆花在线视频| 亚洲第一中文字幕网| 亚洲成人精品一区二区| 久热综合| 日韩精品在线视频观看| 国产ts在线| 亚洲一区二区视频在线观看 | 亚洲天堂一| 亚洲青草| 青青操青青干| 亚洲小说区图片区| 国产91页| 777Av| 5252a我爱haose01我愿| 少妇搡BBBB搡BBB搡造水多| 国产激情免费| 免费A片在线播放| 亚洲午夜福利| 国产家庭乱伦| 2018天天操| 夜夜撸日日| 欧美操| 国产69久久精品成人看| 日本超碰| 蜜桃传媒一区二区亚洲A| 免费在线观看黄色视频| 国产aaaaaaaaaa| 欧洲激情网| av资源观看| 一区二区三区四区五区在线| 国产精品V日韩精品V在线观看| 香蕉成人电影| 亚洲AV无码乱码国产| 成人自拍网| 在线观看操逼| 韩日在线| www.xxx国产| 男女av在线| 亚洲制服中文字幕| 人妻少妇精品视频| 91搞| 国产日韩欧美在线| 亚洲成人AV电影| 一级黄色大毛片| 成人在线免费电影| 日韩视频一二三| 成人精品视频网站| 日韩一级性爱| 亚洲V国产v欧美v久久久久久| 亚洲精品国产成人| 久久国产黄色视频| 天堂综合网久久| 黄色一级a片| 国产福利在线导航| 精品A片| 好男人一区二区三区在线观看| 狠狠操在线| 久久久国产一区| 午夜福利成人| 人人做人人操| 午夜精品久久久久久不卡8050| 色色热热| 91夜夜夜| 国产免费黄色片| 国产女人18水真多18精品| 亚洲免费专区| 西西WWW888大胆无码| 97国产视频| 一级无码在线观看| 天天撸天天干天天日| 无码人妻精品一区二区三区蜜桃91 | 亚州毛片| 国产1级a毛a毛1级a毛1级| 日韩免费视频在线观看| 久久国产毛片| 欧美日韩A片欧美日| 在线天堂av| 先锋资源男人站| 日韩无码激情| 亚洲无码激情视频| 91外围女视频| 五月天在线观看| 免费观看成人片| 91婷婷五月天| 日韩精品在线一区| 日韩性爱网站| 91AV成人| 加勒比一区二区| 免费A片国产毛无码A片| 成人色色| 免费看欧美日黄片| 四虎成人精品无码永久在线的客服 | 人人色人人干| 亚洲AV无码乱码国产精品黑人 | 黄色免费看视频| 亚洲一区色| 五月天久久久| 五月婷婷精品| 国产嫩草久久久一二三久久免费观看 | 亚洲超碰在线观看| 黑人干亚洲人| 国产一级AV国产免费| 中文字幕成| 麻豆一区二区三区| 97爱爱爱| 91在线观看免费视频| 久久逼逼| 中文在线观看免费视频| 国产精品视频一区二区三区在线观看 | 亚洲成人大香蕉| 91香蕉在线看| 国产高清一区| 狼人综合在线| 国产日韩a| 日韩免费高清无码| 少妇搡BBBB搡BBB搡HD(| 日产精品久久| 无码一区二区三区四| 国产乱子伦精品久久| 2025精品精品视频| 中文字幕777| 国产亚洲视频免费观看| 中文字幕在线免费| 午夜福利三级| 狠狠撸天天操| 伊人成人在线视频| 欧美18禁网站| av一卡二卡| 97精品视频| 六月丁香视频| 99成人在线视频| 欧美成人在线观看| AV黄色在线观看| 日批网站在线| 成人电影亚洲天堂| 国产在线中文字幕| 偷拍久久久| 中文字幕视频在线直播| 久久国产劲爆∧v内射| 在线欧美日韩| 人人操人人干人人| 日韩成人无码视频| 中文字幕精品人妻| 日韩av在线看| 韩国高清无码| 2014AV天堂网| 另类无码| 亚洲A网站| 第一色影院| 麻豆md0049免费| 五月丁香中文| 综合+++夜夜| 俺要操| 欧美黄色成人视频| 在线观看国产区| 中文字幕免费在线视频| 国产亲子乱XXXXimim/| 免费av毛片| 日韩天天操| 综合色婷婷一区二区亚洲欧美国产| 黄色国产视频在线观看| 欧美色视频在线观| 青青草综合网| 中文子幕免费毛片| 肏屄综合网| 欧美亚洲综合手机在线| 北条麻妃无码视频在线观看| 2014av天堂网| 乱伦91视频| 大香蕉在线视频99| 成人做爰黄AA片免费看三区| 国产成人精品久久| 中文字幕天堂网| 国产福利av| 奇米狠狠操| 国产一级AV免费观看| 成人毛片18毛片女人| 激情六月天| 大香蕉伊人在线网| 99久久久无码国产精品性波多| 亚洲一级婬片A片AAAA网址| 欧美伊人网| 91精品国产日韩91久久久久久 | 精品人妻二区中文字幕| 国产成人无码Av片在线公司| 92自拍视频| 亚洲在线免费观看| 西西人体大胆ww4444| 手机看片1024国产| 先锋影音资源一区| 岛国A视频| 国产成人A片| 天天干天天日天天色| 青青久热| aaa国产精品| 日韩中文性受视频| 午夜无码福利| 亚洲成人久久久| 日本三级片网址| 成人黄色在线观看视频| 毛片一区| 亚洲成人精品在线观看| 色婷婷成人| 北条麻妃在线一区二区| 男女av在线观看| 免费黄色网址啊不卡| 九九精品热| 操比网| 日韩免费三级| 亚洲精品少妇| 欧美日韩午夜福利视频| 欧美一二区| 黑人狂躁女人高潮视频| 亚洲无码激情视频| 曰韩一级片| 两根茎一起进去好爽A片在线观看 日本三级AAA三级AAAA97 | 特一级A片| 99热在线中文字幕| 亚洲AV无码成人精品区天堂小说| 青草青草| 日本五十路熟女视频| 久久婷婷婬片A片AAA| 嘿嘿午夜影院| 亚洲精品97| 国产激情自拍| 免费的A片| 新妺妺窝窝777777野外| 日韩无码操逼| 国产精品国产三级国产AⅤ| 国产无遮挡又黄又爽在线观看| 亚洲高清视频在线观看| 无码人妻一区二区三区免费n狂飙 性猛交AAAA片免费看蜜桃视频 | 日韩精品无码电影| 中文字幕第27页| 免费av一区二区| 免费在线成人网| 成人欧美| 一级全黄120分钟免费| 人人插人人射| 亚洲伦乱| 免费视频久久久| 国产另类自拍| 色视频在线观看| 欧美日韩小视频| 2018最好看的中文字幕高清电影| 初尝人妻滑进去了莹莹视频| 综合色色婷婷| 高潮无码在线观看| 欧美操日本| 骚妇一区| 亚洲欧洲在线观看| 午夜日逼| 西西4444www大胆无| 边吃边摸| 亚洲码无人客一区二区三区 | 91国产视频在线观看| 一级无码在线观看| 大香蕉尹人在看| 一本久道视频一本久道| 亚欧洲精品视频| 在线观看免费完整版中文字幕视频| 日韩无码久久久| 人人人人人操| 看看AV| 日一日干一干| 潮喷在线观看| 精产国品一区二区三区| 日韩无码1| 先锋资源男人站| 午夜美女视频| 午夜福利啪啪啪| 另类性姿势BBwBBW| 国产久久这里只有精品视频| 又紧又嫩又爽无遮挡免费| 亚洲欧洲成人| 成人在线欧美| 视色视频在线观看18| 精品一区二区三区四| 色欲AV秘无码一区二区三区| 中文色片| 无码婬片A片AAA毛片艳谭| 国产中文人人国际| AAAA毛片视频| 亚洲91视频| 99久久九九| 爱视频福利| 91看片| 国产精品自拍小视频| 俺要操| 精品国产污污免费网站入口| 无码123区| 制服无码| 无码秘蜜桃吴梦梦| 老湿机福利院| 中文字幕12页| a视频免费看| 国产一级操逼片| 伊人影院在线免费观看| 天天干天天日蜜臀色欲av| а√在线中文网新版地址在线| 视色视频在线观看| 久久肥妞操| 亚洲一级二级| 九九九九精品| 殴美老妇BBBBBBBBB| 青青草原AV| 亚洲资源网| 大香蕉性爱| 亚洲国产精品久久| 免费观看黄色片| 一级A黄片| 91亚洲高清| 国产色综合视频| 日逼91| 有码一区二区三区| 久久久久久久久国产精品| 高潮AV在线观看| 逼逼网| 人妻丝袜无码视频专区| 日韩视频区| 狠狠操免费视频| 国产精品自拍三级| 大香蕉尹人在线观看| 特级西西444WWW无码视频兔费看| 久久情| 日韩免费三级| 久久aaaa| 美日韩精品| 无码人妻精品一区二区蜜桃漫画| 在线观看亚洲一区| 日韩黄网站| 国产精品一区二区三区在线| 欧亚AV| 五月天乱伦小说| 婷婷五月精品| 777视频在线观看| 台湾一区二区| 色婷婷日韩精品一区二区三区| 天堂网2014| 久久AV秘一区二区三区水生| 国产黄片免费在线观看| 一本色道久久综合亚洲精品小说 | 欧美一级高清片免费一级a| 亚洲精品无码中文| 欧美一级片免费观看| 中文字幕乱伦视频| 国产乱码精品一品二品| 97pao| av牛牛| 亚洲乱码一区二区三区| 日韩一级片免费| 日韩逼| 一级A片亲子乱中文| 中文字幕你懂的| 无码黄片免费| 日韩欧美高清第一期| 91美女视频| 波多野结衣AV在线播放| 欧美午夜福利视频| 丰滿老婦BBwBBwBBw| 爽好紧别夹喷水欧美| 天天干天天干天天干| 日本欧美在线观看高清| 无码精品黄色片| av大片在线观看| 免费观看日韩无码视频| 黄色性爱网址| 在线观看免费视频a| 牛牛在线精品视频| 日本白浆| 丁香六月综合激情| 国产无码操逼| 臭小子晚上让你爽个够视频| 丁香花小说完整视频免费观看| 亚洲国产精品久久久| 毛片久久| 黄色片免费观看| 中国老太卖婬HD播放| 人人看人人搞人人摸| 亚洲色婷婷久久精品AV蜜桃| 日日骚亚洲| av三级网站| 国产久久久久久久久| 围内精品久久久久久久久久‘变脸| 亚洲区欧美区| 一级AA毛片| 免费无码一区二区三区| 久久久999精品日韩一区二区 | 97精品人妻一区| 免费看污网站| 黄片国产| 午夜福利视频网| 国产一区二区三区在线视频| 亚洲精品一二三区| 91国产爽黄| 丁香五月天激情| 国产日韩欧美综合精品在线观看| 亚洲午夜精品久久久久久APP| 国产精品免费一区二区三区四区视频 | 无码人妻91| 蜜桃做爱| 黄色在线播放| av中文字幕无码| 免费操逼视频在线观看| 久久人人爱| 亚洲影音先锋| 土耳其电影《爱与罚》| 亚洲欧美手机在线| 91视频网站入口| 新超碰97| 毛片黄色视频| 在线免费黄| 黄色片a| 日本中文字幕在线观看| 999成人电影| 亚洲无遮挡| 熟女熟妇人妻一区二区三区| 99精品全国免费观看| 午夜性爱网站| 精品乱子伦一区二区三区| 免费一区二区三区四区| 亚洲性生活| 国产成人V在线精品一区| 青娱乐精品在线视频| 日韩中文字幕无码中字字幕| 大香蕉av在线观看| 日韩特黄| 国产欧美综合在线三区| 韩国三级无码| 超碰成人欧美| 91无码秘蜜桃一区二区三区-百度| 亚洲国产婷婷香蕉A片| 欧美自拍视频在线观看| 青青在线视频| 中文原创麻豆传媒md0052| 中国操逼毛片| 国产区欧美去区在线| 日韩成人无码电影| 国产精品无码一区二区在线欢| 激情片AAA| 99人人爽| 亚洲人妻有码| 一级黄色电影免费观看| 亚洲AV资源| 91麻豆精品成人一区二区| 在线观看国产欧美| 亚洲无码人妻在线| 97国产在线观看| 加勒比精品在线| 大香伊人网| 欧美午夜精品一区二区蜜桃| 四川BBB搡BBB爽爽爽欧美| 91天天看| 五月天激情导航| 高清无码视频在线播放| 日批视频| 亚洲色成人网站www永久四虎| 久久视频免费在线观看| 国产又爽又黄免费网站在线| 在线视频一区二区三区| 久热99| 久久黄色成人视频| 亚洲一卡二卡三卡四卡免| 国产欧美综合在线| 国产乱伦电影| 精品一区二区三区蜜桃臀www| 99热在线观看者| 人人妻人人澡人人爽人人爽| 激情av| 成人在线视频观看| 无码精品人妻一区二区| 国产卡一卡二在线| 97人妻无码| 黄色AV天堂| 无码三级在线免费观看| 黄色草莓视频| 三级片网站在线观看| 国产成人三级片| 久久婷婷五月| 91成人三级| 亚洲自慰| 亚洲精品成人无码毛片| 狠狠干狠狠操| 日本三级片无码| 国产精品秘久久久久久| 不卡无码在线观看| 先锋影音资源站| 欧美成人在线免费| 成人一级a片| 亚洲黄色免费在线观看| 五丁香在线观看AV| 久久青青草在线视频| 国产精品免费观看久久久久久久久 | 国产成人无码精品久在线观看 | 中文无码日韩| 日韩欧美高清在线| 久久成人电影院| 午夜福利码一区二区| 成人免费无码毛片| 色五月激情小说| 色婷婷成人| 婷婷五月亚洲| 老司机精品视频在线观看| 国产精品久久毛片| 永久免费看片视频| 操逼网123| 日韩欧美偷拍| 中文在线免费看视频| 精精品人妻一区二区三区| 精品无码久久久久久久久app | 大香蕉啪啪| 婷婷国产| 老熟女导航| 狠狠操狠狠| 激情乱伦网站| 91AV电影网| av高清| 国产91综合一区在线观看| 综合精品7799| 91人妻在线视频| 黄色操逼网站?| 五月天操逼网站| 亚洲香蕉在线视频| 男女操逼网站| 日日爱99| 欧美一区二区三区不卡| 国产做受91| 黄p网站| 亚洲精品ww| 午夜在线视频| 天天色天天干天天| 欧美日韩精品一区二区三区视频播放| 亚洲操逼片| 天天添夜夜添| 国产视频h| 人人操免费| www超碰在线| 亚洲视频五区| 国产精品永久免费| 大香蕉伊人丁香五月| 五十路老国产| 成人视频在线观看免费| 在线观看国产区| 国产精品综合| 久草福利在线视频| 俺来俺去www色婷婷| 中文字幕A片| 国产青青| 丁香五月婷婷综合网| 手机av在线观看| 中文字幕在线资源| 亚洲色人妻| 日本国产在线| 欧美成人免费| 北条麻妃亚洲无码| 婷婷五月丁香花| 亚洲色播放| 欧美h在线观看| 日本a级视频| 欧美精品xxx| 香蕉伊人视频| 亚洲无码影音先锋| 欧美十区| 在线无码中文| 成人视频18| sm国产在线调教视频| 久久久无码精品亚洲| 伊人丁香| 成人爽爽视频| 色欲av在线| 88AV在线观看| 99热这里有精品| 最近中文字幕在线视频| 国产中文字幕波多|