1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        那些年我們一起優(yōu)化的SQL

        共 7724字,需瀏覽 16分鐘

         ·

        2022-04-18 12:09

        點(diǎn)擊上方藍(lán)色字體,選擇“設(shè)為星標(biāo)”
        回復(fù)"面試"獲取更多驚喜
        八股文教給我,你們專心刷題和面試

        Hi,我是王知無(wú),一個(gè)大數(shù)據(jù)領(lǐng)域的原創(chuàng)作者。
        放心關(guān)注我,獲取更多行業(yè)的一手消息。

        一、前言

        在日常開發(fā)中,我們經(jīng)常遇到一些數(shù)據(jù)庫(kù)相關(guān)的問(wèn)題,比方說(shuō):

        • SQL已經(jīng)走了索引了,為什么還是會(huì)超時(shí)?
        • 索引越建越多了,但是好像都是合理的,因?yàn)樾枨缶褪切枰鞣N查詢,但是索引過(guò)多又會(huì)降低寫入的效率,怎么更加合理的建立索引?
        • 為某個(gè)業(yè)務(wù)場(chǎng)景建立了某個(gè)索引,想當(dāng)然的會(huì)生效,搞不清楚為啥沒有完全覆蓋?
        • 索引包含了排序字段,為什么還是fileSort?
        • 刷數(shù)據(jù),批量處理大量數(shù)據(jù)如何優(yōu)化

        二、分析SQL的手段

        2.1 基于SQL執(zhí)行計(jì)劃

        通過(guò)explain可以獲取SQL的執(zhí)行計(jì)劃

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

        常見字段

        查詢語(yǔ)句常出現(xiàn)的Extra類型

        MySQL系統(tǒng)架構(gòu)圖

        using where 和 using index condition的區(qū)別

        比如:

        索引:

        index(field1,field2)

        SQL:

        select?*?from?table?where?field1=value1?and?field2?like?'%value2%'

        如果沒有using index condtion,field1會(huì)走索引查詢,匹配到對(duì)應(yīng)的數(shù)據(jù)后,回表查出剩余字段信息,再去匹配。

        如果通過(guò)field1匹配出了大量數(shù)據(jù),會(huì)導(dǎo)致大量回表匹配。

        于是就有了using index condtion,本質(zhì)上索引樹上是包含field2字段的,只是field2不能走索引搜索(因?yàn)槭褂昧饲澳:ヅ洌?,但是可以利用索引上現(xiàn)有的數(shù)據(jù)進(jìn)行遍歷,減少無(wú)效回表。

        using index condtion就是使用了ICP(索引下推),在存儲(chǔ)引擎層進(jìn)行數(shù)據(jù)過(guò)濾,而不是在服務(wù)層過(guò)濾,利用索引現(xiàn)有的數(shù)據(jù)減少回表的數(shù)據(jù)。

        比方說(shuō)field1過(guò)濾后剩下1000條數(shù)據(jù),需要回表1000條,使用field2在索引過(guò)濾后剩下100條,那么即使select * 也只是回表100條。

        2.2 基于追蹤優(yōu)化器分析

        該功能可以查看優(yōu)化器生成執(zhí)行計(jì)劃的整個(gè)過(guò)程

        • sql語(yǔ)句的優(yōu)化轉(zhuǎn)換
        • 表的依賴關(guān)系
        • 全表掃描、索引的開銷計(jì)算,及最終選擇
        • filesort排序算法的選擇

        怎么使用

        執(zhí)行信息截取:

        三、案例分析

        案例數(shù)據(jù)表:

        CREATE?TABLE?`reserve`?(
        ??`id`?BIGINT?UNSIGNED?AUTO_INCREMENT?NOT?NULL?COMMENT?'數(shù)據(jù)庫(kù)自增id',
        ??`reserve_no`?VARCHAR(32)?NOT?NULL?COMMENT?'預(yù)約號(hào)?全局唯一',
        ??`shop_id`?BIGINT?UNSIGNED?NOT?NULL?COMMENT?'店鋪id',
        ??`uid`?BIGINT?UNSIGNED?NOT?NULL?COMMENT?'買家id',
        ??`technician_id`?BIGINT?UNSIGNED?NOT?NULL?DEFAULT?'0'?COMMENT?'技師id',
        ??`arrange_at`?DATETIME?NOT?NULL?COMMENT?'預(yù)約開始時(shí)間',
        ??`is_delete`?TINYINT?UNSIGNED?NOT?NULL?DEFAULT?'0'?COMMENT?'邏輯刪除字段?0-未刪除?1-已刪除',
        ??`created_at`?DATETIME?NOT?NULL?DEFAULT?CURRENT_TIMESTAMP?COMMENT?'創(chuàng)建時(shí)間',
        ??`updated_at`?DATETIME?NOT?NULL?DEFAULT?CURRENT_TIMESTAMP?ON?UPDATE?CURRENT_TIMESTAMP?COMMENT?'更新時(shí)間',
        ??`reserve_status`?INT?NOT?NULL?DEFAULT?'5'?COMMENT?'預(yù)約狀態(tài)',
        ??`guest_name`?VARCHAR(30)?NOT?NULL?DEFAULT?''?COMMENT?'預(yù)約人姓名/昵稱',
        ??`guest_mobile`?VARCHAR(32)?NOT?NULL?DEFAULT?''?COMMENT?'預(yù)約人手機(jī)號(hào)',
        ??`real_pay`?BIGINT?UNSIGNED?NOT?NULL?DEFAULT?'0'?COMMENT?'預(yù)約總價(jià)格',
        ??
        ??PRIMARY?KEY?(`id`),
        ??KEY?`idx_reserve_no`?(`shop_id`,`reserve_no`)?COMMENT?'預(yù)約號(hào)',
        ??KEY?`idx_uid_kdt`?(`shop_id`,`uid`)?COMMENT?'用戶?ID',
        ??KEY?`idx_shop_guest_name`?(`shop_id`,`guest_name`)?COMMENT?'預(yù)約人姓名',
        ??KEY?`idx_status_arrange`?(`shop_id`,`reserve_status`,`arrange_at`)?COMMENT?'狀態(tài)、到店時(shí)間',
        ??KEY?`idx_status_arrange`?(`shop_id`,`reserve_status`,`uid`)?COMMENT?'狀態(tài)、買家id',
        ??KEY?`idx_shop_create_status`?(`shop_id`,`created_at`,`reserve_status`)?COMMENT?'分店創(chuàng)建時(shí)間',
        ??KEY?`idx_shop_del`?(`shop_id`,`is_delete`)?COMMENT?'邏輯刪除',
        ??KEY?`idx_shop_dept_arrange`?(`shop_id`,`arrange_at`,`created_at`),
        ??KEY?`idx_guest_name`?(`guest_name`)?COMMENT?'預(yù)約人姓名',
        )?ENGINE=InnoDB?CHARSET=utf8mb4?COMMENT='預(yù)約記錄表'

        注意

        ICP只能減少回表,但是在索引上的搜索依舊沒有利用到查找樹的特性去提高搜索效率,所以這種場(chǎng)景該字段在本章中也會(huì)認(rèn)定索引失效。

        比方說(shuō)表table 存在索引 index(field1,field2)

        select?*?from?table?where?field1=value1?and?field2?like?'%value2%'

        field2會(huì)基于從index上過(guò)濾后的數(shù)據(jù)進(jìn)行遍歷搜索。

        那么出現(xiàn)using index condition 就說(shuō)明索引還不是最優(yōu)嗎?

        并不一定, 當(dāng)索引使用類型type為range時(shí),都會(huì)出現(xiàn)using index condition。

        比方說(shuō):

        select?*?from?table?where?field1?>?value1

        3.1 索引失效場(chǎng)景

        3.1.1 最左匹配截?cái)?/strong>

        索引:

        KEY idx_reserve_no (shop_id,reserve_no) COMMENT '預(yù)約號(hào)'

        SQL:

        select?*?from?reserve?where?reserve_no=''

        查詢匹配從左往右匹配,要使用reserve_no走索引,必須查詢條件攜帶shop_id

        3.1.2 隱式轉(zhuǎn)換

        索引:

        KEY idx_shop_guest_name (shop_id,guest_name) COMMENT '預(yù)約人姓名' KEY idx_shop_create_status (shop_id,created_at,reserve_status) COMMENT '分店創(chuàng)建時(shí)間'

        SQL:

        select?*?from?reserve?where?shop_id=1?and?guest_name=1
        select?*?from?reserve?where?created_at=1603296000000

        guest_name是字符類型,使用了數(shù)字,以及date_time類型應(yīng)該使用字符串匹配。否則mysql會(huì)用到隱式替換,導(dǎo)致索引失效。

        3.1.3 in + order by 導(dǎo)致排序失效

        索引:

        KEY idx_status_arrange (shop_id,reserve_status,arrange_at) COMMENT '狀態(tài)時(shí)間'

        SQL:

        select?*?from?reserve?where?shop_id=1?and?reserve_status?in?(1,2)?order?by?created_at

        使用了in+order by會(huì)導(dǎo)致order by不能走索引,可以通過(guò)將order by字段前置,將in過(guò)濾的字段移動(dòng)到組合索引后端,只用于避免回表。

        一半建議減少排序的字段,所以可以調(diào)整下SQL只查id,再根據(jù)id去查對(duì)應(yīng)的數(shù)據(jù)。(可以讓sql走覆蓋索引、非索引排序的情況下也可以促使Mysql使用更優(yōu)的排序算法)

        select?id?from?reserve?where?shop_id=1?and?reserve_status?in?(1,2)?order?by?created_at

        可以調(diào)整索引為

        KEY idx_status_arrange (shop_id,arrange_at,reserve_status) COMMENT '狀態(tài)時(shí)間'

        讓排序走索引,并且利用reserve_status在索引上進(jìn)行數(shù)據(jù)過(guò)濾,避免回表

        同時(shí)存在 reserve_status、created_at索引和 created_at、reserve_status索引時(shí) ,則要注意mysql在進(jìn)行索引選擇時(shí),針對(duì)in是有特殊的代價(jià)計(jì)算規(guī)則的。

        in代價(jià)計(jì)算

        in查詢?cè)贛ysql底層是通過(guò)n*m的方式去搜索,類似union,但是效率比union高。

        in查詢?cè)谶M(jìn)行cost代價(jià)計(jì)算時(shí)(代價(jià) = 元組數(shù) * IO平均值),是通過(guò)將in包含的數(shù)值,一條條去查詢獲取元組數(shù)的,因此這個(gè)計(jì)算過(guò)程會(huì)比較的慢,所以Mysql設(shè)置了個(gè)臨界值,5.6之后超過(guò)這個(gè)臨界值后該列的cost就不參與計(jì)算了。因此會(huì)導(dǎo)致執(zhí)行計(jì)劃選擇不準(zhǔn)確。

        eq_range_index_dive_limit

        默認(rèn)是200,即in條件超過(guò)了200個(gè)數(shù)據(jù),會(huì)導(dǎo)致in的代價(jià)計(jì)算存在問(wèn)題,可能會(huì)導(dǎo)致Mysql選擇的索引不準(zhǔn)確。

        3.1.4 范圍查詢阻斷組合索引

        索引:

        KEY idx_shop_create_status (shop_id,created_at,reserve_status) COMMENT '分店創(chuàng)建時(shí)間',

        SQL:

        select?*?from?reserve?where?shop_id=1?and??created_at>'2020-10-22'?and?reserve_status=10

        注意:>和< 判斷會(huì)阻斷組合索引,created_at用了>查詢,因此reserve_status不能走索引。

        可以調(diào)整下索引順序,created_at放在最后面。

        KEY idx_shop_create (shop_id,reserve_status,created_at) COMMENT '分店創(chuàng)建時(shí)間排序'

        注意:>=和<=雖然也會(huì)阻斷后續(xù)字段,但是后續(xù)字段可能會(huì)通過(guò)icp基于索引獲取數(shù)據(jù),所以explain可能可以看到key_len是包含后續(xù)字段的。

        3.1.5 前模糊匹配不能走索引

        組合索引時(shí),在非最左字段的情況下,可以用到ICP

        索引:

        KEY idx_shop_guest_name (shop_id,guest_name) COMMENT '預(yù)約人姓名',

        SQL:

        select?*?from?reserve?where?shop_id=1?and?guest_name?like?'%name%'

        3.1.6 or查詢導(dǎo)致失效

        索引:

        KEY idx_guest_name (guest_name) COMMENT '預(yù)約人姓名' ?KEY uid (uid) COMMENT '買家id'

        SQL:

        select?*?from?reserve?where?uid=1?or?guest_name=''

        or查詢會(huì)導(dǎo)致索引失效,可以將uid和guest_name分別建立索引,利用Mysql的索引合并進(jìn)行優(yōu)化。

        3.1.7 使用函數(shù)查詢

        包括使用查詢字段進(jìn)行四則運(yùn)算 field+1 > value

        索引:

        KEY idx_shop_create_status (shop_id,created_at,reserve_status) COMMENT '分店創(chuàng)建時(shí)間' KEY idx_shop_real_pay (shop_id,real_pay) USING BTREE,

        SQL:

        select?*?from?reserve??where?shop_id=1?and?DATE_SUB(CURDATE(),?INTERVAL?7?DAY)?<=?date(created_at);
        select?*?from?reserve?where?shop_id=1?and?real_pay+1=10

        在列上進(jìn)行使用函數(shù)查詢和使用查詢字段進(jìn)行四則運(yùn)算,會(huì)導(dǎo)致不能走索引

        3.1.8 不等于、不包含只能用到ICP

        索引:

        KEY idx_status_arrange (shop_id,reserve_status,arrange_at) COMMENT '狀態(tài)時(shí)間'

        SQL:

        select?*?from?reserve?where?shop_id=1?and?reserve_status?not?in?(1,2)
        select?*?from?reserve?where?shop_id=1?and?reserve_status?!=?1

        3.1.9 選擇性過(guò)低,直接走全表

        選擇性過(guò)低,曾經(jīng)以選擇性是否低于30%為界限決定是否走索引,現(xiàn)在還會(huì)根據(jù)表大小、IO塊大小、行數(shù)等決定。

        索引:

        KEY idx_shop_create_status (shop_id,created_at,reserve_status) COMMENT '分店創(chuàng)建時(shí)間'

        SQL:

        select?*?from?reserve?where?shop_id=1?and?created_at>'2017-10-22'

        3.1.10 索引碎片化

        索引碎片化是較為特殊的場(chǎng)景,查詢字段均符合索引,但是索引執(zhí)行計(jì)劃不符合預(yù)期。考慮如果是大量執(zhí)行DML的表,有可能是索引碎片化嚴(yán)重,導(dǎo)致索引失效。

        (11) 排序使用了索引

        排序的字段不一定是要在最后,但是一定不能前一個(gè)字段不在查詢條件中

        索引:

        KEY idx_shop_create_status (shop_id,created_at,reserve_status) COMMENT '分店創(chuàng)建時(shí)間'

        SQL:

        select?*?from?reserve?where?shop_id=1?and?created_at>'2017-10-22'?order?by

        小結(jié)

        根據(jù)以上例子,總結(jié)幾個(gè)索引失效的場(chǎng)景

        1. 組合索引左匹配原則
        2. 發(fā)生隱式轉(zhuǎn)換
        3. 組合索引,in + order by in會(huì)阻斷排序用索引
        4. 范圍查詢會(huì)阻斷組合索引,索引涉及到范圍查詢的索引字段要放在組合索引的最后面。
        5. 前模糊匹配導(dǎo)致索引失效
        6. or查詢,查詢條件部分有索引,部分無(wú)索引,導(dǎo)致索引失效。
        7. 查詢條件使用了函數(shù)運(yùn)算、四則運(yùn)算等。
        8. 使用了!=、not in
        9. 選擇性過(guò)低

        3.2 索引可優(yōu)化場(chǎng)景

        3.2.1 索引包含選擇性過(guò)低字段

        SQL:

        select?*?from?reserve?where?shop_id=1?and?is_delete=0

        索引:

        KEY idx_shop_del (shop_id,is_delete) COMMENT '邏輯刪除',

        is_delete 表示邏輯刪除,包含0未刪除和1已刪除,數(shù)據(jù)庫(kù)中的值只有很少量部分是邏輯刪除的,但是在業(yè)務(wù)中我們一般都只查未刪除的,那么這種情況is_delete是完全不必要在索引中的??梢园裪s_delete在組合索引中去掉

        3.2.2 唯一性索引

        SQL:

        select?*?from?reserve?where?shop_id=1?and?reserve_no=''

        索引:

        KEY idx_reserve_no (shop_id,reserve_no) COMMENT '預(yù)約號(hào)',

        具有唯一性的字段不用跟別的字段建立組合索引,可以只保留reserve_no。

        3.2.3 字段前置

        SQL:

        select?*?from?reserve?where?shop_id=1?and?uid=1?and?reserve_status=1

        索引:

        KEY idx_status_arrange (shop_id,reserve_status,uid) COMMENT '狀態(tài)、買家id' uid的區(qū)分度明顯比reserve_status更高,單條sql來(lái)看,將uid和reserve_status的位置交換會(huì)更加合適

        3.2.4 覆蓋索引

        SQL:

        SELECT?sum(real_pay)?FROM?reserve?where?shop_id=1?and?reserve_status=1

        索引:

        KEY idx_status_arrange (shop_id,reserve_status,uid) COMMENT '狀態(tài)、買家id',

        看起來(lái)查詢條件已經(jīng)走索引了,但是如果數(shù)據(jù)量很大的情況下,會(huì)造成大量回表,也會(huì)導(dǎo)致慢查。

        可以通過(guò)建一個(gè)索引解決

        KEY idx_status_real_pay (shop_id,reserve_status,real_pay) COMMENT '狀態(tài)-預(yù)約實(shí)付金額',

        小結(jié)

        1. 建立索引要選擇性低的字段不用建立索引
        2. 具有唯一識(shí)別的字段無(wú)需與其他字段建立組合索引
        3. 除了業(yè)務(wù)需求上的考慮,盡量選擇性高的索引字段前置
        4. 不止需要考慮查詢條件是否走索引,在經(jīng)過(guò)索引過(guò)濾后,數(shù)據(jù)量依舊很大的情況下要考慮使用覆蓋索引。

        3.3 sql寫法可優(yōu)化場(chǎng)景

        3.3.1 深分頁(yè)

        在刷數(shù)據(jù)經(jīng)常涉及到深分頁(yè),而深分頁(yè)的時(shí)候查詢效率會(huì)很慢。

        比如以下sql:

        select?*?from?reserve?where?field=1?limit?1000,10

        由于limit不會(huì)傳遞到引擎層,所以如果查1000行數(shù)據(jù),如果where有條件不走索引,會(huì)導(dǎo)致需要回表1000行數(shù)據(jù)。

        Mysql查詢數(shù)據(jù)時(shí),先由引擎層通過(guò)索引過(guò)濾出一批數(shù)據(jù)(索引過(guò)濾),然后服務(wù)層進(jìn)行二次過(guò)濾(非索引過(guò)濾)。引擎層過(guò)濾后會(huì)將獲取的數(shù)據(jù)暫存,服務(wù)層一條一條數(shù)據(jù)獲取,獲取時(shí)引擎層回表獲得完成數(shù)據(jù)交給服務(wù)層,服務(wù)層判斷是否匹配查詢條件(非索引過(guò)濾),如果匹配會(huì)繼續(xù)判斷是否滿足limit限制的條數(shù)。

        所以如果深分頁(yè),會(huì)導(dǎo)致大量的無(wú)效回表,因此優(yōu)化的方式就是避免深分頁(yè)帶來(lái)的無(wú)效回表。

        我們可以改成id過(guò)濾,每次都只查詢大于上次查詢的數(shù)據(jù)id。這樣每次只查詢100條,回表也只需要回表100條

        #?避免深分頁(yè)
        select?*?from?reserve?where?id>上次查詢的數(shù)據(jù)id值?limit?100

        #?延遲關(guān)聯(lián)?避免大量回表
        SELECT?*?FROM?shop?t1,(select?id?from?reserve?limit?1000,100)?t2?where?t1.id=t2.id

        另外,涉及到大數(shù)據(jù)量的處理,可以按照時(shí)間分割查詢,每個(gè)線程負(fù)責(zé)一個(gè)時(shí)間段的數(shù)據(jù)處理,提高整體的效率。

        3.3.2 asc和desc混用

        索引:

        KEY ide_shop_dept_arrage(sho_id,arrage_at,created_at)

        SQL:

        select?*?from?t1?where?shop_id=1?order?by?arrage_at?desc,created_at?asc

        desc 和asc混用時(shí)會(huì)導(dǎo)致索引失效

        另外排序建議只select必須的字段,通過(guò)覆蓋索引提高效率。排序字段一定要走索引,不走索引數(shù)據(jù)量大的情況即使select的字段很少也會(huì)很慢。

        select比較少的字段不僅可以利用到覆蓋索引提高速度。在排序沒有命中索引時(shí),還涉及到Mysql如果選擇排序策略的問(wèn)題,本文不擴(kuò)展說(shuō)明。


        如果這個(gè)文章對(duì)你有幫助,不要忘記?「在看」?「點(diǎn)贊」?「收藏」?三連啊喂!


        2022年全網(wǎng)首發(fā)|大數(shù)據(jù)專家級(jí)技能模型與學(xué)習(xí)指南(勝天半子篇)

        互聯(lián)網(wǎng)最壞的時(shí)代可能真的來(lái)了
        我在B站讀大學(xué),大數(shù)據(jù)專業(yè)
        我們?cè)趯W(xué)習(xí)Flink的時(shí)候,到底在學(xué)習(xí)什么?
        193篇文章暴揍Flink,這個(gè)合集你需要關(guān)注一下
        Flink生產(chǎn)環(huán)境TOP難題與優(yōu)化,阿里巴巴藏經(jīng)閣YYDS
        Flink CDC我吃定了耶穌也留不住他!| Flink CDC線上問(wèn)題小盤點(diǎn)
        我們?cè)趯W(xué)習(xí)Spark的時(shí)候,到底在學(xué)習(xí)什么?
        在所有Spark模塊中,我愿稱SparkSQL為最強(qiáng)!
        硬剛Hive | 4萬(wàn)字基礎(chǔ)調(diào)優(yōu)面試小總結(jié)
        數(shù)據(jù)治理方法論和實(shí)踐小百科全書
        標(biāo)簽體系下的用戶畫像建設(shè)小指南
        4萬(wàn)字長(zhǎng)文 | ClickHouse基礎(chǔ)&實(shí)踐&調(diào)優(yōu)全視角解析
        【面試&個(gè)人成長(zhǎng)】2021年過(guò)半,社招和校招的經(jīng)驗(yàn)之談
        大數(shù)據(jù)方向另一個(gè)十年開啟 |《硬剛系列》第一版完結(jié)
        我寫過(guò)的關(guān)于成長(zhǎng)/面試/職場(chǎng)進(jìn)階的文章
        當(dāng)我們?cè)趯W(xué)習(xí)Hive的時(shí)候在學(xué)習(xí)什么?「硬剛Hive續(xù)集」
        瀏覽 20
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

          <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            77777免费观看电视剧推荐爱的教育| 91豆花在线| ThePorn精品无码| 伊人五月天| 自拍偷拍av| 欧美成人三级在线| 91嫩草久久久天美传媒| 一级片在线播放| 人人妻人人澡人人爽久久| 日韩欧美中文在线观看| 蜜桃精品一区二区| 久久情| 视色网站| 成人第一页| 亚洲在线播放| 国产人国产视频成人免费观看…| 日本人妻在线播放| 中文字幕第23页| 黄网站在线播放| 毛多水多丰满女人A片| 欧美一卡二卡三卡| 午夜AV大片| 在线不卡中文字幕| 亚洲高清视频免费| 操欧美美女| 日本三级网| 欧美性爱精品一区| 大香蕉九九| 亚洲大片在线观看| 日韩av免费看| 婷婷天堂站| 天天玩夜夜玩天天玩国产99| 欧美午夜电影| 国产丝袜在线视频| 欧美性爱免费网站| 亚洲精品97| 一级片直播| 国产思思99re99在线观看| 久天堂| 色五月婷婷基地| 欧美精品在线视频| 亚洲精品天堂无码AV片| 亚洲无码人妻在线| 三级片无码麻豆视频| www.污| 中文字幕久久播放| 一级a片在线播放| 狠狠躁日日躁夜夜躁2022麻豆| 无码专区视频| 美女视频一区二区三区| 91无码国产成人精品| 亚洲天堂视频在线观看免费| 91在线无码精品秘入口| 久久免费看视频| 黄色视频免费网站| 亚洲无码一本道| 丁香婷婷五月| 69久久成人精品| 日韩不卡在线观看| 嫩BBB槡BBBB槡BBB3i| 久久燥| 精品中文字幕在线| 国产精品网站在线观看| 奇米超碰| 成人做爰黄A片免费看| 国产精品爽爽久久久久| 久久Av电影| 精品在线播放视频| 北条麻妃精品视频| 亚洲aⅤ| sesese999| 蜜臀av一区二区三区| WWW.亚洲无码| 国产毛片一区二区三区| 六月婷婷在线观看| 性爱视频小说| 波多野结衣无码视频在线观看| 国产精品久久久久久最猛| 日韩无码成人片| 日韩成人免费| 91人人妻人人妻人人澡| 911精品国产一区二区在线| www久久| 色射爱| 亚洲精品97久久中文字幕| 中文无码日韩| 无码精品成人观看A片| 91乱子伦国产乱子伦!| 综合久久av| 日本成人高清视频| www.99| 国产高清无码免费在线观看| 东方AV在线播放| 俺来了俺去了www色官网| 噜噜噜在线视频| 毛片在线视频| 嫩草在线播放| 国产高清一区二区三区| 欧美综合网在线观看| 2014av天堂网| 最好看的2019中文在线大全电影| 久久福利视频导航| 午夜香蕉| 欧美操穴| 无码精品人妻一区二区三区漫画| 日韩无码高清网站| av手机版| 亚洲无人禁区| 成人欧美精品区二区三| 内射免费视频| 国产成人女人在线观看| 中文字幕免费av| 伊人精品A片一区二区三区| 特级毛片| www.啪| 亚洲黄色视频免费看| 国产激情无码| 天天爽夜夜爽夜夜爽精品| 在线永久看片免费的视频| 苍井空中文字幕在线观看| 国产三级片AV| 日韩无码久久久| 日韩欧美天堂| 国产免费一区二区| 91福利资源| 国产女人18水真多18精品一级做 | 中文在线字幕电视剧免费平台| 高潮视频在线| 久久亚洲av| 1024国产在线| 日韩成人精品在线| 国产精品色情A级片| 黄色电影网页| 五月丁香六月| 成人免费黄色网| 伊人大香蕉在线观看| 国产一区二区三区四区在线观看| 三级国产| 欧美做受高潮白| 一级a片在线观看| 一级片麻豆| 久操免费在线视频| 国产AV无码影院| www.91n| 黄色小说在线播放| 高清无码视频在线免费观看| 伊人久久久久久久久久久| 狠狠视频| 国产AV黄| 丁香六月激情| 亚洲av大全| 亚洲天堂免费视频| 99国产精品久久久久久久成人 | 欧美视频一区二区三区| 怡春院欧美| 亚洲一本在线电影av| 久久久久久久久久成人永久免费视频| 日本一级按摩片免费观看| 黄色无码av| 白虎高清无码大尺度免费在线观看 | www.蜜桃| 成人aV无码精品国产一区二区 | 青草网在线观看| 亚洲国产精品成人久久蜜臀| 亚洲免费av在线| 免费V片| 天天天日天天天天天天天日歌词 | 无码波多野结衣| 国产成人A片| 欧美啊啊啊| 亚洲国产精品一区二区三区| 香蕉视频在线看| 日韩欧美成人网| 五月天黄色网| 亚洲婷婷五月天| 美日韩在线观看| 99日韩| 午夜av电影| 亚洲中文字幕AV| 悠悠久久久| 欧美精品午夜福利无码| 中文字幕国产av| 99久久人妻无码中文字幕系列| 偷拍一区| 一级成人毛片| 91成人综合| 国产AV一区二区三区精品| 蜜桃视频无码区在线观看| 国产aa| 久久五月丁香| 欧美二区视频| 成人片成人网久久蜜桃臀| 成人四区| 人妻综合第一页| 亚欧无码| 五月丁香成人| www.黄色av| 一级操逼| 91久久久久国产一区二区| 蜜桃91精品秘入口| 中文字幕国产AV| 日韩日日操| 乱伦视频网站| 亚洲中文无码电影| 精品日韩在线视频| 日本超碰| 黄色电影网站在线观看| 欧美一级高清片免费一级a| v天堂在线| 91精品婷婷国产综合久久| 99久久精品国产成人一区二区 | 欧美日韩性爱| 99reav| 国产成人精品一区二区三区四区 | 亚洲一级免费免费在线观看| 91av成人| 日本毛片在线观看| 一级免费爱爱| 欧美性之站| 四虎在线观看| 俺要操| 国产毛片精品一区二区色欲黄A片| 蜜桃视频91| 江苏妇搡BBBB搡BBBB| 国产亚洲欧美精品综合在线| 成人一区二区在线观看| 影音先锋无码AV| 免费av大全| 中文字幕你懂的| 99热精品免费观看| 亚洲成人a片| 天天精品| 91精品国自产在线观看| 午夜福利成人网站| 婷婷丁香色| 九九九九精品视频| 免费观看毛片| 欧美AAAAAA| 男人的天堂色婷婷| 天天操欧美| 久久国产精品影院| 91av视频| 17c精品麻豆一区二区免费| 日韩欧美成人网站| 国产高潮又爽又无遮挡又免费| 福利大香蕉| 中文字幕在线观看完整av| 青娱乐超碰在线| 99久久精品国产精品有折扣吗| 欧美精品在线观看视频| 伊人逼逼| 九九成人精品| 伊人久久大香色综合久久| 免费黄色小视频| 亚洲黄色大片| 欧美一区视频| 又黄又爽无遮挡| 亚洲一本之道| 91成人视频免费观看| 日韩电影免费在线观看| 日本高清版色视频| 残忍另类BBWBBWBBW| 十八禁黄网站| 亚洲无码视频专区| 嫩BBB槡BBBB槡BBBB免费视频 | 亚洲女与黑人正在播放| 奇米影视亚洲春色| 亚洲AV成人无码久久精品麻豆| 亚洲免费中文字幕| 毛片毛片毛片毛片毛片毛片| 久色精品| 激情五月天导航| 男人的天堂免费视频| 韩国三级片在线| 91射区| 亚洲无码乱码精品| 国产69AV| 俺来也俺去www色情网| 9l视频自拍蝌蚪9l视频成人| 欧美男人天堂网| 中文字幕视频在线直播| 婷婷免费| 精产国品一区二区| 国产美女操逼网站| 国产AV日韩AⅤ亚洲AV中文 | 欧美性爱无码在线| 国产91探花| 亚洲一级婬片A片AAAA网址| 毛片在线看片| av福利在线观看| 手机毛片在线播放| 亚洲色色频| 精品久| 欧美性爱在线| 操你久久| 特黄AAAAAAAA片视频| 天天操天天操| 超碰AA| 狼人亚洲伊人| 初学影院WWWBD英语完整版在线观看| 欧美日韩在线播放| 色视频在线观看| 另类av| 免费在线成人网| 爱爱打炮影院| 欧美一级片| 东京热无码视频| 特黄视频| 成人毛片在线播放免费| 夜夜AV| 奇米超碰| 亚洲色图一区二区| A免费观看| 97香蕉久久夜色精品国产| 夜夜无码| 高清无码内射视频| 在线观看亚洲中文字幕| 自拍啪啪| v天堂| 日韩高清无码毛片| 一区二区三区四区视频在线| 操操操影院| 欧美日韩中文字幕在线| 麻豆91在线| 国产高清在线视频| 另类老妇奶性BBWBBw| 高清无码免费视频| 懂色一区二区三区免费| 一道本视频在线| 色婷婷欧美在线播放内射| 骚骚肥肥一区二区三区| 国产日韩中文字幕| 久久国产毛片| 国产精品无码ThePorn| 日韩无码免费看| 婷婷五月天国产| 无码一区二区三区四| 特级西西西西4444级酉西88wwww特| 99人妻视频| 黄色电影免费网站| 2020人妻中文字幕| 国产乱子伦一区二区三区视频| 91嫖妓站街按店老熟女| 欧美日韩在线视频免费观看| 国产视频第一页| 国产婷婷色一区二区三区| 果冻传媒一区二区三区| 亚洲无码精品久久| 99热网站| 超碰青娱乐| 大香蕉免费中文| 欧美精品操逼| 中文在线A∨在线| 狠狠干综合网| 2025av天堂| 亚洲色情在线观看| 亚洲天堂在线视频观看| 国产AV无码区亚洲| 久久久久久久久成人| 国产精品同| 再深点好爽灬轻点久久国产| 欧美日本国产| 色婷婷基地| 青青草五月天色婷婷丁香| 天天操夜夜操视频免费高清| 黄色片成人| 色五月婷婷基地| 人妻精品一区二区| 97人人艹| 在线观看国产欧美| 亚洲无码人妻在线| 蜜桃视频在线观看视频| 国内精品久久久久| 99热国产在线| 操逼AV无码| 野花Av| 丁香五月婷婷啪啪| 亚洲日韩影院| 日本操逼网| 久久久无码人妻精品无码| 亚洲欧洲高清无码| 中文字幕在线国产| 青青草手机视频| 国产Av大全| 欧美性爱AAA| 做爰视频毛片下载蜜桃视频| 波多野结衣无码电影| 日逼视频网站| 五月丁香成人电影| 日本做爱视频| 国产黄色在线播放| 波多野结衣无码流出| 最近最火中文字幕mv歌词| 欧美一级视频在线观看| 亚洲一区在线播放| 999精品视频在线| 另类aV| 毛片精品| 精品香蕉视频| av大片在线观看| 亚洲XXXXX| 久久嫩草精品久久久久| 亚洲AⅤ欧美AⅤ| av无码毛片| 九一九色国产| 中文字幕久久播放| 亚洲AV秘无码不卡在线观看| 日本国产精品| 九九精品12| 免费黄色a片| 亚洲黄色小视频| 国产成人秘一区二区三区东京热| 国产wwwww| 超碰人人爽| 操逼的视频| 国产成人综合电影| 91狠狠综合久久久久久| 北条麻妃精品青青久久价格| www.簧片| 妹子干综合| 一区无码精品| a视频免费观看| 精品无码一区二区三区四区久久久软件| 日韩一级内射| 五月天丁香| 国产精品对白| 国产91在线亚洲| 综合成人在线| 东方av在| 亚洲免费视频观看| www.99热视频| 99这里只有精品视频| 超碰观看| 91禁樱桃在线| 无码人妻精品一区二区三区温州| 久在线视频| 欧美午夜乱伦电影| 爱爱午夜福利| 国内精品国产成人国产三级| 日本免费色视频| 国产精成人品| 韩国无码中文| 在线看黄网站| 日本久久不卡| 亚洲日本视频| 黄色网址五月天| 久久久久电影| 人人草人人搞| 成人精品三级麻豆| 三级日韩| 久一视频| 99久久婷婷国产综合精品青牛牛| 国产精品porn| 大屌av| 97人妻无码| 大香蕉网站在线观看| 国产精品国产三级国产AⅤ原创 | 特级婬片A片AAA毛片AA做头 | 黄色亚洲视频| 亚洲免费观看在线观看| 久草综合在线| 欧美高清一级| 欧美日皮视频| 国产com| 手机看片福利一区二区| 亚洲精品色图| 大香蕉伊人免费| 婷婷五月天成人电影| 夜夜嗨AV一区二区三区啊| 色欲av伊人久久大香线蕉影院| 狼友视频在线看| 男人天堂色男人| 国产青青操| 国产精品91视频| 亚洲一区亚洲二区| 日韩精品人妻一区二区| 青娱乐网站| A黄色绿像| 亚洲高清无码视频在线| 日韩一级无码| 国产做受91一片二片老头| 久久久久女人精品毛片九一| 久热在线视频| 尤物在线免费视频| 午夜免费播放观看在线视频| 粉嫩av懂色av蜜臀av分享| 西西337| 免费看无码一级A片放24小时| www.人人摸| 精品一区二区三区av| 中文字幕-区二区三区四区视频中国| 亚洲男同tv| 国产成人+综合亚洲+天堂| 国产黄色一级| 天天插综合| 丰满BBwBBwBBwBBW| 91丨九色丨国产在线| 欧美黄色a片| 重庆美女揉BBBB搡BBBB| 色婷婷久久综合| 日本成人午夜福利| av资源在线播放| 成人AV在线资源| 天堂AV色| 欧洲一区二区三区| 99综合久久| 麻豆91免费视频| 操屄影院| 天天日,天天干,天天操| 日韩极品视频在线| 婷婷五月花| 久久免费在线视频| 玖玖国产精品| 91性爱| 操婊网| 日韩色情网| 久久黄色视| 成人无码区免费AV片| 无码av一区二区| 日韩精品黄片| 国产高清无码在线观看| 国产日韩在线观看视频| 免费黄色a片| 狠狠躁婷婷天天爽综合| 加勒比久久综合| 熊猫成人网| 亚洲黄色一级电影| 亚洲人妻免费视频| 国产精品久久久久野外| 亚洲AV无码精品成人| 北条麻妃青青久久| 亚洲AV无码成人精品区东京热| 97成人视频| 国产又爽又黄在线看视频| 天天搞天天干| 婷婷视频导航| 亚洲AV无码成人精品区天堂小说| 少妇嫩搡BBBB搡BBBB| 狠狠躁日日躁夜夜躁2022麻豆 | 日本黄色免费| 一区二区三区视频在线| 亚洲AⅤ无码一区二区波多野按摩| 微拍福利一区二区| 国产激情视频在线| 毛片在线观看网站| 91av久久| 日韩性爱一区| 精品人妻一区二区三区日产乱码| 日韩欧美视频| 国产久久在线| 日韩a级片| 麻豆乱伦视频| 天天草视频| 91精彩视频| 高清无码学生妹| 青草免费视频| 成人网| 熊猫成人网| 中文在线免费看视频| 亚洲AV无码蜜桃| 欧美51精品| 18禁片网站| 日韩欧美视频| 欧美日韩小视频| 亚洲高清无码在线播放| 思思在线视频| 自拍亚洲欧美| 91理论片| 69国产成人精品二区| 欧美亚洲成人网站| 亚洲成人少妇老妇a视频在线| 亚洲国产一区二区三区| 一本色道久久综合亚洲二区三区| aaa久久| 熟妇女人妻丰满少妇中文字幕| 天天操天天日天天操| a日韩| 日本黄色大全| 精品视频在线免费| 黄色视频在线免费观| 欧美18禁黄免费网站| 黄片网站免费观看| 内射免费视频| 久久久久久久久久久高清毛片一级| 欧美香蕉| 亚洲一区二区av| 日韩欧美午夜成人无码| 亚洲小说欧美激情另类A片小说| 一级二级三级视频| 欧美亚洲国产日韩| 超清无码在线| 午夜激情毛片| 一区免费在线观看| 精品热99| 少妇一级婬片内射视频| 青春草在线视频免费观看| 色综合99久久久无码国产精品| 日韩无码波多野结衣| 日本性欧美| 干妞网免费视频| 欧美老妇大BBBBXXXX| 亚洲无码手机在线| 人人爱人人看| 国精产品一区二区三区在线观看 | 精品三级网站| 人妻精品综合码| 亚洲黄色视频免费观看| 免费的黄片| 欧美日韩第一区| 蜜臀网| 成人免费在线网站| 一本无码高清| 高潮流水视频| 亚洲不卡在线观看| 黄片大全免费看| 国产综合av| 无码精品人妻一区二区三区漫画| 国产又粗又长的视频| 国产精品1| 免费毛片基地| 日韩一级黄色电影| 大鸡巴午夜爽视频电影| 四虎影院中文字幕| 粉嫩小泬BBBB免费看| 综合久久久久| 欧美日韩中| 五月婷婷导航| 亚洲午夜电影| 日韩中文字幕无码中字字幕| 美女黄色片| 影音先锋日韩| 亚洲综合免费观看| 午夜黄色| 最近中文字幕在线视频| 韩无码| 亚洲综合图色40p| 国产真实乱婬A片久久久老牛| 麻豆精品秘国产| 91av免费在线观看| 爱逼av| 777久久久| 日韩精品视频在线| 成人AV电影在线观看| 五月天丁香婷婷视频| 自慰一区二区| 特级西西444www无码视频免费看 | 中文字幕资源在线| 国产精品综合| 88AV在线播放| 黄色一级片网站| 你懂的视频在线观看| 成人网站在线| 六月婷婷五月天| 中文字幕人妻丝袜二区电影| 秘亚洲国产精品成人网站| 东方a在线| 九色在线观看| 免费毛片网站| 88av在线观看| 日韩中文字幕专区| 欧美日韩亚洲中文字幕| 97在线观看免费视频| 中文字幕无码AV| 亚洲国产高清在线观看视频| 人人肏人人射| 男人V天堂| 北条麻妃无码一区二区| 动漫3d啪啪成人h动漫| 脓肿是什么原因引起的,该怎么治疗 | 色香蕉网| 精品欧美视频| 欧美手机在线视频| 在线观看国产区| 强行征服邻居人妻HD高清日本 | 一本久道视频一本久道| 青青操成人在线视频| 欧美日本国产| 亚洲在线观看视频| 亚洲素人无码| 91无码人妻一区二区成人aⅴ| 92丨九色丨偷拍老熟女| 久草福利| 加勒比综合无码| 亚洲综合精品| 日韩人妻一区二区三区| 一级黄色在线观看| 懂色av懂色av粉嫩av| 国产艹| 免费a片在线观看| AA级黄色视频| 激情综| 九色一区| 翔田千里被操120分钟| 中国操逼毛片| 3p绿帽黑人看自己老婆| 久久久久久久国产| 亚洲av黄片| 激情丁香六月| 婷婷丁香六月| 国产做受| 欧美日韩国产成人在线| 午夜AV在线| 亚洲国产免费视频| 亚州成人视频| 超碰大香蕉| 亚洲婷婷在线观看| 免费av在线播放| 日韩精品成人专区无码| 黑人毛片91久久久久久| 国产操逼视频网站| 超碰自拍私拍二区三区区| 免费黄色a片| 国产激情片| 亚洲国产高清在线观看视频| 国产一级二级片| 抽插视频免费| 日韩中文字幕永久| 谁有毛片网址| 操老女人逼| 五月天久久综合| 欧美亚洲日韩中文字幕| 天天干强奸视频在线综合| 日韩,变态,另类,中文,人妻| 国产成人精品三级麻豆| 日本欧美成人片AAAA| 国产精品国产精品| 成人福利影视| 蝌蚪久久| 国产裸体美女网站| 91精品视频在线免费观看| 97热热| 日韩高清无码免费看| 性无码一区二区三区在线观看| 中文字幕婷婷| 国产69精品久久| 青草视频在线播放| 国产精品免费久久| 日本综合在线| 不卡精品| av在线资源网| 国产精品日韩欧美| 久一视频| 中文字幕日本欧美| 内射视频在线免费观看| 胖老板办公室沙发无套爆秘书 | www九九九| 国产日韩欧美| 日本男人天堂| 日韩无码不卡| 成人欧美精品| 91麻豆大奶巨乳一区白虎| 国产精品V亚洲精品V日韩精品| 日韩无码中字| 欧美精品乱码99久久蜜桃| 中文字幕有码视频| 午夜成人网站在线观看| 成人免费无码婬片在线| 国产三级黄色| 欧美色图在线视频| 69人人| 无码超碰| 亚洲天堂男人天堂| 日韩在线小视频| 日本亲子乱婬一级A片| 国产天堂| 婷婷射图| 久久无码成人| 无卡无码| 免费高清无码在线| 亚洲午夜无码| 欧美一级特黄真人做受| 影音先锋三级| 97人妻人人澡人人爽人人| 免费黄色视频在线观看| 麻豆一区二区三区四区| 99视频精品视频| 国产一级A片免费视频| 苍井空在线播放| 7777影视电视剧在线观看官网 | 中文最新天堂8√| 久久久午夜| AV在线直播| www.xxx国产| 大香蕉国产视频| 久久九九综合| 亚洲激情偷拍| 国产精品AV在线| 亚洲AV无码成人精品一区| 久久伊人大香蕉| 天堂一区二区三区18| AV超碰| 神马午夜久久| 神马午夜视频| 丁香婷婷久久久综合精品国产| 五月婷久久| 久久午夜无码鲁丝午夜精品| 3D动漫精品啪啪一区二区下载| 国产91探花精品一区二区 | 日本A级毛片| 亚洲AⅤ无码一区二区波多野按摩| 欧美国产在线观看综合| 成人h在线观看| 最近中文字幕无码| 97精品视频| 国产无遮挡A片又黄又爽小直播| 少妇高潮一区二区三区99| 亚洲v| 91蜜桃精品| 最近中文字幕在线观看| 黄网站在线观看| 日本在线精品视频| 蜜桃91在线| 开心色婷婷| 久久久久无码精品亚洲日韩| 无码福利视频| 成人在线看片| 国产A区| 欧美男人的天堂| 视频一二三区| AV在线观看黄| 中文二区| AV婷婷五月天| 亚洲AV无码精品岛国| 亚洲综合色网| 日本精品无码a62v在线| gogogo日本免费观看高清电视剧的注意 | 一区在线视频| 91视频内射| 一本色道久久| 444444在线观看免费高清电视剧木瓜一 | 欧美成人性爱网| 北条麻妃在线视频聊天| 国产午夜精品一区二区三区四区| 欧美综合网在线观看| 在线日韩视频| 有码一区二区三区| 免费黄片在线| 日韩精品成人在线视频| 黄片AV| 中文字幕亚洲综合| www.黄色电影| 蜜桃免费| 国产精品AV片| 少妇在线观看| 去干网欧美| 中文字幕35页| 中文亚洲视频| 色噜噜在线观看| 日韩无码高清视频| 国产一卡二卡三卡| 九九热av| 91久久久青青青青草| 日本绿色精品视频| 欧美日韩男女淫乱一区二区| 欧美视频在线播放| 国产激情视频在线播放| 少妇bbb搡bbbb搡bbbb| 91在线一区| 韩日成人| 97男人的天堂| 亚洲综合自拍| 无码福利电影| 西西人体444rt高清大胆模特| 爱爱免费看片| 成人激情四射网| 日韩AⅤ视频| 精品欧美激情精品一区| 亚洲人妻视频| 婷婷网址| 看毛片网址| 一级特黄色| 国产乱子伦无码视频免费| 青青无码视频| 日韩黄色视频在线观看| 久久91人妻无码精品蜜桃HD| 国产黄色录像| 久久免费观看视频| 日韩av一区二区三区| 欧美中文日韩| 欧美一区二区三区免费| 97人人人人人人| 青青草免费在线观看| 91视频在线观看免费大全| 精品人妻一区二区三区日产乱码| 人妻精品电影| 黄色网址av| 动图综合亚洲综合欧美男男| 五月丁香六月| 国产做受91| 亚洲激情五月天| www.yw尤物| 成人无码动漫A片| 福利毛片| 日韩国无码| 骚五月| 国产AV影片| 国产熟女一区二区| A片黄色电影网站| 日韩一片| 人人色人人看|