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

主頁 > 知識庫 > MySQL prepare原理詳解

MySQL prepare原理詳解

熱門標(biāo)簽:地圖標(biāo)注圖標(biāo)素材入駐 好搜地圖標(biāo)注 400電話申請什么好 怎么辦理400電話呢 百度地圖標(biāo)注地方備注 龍圖酒吧地圖標(biāo)注 電銷機(jī)器人價格多少錢一臺 電話機(jī)器人免費嗎 怎么申請400電話申請

Prepare的好處 

    Prepare SQL產(chǎn)生的原因。首先從mysql服務(wù)器執(zhí)行sql的過程開始講起,SQL執(zhí)行過程包括以下階段 詞法分析->語法分析->語義分析->執(zhí)行計劃優(yōu)化->執(zhí)行。詞法分析->語法分析這兩個階段我們稱之為硬解析。詞法分析識別sql中每個詞,語法分析解析SQL語句是否符合sql語法,并得到一棵語法樹(Lex)。對于只是參數(shù)不同,其他均相同的sql,它們執(zhí)行時間不同但硬解析的時間是相同的。而同一SQL隨著查詢數(shù)據(jù)的變化,多次查詢執(zhí)行時間可能不同,但硬解析的時間是不變的。對于sql執(zhí)行時間較短,sql硬解析的時間占總執(zhí)行時間的比率越高。而對于淘寶應(yīng)用的絕大多數(shù)事務(wù)型SQL,查詢都會走索引,執(zhí)行時間都比較短。因此淘寶應(yīng)用db sql硬解析占的比重較大。 

    Prepare的出現(xiàn)就是為了優(yōu)化硬解析的問題。Prepare在服務(wù)器端的執(zhí)行過程如下

 1)  Prepare 接收客戶端帶”?”的sql, 硬解析得到語法樹(stmt->Lex), 緩存在線程所在的preparestatement cache中。此cache是一個HASH MAP. Key為stmt->id. 然后返回客戶端stmt->id等信息。

 2)  Execute 接收客戶端stmt->id和參數(shù)等信息。注意這里客戶端不需要再發(fā)sql過來。服務(wù)器根據(jù)stmt->id在preparestatement cache中查找得到硬解析后的stmt, 并設(shè)置參數(shù),就可以繼續(xù)后面的優(yōu)化和執(zhí)行了。

    Prepare在execute階段可以節(jié)省硬解析的時間。如果sql只執(zhí)行一次,且以prepare的方式執(zhí)行,那么sql執(zhí)行需兩次與服務(wù)器交互(Prepare和execute), 而以普通(非prepare)方式,只需要一次交互。這樣使用prepare帶來額外的網(wǎng)絡(luò)開銷,可能得不償失。我們再來看同一sql執(zhí)行多次的情況,比如以prepare方式執(zhí)行10次,那么只需要一次硬解析。這時候  額外的網(wǎng)絡(luò)開銷就顯得微乎其微了。因此prepare適用于頻繁執(zhí)行的SQL。

    Prepare的另一個作用是防止sql注入,不過這個是在客戶端jdbc通過轉(zhuǎn)義實現(xiàn)的,跟服務(wù)器沒有關(guān)系。
硬解析的比重

   壓測時通過perf 得到的結(jié)果,硬解析相關(guān)的函數(shù)比重都比較靠前(MYSQLparse 4.93%, lex_one_token 1.79%, lex_start 1.12%)總共接近8%。因此,服務(wù)器使用prepare是可以帶來較多的性能提升的。

jdbc與prepare 

  jdbc服務(wù)器端的參數(shù):

   useServerPrepStmts:默認(rèn)為false. 是否使用服務(wù)器prepare開關(guān)

 jdbc客戶端參數(shù):

   cachePrepStmts:默認(rèn)false.是否緩存prepareStatement對象。每個連接都有一個緩存,是以sql為唯一標(biāo)識的LRU cache. 同一連接下,不同stmt可以不用重新創(chuàng)建prepareStatement對象。

  prepStmtCacheSize:LRU cache中prepareStatement對象的個數(shù)。一般設(shè)置為最常用sql的個數(shù)。

  prepStmtCacheSqlLimit:prepareStatement對象的大小。超出大小不緩存。

 Jdbc對prepare的處理過程: 

useServerPrepStmts=true時Jdbc對prepare的處理

  1)  創(chuàng)建PreparedStatement對象,向服務(wù)器發(fā)送COM_PREPARE命令,并傳送帶問號的sql. 服務(wù)器返回jdbc stmt->id等信息

  2)  向服務(wù)器發(fā)送COM_EXECUTE命令,并傳送參數(shù)信息。

 useServerPrepStmts=false時Jdbc對prepare的處理

  1)  創(chuàng)建PreparedStatement對象,此時不會和服務(wù)器交互。

  2) 根據(jù)參數(shù)和PreparedStatement對象拼接完整的SQL,向服務(wù)器發(fā)送QUERY命令

  我們再看參數(shù)cachePrepStmts打開時在useServerPrepStmts為true或false時,均緩存PreparedStatement對象。只不過useServerPrepStmts為的true緩存PreparedStatement對象包含服務(wù)器的stmt->id等信息,也就是說如果重用了PreparedStatement對象,那么就省去了和服務(wù)器通訊(COM_PREPARE命令)的開銷。而useServerPrepStmts=false是,開啟cachePrepStmts緩存PreparedStatement對象只是簡單的sql解析信息,因此此時開啟cachePrepStmts意義不是太大。

我們來開看一段java代碼 

Connection con = null;
      PreparedStatement ps = null;
      String sql = "select * from user where id=?";
      ps = con.prepareStatement(sql);      
      ps.setInt(1, 1);‍‍      
      ps.executeQuery();      
      ps.close();      
      ps = con.prepareStatement(sql);      
      ps.setInt(1, 3);      
      ps.executeQuery();      
      ps.close();

這段代碼在同一會話中兩次prepare執(zhí)行同一語句,并且之間有ps.close();

    useServerPrepStmts=false時,服務(wù)器會兩次硬解析同一SQL。

   useServerPrepStmts=true, cachePrepStmts=false時服務(wù)器仍然會兩次硬解析同一SQL。

   useServerPrepStmts=true, cachePrepStmts=true時服務(wù)器只會硬解析一次SQL。

   如果兩次prepare之間沒有ps.close();那么cachePrepStmts=true,cachePrepStmts=false也只需一次硬解析. 

   因此,客戶端對同一sql,頻繁分配和釋放PreparedStatement對象的情況下,開啟cachePrepStmts參數(shù)是很有必要的。

測試

  1)做了一個簡單的測試,主要測試prepare的效果和useServerPrepStmts參數(shù)的影響.    

cnt = 5000;
    // no prepare
    String sql = "select biz_order_id,out_order_id,seller_nick,buyer_nick,seller_id,buyer_id,auction_id,auction_title,auction_price,buy_amount,biz_type,sub_biz_type,fail_reason,pay_status,logistics_status,out_trade_status,snap_path,gmt_create,status,ifnull(buyer_rate_status, 4) buyer_rate_status from tc_biz_order_0030 where " +
    "parent_id = 594314511722841 or parent_id =547667559932641;";
    begin = new Date();
    System.out.println("begin:" + df.format(begin));
    stmt = con.createStatement();
    for (int i = 0; i  cnt; i++)
    {      
      stmt.executeQuery(sql);
    } 
    end = new Date();
    System.out.println("end:" + df.format(end));
    long temp = end.getTime() - begin.getTime();
    System.out.println("no perpare interval:" + temp);
    
    // test prepare    
    sql = "select biz_order_id,out_order_id,seller_nick,buyer_nick,seller_id,buyer_id,auction_id,auction_title,auction_price,buy_amount,biz_type,sub_biz_type,fail_reason,pay_status,logistics_status,out_trade_status,snap_path,gmt_create,status,ifnull(buyer_rate_status, 4) buyer_rate_status from tc_biz_order_0030 where " +
        "parent_id = 594314511722841 or parent_id =?;";
    ps = con.prepareStatement(sql);
    BigInteger param = new BigInteger("547667559932641");
    begin = new Date();
    System.out.println("begin:" + df.format(begin));
    for (int i = 0; i  cnt; i++)
    {
      ps.setObject(1, param);
      ps.executeQuery(); 
    } 
    end = new Date();
    System.out.println("end:" + df.format(end));
    temp = end.getTime() - begin.getTime();
    System.out.println("prepare interval:" + temp);

經(jīng)多次采樣測試結(jié)果如下

非prepare和prepare時間比
useServerPrepStmts=true 0.93
useServerPrepStmts=false 1.01

結(jié)論:

useServerPrepStmts=true時,prepare提升7%;

useServerPrepStmts=false時,prepare與非prepare性能相當(dāng)。

如果將語句簡化為select * from tc_biz_order_0030 where parent_id =?。那么測試的結(jié)論useServerPrepStmts=true時,prepare僅提升2%;sql越簡單硬解析的時間就越少,prepare的提升就越少。

注意:這個測試是在單個連接,單條sql的理想情況下進(jìn)行的,線上會出現(xiàn)多連接多sql,還有sql執(zhí)行頻率,sql的復(fù)雜程度等不同,因此prepare的提升效果會隨具體環(huán)境而變化。

2)prepare 前后的perf top 對比 

以下為非prepare

6.46%  mysqld mysqld       [.] _Z10MYSQLparsePv
   3.74%  mysqld libc-2.12.so    [.] __memcpy_ssse3
   2.50%  mysqld mysqld       [.] my_hash_sort_utf8
   2.15%  mysqld mysqld       [.] cmp_dtuple_rec_with_match
   2.05%  mysqld mysqld       [.] _ZL13lex_one_tokenPvS_
   1.46%  mysqld mysqld       [.] buf_page_get_gen
   1.34%  mysqld mysqld       [.] page_cur_search_with_match
   1.31%  mysqld mysqld       [.] _ZL14build_templateP19row_prebuilt_structP3THDP5TABLEj
   1.24%  mysqld mysqld       [.] rec_init_offsets
   1.11%  mysqld libjemalloc.so.1  [.] free
   1.09%  mysqld mysqld       [.] rec_get_offsets_func
   1.01%  mysqld libjemalloc.so.1  [.] malloc
   0.96%  mysqld libc-2.12.so    [.] __strlen_sse42
   0.93%  mysqld mysqld       [.] _ZN4JOIN8optimizeEv
   0.91%  mysqld mysqld       [.] _ZL15get_hash_symbolPKcjb
   0.88%  mysqld mysqld       [.] row_search_for_mysql
   0.86%  mysqld [kernel.kallsyms]  [k] tcp_recvmsg

以下為perpare 

3.46%  mysqld libc-2.12.so    [.] __memcpy_ssse3
   2.32%  mysqld mysqld       [.] cmp_dtuple_rec_with_match
   2.14%  mysqld mysqld       [.] _ZL14build_templateP19row_prebuilt_structP3THDP5TABLEj
   1.96%  mysqld mysqld       [.] buf_page_get_gen
   1.66%  mysqld mysqld       [.] page_cur_search_with_match
   1.54%  mysqld mysqld       [.] row_search_for_mysql
   1.44%  mysqld mysqld       [.] btr_cur_search_to_nth_level
   1.41%  mysqld libjemalloc.so.1  [.] free
   1.35%  mysqld mysqld       [.] rec_init_offsets
   1.32%  mysqld [kernel.kallsyms]  [k] kfree
   1.14%  mysqld libjemalloc.so.1  [.] malloc
   1.08%  mysqld [kernel.kallsyms]  [k] fget_light
   1.05%  mysqld mysqld       [.] rec_get_offsets_func
   0.99%  mysqld mysqld       [.] _ZN8Protocol24send_result_set_metadataEP4ListI4ItemEj
   0.90%  mysqld mysqld       [.] sync_array_print_long_waits
   0.87%  mysqld mysqld       [.] page_rec_get_n_recs_before
   0.81%  mysqld mysqld       [.] _ZN4JOIN8optimizeEv
   0.81%  mysqld libc-2.12.so    [.] __strlen_sse42
   0.78%  mysqld mysqld       [.] _ZL20make_join_statisticsP4JOINP10TABLE_LISTP4ItemP16st_dynamic_array
   0.72%  mysqld [kernel.kallsyms]  [k] tcp_recvmsg
   0.63%  mysqld libpthread-2.12.so [.] __pthread_getspecific_internal
   0.63%  mysqld [kernel.kallsyms]  [k] sk_run_filter
   0.60%  mysqld mysqld       [.] _Z19find_field_in_tableP3THDP5TABLEPKcjbPj
   0.60%  mysqld mysqld       [.] page_check_dir
   0.57%  mysqld mysqld       [.] _Z16dispatch_command19enum_server_commandP3THDP

 對比可以發(fā)現(xiàn) MYSQLparse lex_one_token在prepare時已優(yōu)化掉了。

思考

  1 開啟cachePrepStmts的問題,前面談到每個連接都有一個緩存,是以sql為唯一標(biāo)識的LRU cache. 在分表較多,大連接的情況下,可能會個應(yīng)用服務(wù)器帶來內(nèi)存問題。這里有個前提是ibatis是默認(rèn)使用prepare的。 在mybatis中,標(biāo)簽statementType可以指定某個sql是否是使用prepare.

statementType Any one of STATEMENT, PREPARED or CALLABLE. This causes MyBatis to use Statement, PreparedStatement orCallableStatement respectively. Default: PREPARED.

這樣可以精確控制只對頻率較高的sql使用prepare,從而控制使用prepare sql的個數(shù),減少內(nèi)存消耗。遺憾的是目前集團(tuán)貌似大多使用的是ibatis 2.0版本,不支持statementType
標(biāo)簽。

    2 服務(wù)器端prepare cache是一個HASH MAP. Key為stmt->id,同時也是每個連接都維護(hù)一個。因此也有可能出現(xiàn)內(nèi)存問題,待實際測試。如有必要需改造成Key為sql的全局cache,這樣不同連接的相同prepare sql可以共享。 

   3 oracle prepare與mysql prepare的區(qū)別:

     mysql與oracle有一個重大區(qū)別是mysql沒有oracle那樣的執(zhí)行計劃緩存。前面我們講到SQL執(zhí)行過程包括以下階段 詞法分析->語法分析->語義分析->執(zhí)行計劃優(yōu)化->執(zhí)行。oracle的prepare實際上包括以下階段:詞法分析->語法分析->語義分析->執(zhí)行計劃優(yōu)化,也就是說oracle的prepare做了更多的事情,execute只需要執(zhí)行即可。因此,oracle的prepare比mysql更高效。

總結(jié)

以上就是本文關(guān)于MySQL prepare原理詳解的全部內(nèi)容,感興趣的朋友可以參閱本站其他相關(guān)專題,有什么問題或者需要的文章或者書籍和源碼可以隨時留言,小編將竭誠為您解答。感謝大家對本站的支持。

您可能感興趣的文章:
  • MySQL中預(yù)處理語句prepare、execute與deallocate的使用教程
  • php+mysql prepare 與普通查詢的性能對比實例講解
  • PHP5 mysqli的prepare準(zhǔn)備語句使用說明
  • MySQL prepare語句的SQL語法

標(biāo)簽:撫順 汕尾 固原 廣西 浙江 溫州 防疫工作 內(nèi)江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL prepare原理詳解》,本文關(guān)鍵詞  MySQL,prepare,原理,詳解,MySQL,;如發(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 prepare原理詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL prepare原理詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产三级三级三级看三级| 亚洲精品成人在线| 久久精品国产亚洲精品2020| 成在在线免费视频| 中国视频免男男gay| 福利一区福利二区微拍刺激| 日韩精品电影在线观看| 涩涩视频免费观看| 真人抽搐一进一出视频| 国产乱人乱偷精品视频a人人澡| 91大学生片黄在线观看| 男女羞羞视频网站| 女生裸体视频网站免费观看| 欧美永久精品| 成人黄色生活片| 亚洲精品一区二区三区新线路| 日韩电影在线观看网站| 精品久久久久久久久久久久久久久久久久| 无码人妻aⅴ一区二区三区有奶水| 成年网站在线视频网站| 欧美岛国激情| 午夜成人鲁丝片午夜精品| 国产91一区二区三区| 最近免费中文字幕视频2019| 91大学生片黄在线观看| 国产男男gay网站| 日本aⅴ精品一区二区三区| 中文字幕丰满乱子伦无码专区| 免费自拍视频| 性高湖久久久久久久久aaaaa| 日韩高清在线电影| 99tv成人影院| 在线视频xx| 国产又爽又黄网站亚洲视频123| 日韩av日韩在线观看| 日韩欧美高清一区| 中文字幕视频网| 99久久精品免费看国产四区| 天天干天天爽天天操| 日韩成人在线观看视频| 久久久精品免费免费| 国产网红女主播精品视频| 成午夜精品一区二区三区软件| 精品区一区二区| 亚洲小说欧美另类激情| 中文字幕在线播放| 色综合网站在线| 一级做a爰片久久毛片| 中文字幕久热在线精品| 国产在线麻豆精品观看| 亚洲国产精品国自产拍av| 国产成人久久精品77777最新版本| 青青国产在线观看| 欧美大片1688| 日本视频免费观看| 国产在线免费视频| 亚洲欧美在线播放| 丰满的少妇愉情hd高清果冻传媒| 久久久久网站| 日韩在线视频免费观看| 男人的天堂在线视频免费观看| 久草在现在线| 免费在线观看91| 国产在线拍偷自揄拍精品| 国产无遮无挡120秒| 欧美在线观看黄| www.久久久久.com| 国产九九在线| 国产一级影片| 天堂va在线高清一区| 岛国大片在线免费观看| 免费的成人av| 亚洲国产欧美精品| 久久伊人影院| 国产一区免费在线观看| 国产一区二区三区在线观看精品| 一本岛在线视频| 伊人网在线综合| 免费观看成人鲁鲁鲁鲁鲁视频| 一本色道精品久久一区二区三区| 日韩理论电影大全| 精品午夜福利视频| 免费在线看v| 日本激情小视频| 亚洲一区二区三区小说| 在线视频xx| 日韩精品视频在线观看网址| 一本久道高清无码视频| 中文字幕精品视频在线观看| 国内精品免费一区二区三区| 日韩中文字幕影院| 一级片在线免费观看视频| 国产精品久久久久影院日本| 亚洲自拍偷拍一区二区三区| 欧美日本色图| 亚洲欧美高清视频| 97在线看免费观看视频在线观看| 精品亚洲一区二区三区四区五区高| 国产精品成人一区二区三区夜夜夜| 一区二区三区在线观看国产| 久久久亚洲人| 国内精品久久久久久久影视简单| 噜噜噜狠狠夜夜躁精品仙踪林| 国产精品88av| 精品视频一区二区三区四区| 中文字幕42页丝袜| 国内免费精品永久在线视频| 久久电影网电视剧免费观看| 狠狠色噜噜狠狠狠8888米奇| 国产精品初高中精品久久| 在线国产三级| 性欧美极品xxxx欧美一区二区| 国产精品福利一区二区| 2017亚洲天堂| 亚洲欧美www| 欧美一级片在线播放| 日韩欧美国产片| 动漫美女无遮挡免费| 精品国产一区二区亚洲人成毛片| wwwxxx在线观看| 精品福利在线视频| 国产在线观看不卡一区二区三区| 亚洲欧洲美洲在线综合| 色天天色综合| 亚洲国产欧美日韩在线观看第一区| 日韩一区二区电影网| 日韩av综合网站| 国产美女做爰免费视频软件| 另类小说一区二区三区| 毛片在线播放视频| 网站黄在线观看| 亚洲欧美日韩一区在线| 国产 日韩 欧美 精品| 免费在线播放第一区高清av| 3d精品h动漫啪啪一区二区| 嫩模私拍啪啪| 在线免费观看黄色小视频| 欧美日韩一区二区三区在线观看免| 亚洲一区图片| 痴汉一区二区三区| 一区二区动漫| 国产欧美日韩中文| 夜夜嗨av一区二区三区四区| 北条麻妃国产九九精品视频| 一区二区三区四区免费| 99re这里只有精品首页| 一级特黄aaa大片| 先锋欧美三级| 免费国产羞羞网站美图| 成人免费高清视频| 99精品视频在线看| 亚洲偷熟乱区亚洲香蕉av| 欧美精品成人久久| 日韩一区二区视频在线观看| 精品国偷自产在线视频99| 欧美性xxxxx极品| 国产一级久久久久毛片精品| 亚洲欧美日韩天堂| 1234区中文字幕在线观看| 在线观看高清免费视频| 国产精品裸体一区二区三区| 性欧美1819sex性高清| 91在线观看入口| 欧美在线一区视频| 国产精品久久久久久久久婷婷| 国产视频精品在线| 91久久奴性调教| 国产精品福利影院| 深夜福利在线视频| 女女互磨互喷水高潮les呻吟| 黄色日韩精品| 精品亚洲永久免费精品| 欧美乱大交xxxxx另类电影| 亚洲a在线播放| 美女大黄三级视频在线观看| 137大胆人体在线观看| 久久伊人国产| 99蜜桃臀久久久欧美精品网站| caopo在线| 日本一区视频在线播放| 99久久久久久99| 中文字幕久久av| 亚洲精品欧美一区二区三区| 91久久精品国产| 亚洲色图图片| 成人av电影在线观看| 国产日韩在线观看av| 欧美激情视频一区二区| 一区二区亚洲精品| 五月婷婷开心网| 欧美午夜精品理论片a级大开眼界| 亚洲小说区图片区情欲小说| 中文字幕av一区二区三区人| 杨幂一区二区三区免费看视频| 国产一区二区h| 日韩五码电影| 97欧洲一区二区精品免费| 亚洲mv在线| 欧洲精品亚洲精品| 色中色在线视频| 欧美日韩999| av免费播放网址| 精品无码一区二区三区爱欲| 国产专区欧美精品| 国产女片a归国片aa| 精品久久久久久中文字幕动漫| 视频亚洲一区二区| 97精品视频在线观看自产线路二| 国产va在线视频| 亚洲人成毛片在线播放女女| 日韩精品在线视频免费观看| 青青视频一区二区| 国产精品国产三级国产aⅴ原创| 粉嫩av在线播放| 国产又黄又粗又猛又爽| 日韩毛片高清在线播放| 九色porny丨国产精品| 狠狠色成人综合网图片区| 日韩在线欧美在线| 夜色激情一区二区| 精品人妻一区二区三区潮喷在线| 黄色网址网站在线观看| 欧美国产偷国产精品三区| 中文字幕成人动漫| 欧美18一12sex性处hd| 欧美羞羞免费网站| 日韩影院一区| 亚洲人成7777| 99在线视频免费| 成人在线电影在线观看视频| 国产三级视频在线看| 蜜桃传媒一区二区| 91免费网站视频| 蜜桃av噜噜一区二区三区小说| 在线电影欧美成精品| 污污视频网站在线| 日韩一级大片在线观看| 91视频网页| 啦啦啦在线视频免费观看高清中文| 亚洲综合在线观看视频| 一级黄色免费视频| 中文字幕一区在线观看| 在线满18网站观看视频| 日本精品视频网站| 涩涩视频在线观看免费| 亚洲电影免费观看| 亚洲一级毛片| 精品精品国产国产自在线| www.av欧美| 国产免费黄色一级片| 日韩电影大全免费观看2023年上| 日韩福利片在线观看| 九九九久久久久| 一区二区三区视频国产日韩| 激情久久五月| 午夜精品蜜臀一区二区三区免费| 深夜福利视频网站| 国内激情久久| 亚洲精品综合在线观看| 欧美另类videosbest视频| 欧美一区二区三区久久久| 五月婷婷激情综合| 国产模特av私拍大尺度| 午夜精品影视国产一区在线麻豆| 麻豆视频网站在线观看| 亚洲天堂免费电影| 综合欧美视频一区二区三区| 超薄丝袜一区二区| 麻豆精品一区二区综合av| 51视频国产精品一区二区| 日本在线播放一二三区| 无尽裸体动漫2d在线观看| 亚洲丝袜美腿一区| 欧美大胆一级视频| 美女国产一区二区三区| 91片在线免费观看| 国产欧美一区二区三区久久人妖| 亚洲社区在线观看| 日本欧洲一区| 666欧美在线视频| 亚洲精品一区二区久| 欧美精品视频www在线观看| 欧美第一淫aaasss性| 无码人妻av一区二区三区波多野| 免费一区二区三区视频导航| 亚洲欧美激情一区二区| 成网站在线观看人免费| jjzzjjzzjjzz| 青青草97国产精品免费观看无弹窗版| 黄色小视频在线免费看| 精品国产免费一区二区三区香蕉| 4438全国亚洲精品在线观看视频| 亚洲欧美卡通动漫| 日产欧产va高清| 国产精品啊v在线| 欧美乱妇视频| 福利视频理论电影| 国产大学生av| 日韩欧美中文字幕公布| 久久久久久国产精品日本| 国产精品午夜福利| 久久久久久久久亚洲| 9i看片成人免费高清| 国产一区二区中文| 亚洲高清不卡一区| 国产欧美日韩综合精品二区| 91福利精品在线观看| www.欧美日本韩国| 黑人与娇小精品av专区| 夜夜操夜夜操| 91麻豆精品国产91久久久久推荐资源| 3d成人动漫网站| 国产亚洲欧美日韩高清| 久久不卡免费视频| 久久久久网址| 亚洲欧洲视频在线观看| 精品亚洲成a人片在线观看| 日韩一区免费观看| 91地址最新发布| 亚洲黄色片免费| 久草手机在线视频| 成人在线免费看片| 天堂精品久久久久| 成年人视频网址| av一本久道久久波多野结衣| 亚洲乱码中文字幕综合| 国产xxx69麻豆国语对白| 性高湖久久久久久久久|