国产无遮挡裸体免费直播视频,久久精品国产蜜臀av,动漫在线视频一区二区,欧亚日韩一区二区三区,久艹在线 免费视频,国产精品美女网站免费,正在播放 97超级视频在线观看,斗破苍穹年番在线观看免费,51最新乱码中文字幕

MYSQL METADATA LOCK(MDL LOCK) 理論及加鎖類型測(cè)試

 更新時(shí)間:2021年09月01日 17:26:12   作者:gaopengtttt  
這篇文章主要介紹了MYSQL METADATA LOCK(MDL LOCK)的內(nèi)容,有理論知識(shí)和加鎖類型測(cè)試的以下代碼,感興趣的朋友請(qǐng)參考下午文

MYSQL METADATA LOCK(MDL LOCK)學(xué)習(xí) 理論知識(shí)和加鎖類型測(cè)試

前言:

源碼版本:5.7.14
注意MDL和DML術(shù)語的不同

 一、初步了解

MYSQL中MDL鎖一直是一個(gè)比較讓人比較頭疼的問題,我們談起鎖一般更加傾向于INNODB下層的gap lock、next key lock、row lock等,
因?yàn)樗芎美斫猓埠芎糜^察,而對(duì)于MDL LOCK卻了解得很少,因?yàn)樗鼘?shí)在不好觀察,只有出現(xiàn)問題查看show processlist勉強(qiáng)可以看到
簡(jiǎn)單的所謂的Waiting for table metadata lock之類的狀態(tài),其實(shí)MDL LOCK是MYSQL上層一個(gè)非常復(fù)雜的子系統(tǒng),有自己的死鎖檢測(cè)機(jī)制
(無向圖?)而大家一般口中的是不是鎖表了其實(shí)就是指的它,可見的它的關(guān)鍵性和嚴(yán)重性,筆者也是根據(jù)自己的需求學(xué)習(xí)了一些(冰山一角),
而沒有能力閱讀全部的代碼,但是筆者通過增加一個(gè)TICKET的打印函數(shù)讓語句的MDL LOCK加鎖流程全部打印出來方便學(xué)習(xí)研究,下面從
一些基礎(chǔ)說起然后告訴大家修改了哪些東西,最后對(duì)每種MDL TYPE進(jìn)行測(cè)試和分析,如果大家對(duì)基本概念和增加打印函數(shù)不感興趣可
直接參考第五部分加鎖測(cè)試,但是如果不了解基礎(chǔ)知識(shí)可能看起來有點(diǎn)困難。 
   剛好最近遇到一次MDL LOCK出現(xiàn)死鎖的情況會(huì)在下篇文章中給出案例,這里只看理論

----處于層次:MYSQL SERVER層次,實(shí)際上早在open_table函數(shù)中MDL LOCK就開始獲取了,可以說他是最早獲取的LOCK結(jié)構(gòu)
----最早獲取階段: THD::enter_stage: 'Opening tables'

調(diào)用棧幀:

#0 open_table_get_mdl_lock (thd=0x7fffd0000df0, ot_ctx=0x7fffec06fb00,
    table_list=0x7fffd00067d8, flags=0, mdl_ticket=0x7fffec06f950)
    at /root/mysql5.7.14/percona-server-5.7.14-7/sql/sql_base.cc:2789
#1 0x0000000001516e17 in open_table (thd=0x7fffd0000df0,
    table_list=0x7fffd00067d8, ot_ctx=0x7fffec06fb00)
    at /root/mysql5.7.14/percona-server-5.7.14-7/sql/sql_base.cc:3237

----死鎖檢測(cè)出錯(cuò)碼:

{ "ER_LOCK_DEADLOCK", 1213, "Deadlock found when trying to get lock; try restarting transaction" },
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction

MDL LOCK的死鎖拋錯(cuò)和INNODB死鎖一模一樣不同的只是SHOW ENGINE INNODB 沒有死鎖信息。
----涉及代碼:mdl.h mdl.cc

二、基礎(chǔ)重要的數(shù)據(jù)結(jié)構(gòu)(類)和概念

1、MDL TYPE

MDL_INTENTION_EXCLUSIVE(IX)
MDL_SHARED(S)
MDL_SHARED_HIGH_PRIO(SH)
MDL_SHARED_READ(SR)
MDL_SHARED_WRITE(SW)
MDL_SHARED_WRITE_LOW_PRIO(SWL)
MDL_SHARED_UPGRADABLE(SU)
MDL_SHARED_READ_ONLY(SRO)
MDL_SHARED_NO_WRITE(SNW)
MDL_SHARED_NO_READ_WRITE(SNRW)
MDL_EXCLUSIVE(X)

后面會(huì)對(duì)每種TYPE進(jìn)行詳細(xì)的測(cè)試,最后也會(huì)給出源碼中解釋

2、MDL NAMESPACE

在MDL中MDL_KEY按照NAMESPACE+DB+OBJECT_NAME的方式進(jìn)行表示,所謂的namespace也不叫重要
下面是NAMESPACE的分類

- GLOBAL is used for the global read lock.
     - TABLESPACE is for tablespaces.
     - SCHEMA is for schemas (aka databases).
     - TABLE is for tables and views.
     - FUNCTION is for stored functions.
     - PROCEDURE is for stored procedures.
     - TRIGGER is for triggers.
     - EVENT is for event scheduler events.
     - COMMIT is for enabling the global read lock to block commits.
     - USER_LEVEL_LOCK is for user-level locks.
     - LOCKING_SERVICE is for the name plugin RW-lock service

3、實(shí)現(xiàn)分類

scope lock:一般對(duì)應(yīng)全局MDL LOCK flush table with read lock namespace space:GLOBAL type:S
object lock:如其名字,對(duì)象級(jí)別的MDL LOCK,比如TABLE
下面是源碼中的注釋:

 /**
    Helper struct which defines how different types of locks are handled
    for a specific MDL_lock. In practice we use only two strategies: "scoped"
    lock strategy for locks in GLOBAL, COMMIT, TABLESPACE and SCHEMA namespaces
    and "object" lock strategy for all other namespaces.
  */

4、MDL兼容矩陣

scope lock:    

| Type of active   |
  Request |   scoped lock    |
   type   | IS(*)  IX   S  X |
 ---------+------------------+
 IS       |  +      +   +  + |
 IX       |  +      +   -  - |
 S        |  +      -   +  - |
 X        |  +      -   -  - |

object lock:  

Request  |  Granted requests for lock            |
        type    | S  SH  SR  SW  SWLP  SU  SRO  SNW  SNRW  X  |
      ----------+---------------------------------------------+
      S         | +   +   +   +    +    +   +    +    +    -  |
      SH        | +   +   +   +    +    +   +    +    +    -  |
      SR        | +   +   +   +    +    +   +    +    -    -  |
      SW        | +   +   +   +    +    +   -    -    -    -  |
      SWLP      | +   +   +   +    +    +   -    -    -    -  |
      SU        | +   +   +   +    +    -   +    -    -    -  |
      SRO       | +   +   +   -    -    +   +    +    -    -  |
      SNW       | +   +   +   -    -    -   +    -    -    -  |
      SNRW      | +   +   -   -    -    -   -    -    -    -  |
      X         | -   -   -   -    -    -   -    -    -    -  |

5、MDL duration及MDL持續(xù)到什么時(shí)候

看源碼注釋:

MDL_STATEMENT:Locks with statement duration are automatically released at the end
              of statement or transaction.
MDL_TRANSACTION: Locks with transaction duration are automatically released at the end
                of transaction
MDL_EXPLICIT:Locks with explicit duration survive the end of statement and transaction.
             They have to be released explicitly by calling MDL_context::release_lock().

6、MDL LOCK FAST PATH(unobtrusive) OR SLOW PATH(obtrusive)

使用兩種不同的方式目的在于優(yōu)化MDL lock的實(shí)現(xiàn),下面是源碼的注釋

A) "unobtrusive" lock types
            1) Each type from this set should be compatible with all other
               types from the set (including itself).
            2) These types should be common for DML operations
          Our goal is to optimize acquisition and release of locks of this
          type by avoiding complex checks and manipulations on m_waiting/
          m_granted bitmaps/lists. We replace them with a check of and
          increment/decrement of integer counters.
          We call the latter type of acquisition/release "fast path".
          Use of "fast path" reduces the size of critical section associated
          with MDL_lock::m_rwlock lock in the common case and thus increases
          scalability.
          The amount by which acquisition/release of specific type
          "unobtrusive" lock increases/decreases packed counter in
          MDL_lock::m_fast_path_state is returned by this function.
B) "obtrusive" lock types
            1) Granted or pending lock of those type is incompatible with
               some other types of locks or with itself.
            2) Not common for DML operations
          These locks have to be always acquired involving manipulations on
          m_waiting/m_granted bitmaps/lists, i.e. we have to use "slow path"
          for them. Moreover in the presence of active/pending locks from
          "obtrusive" set we have to acquire using "slow path" even locks of
          "unobtrusive" type.

7、MDL_request類

也就是通過語句解析后需要獲得的MDL LOCK的需求,然后通過這個(gè)類對(duì)象在MDL子系統(tǒng) 中進(jìn)行MDL LOCK申請(qǐng),大概包含如下一些屬性

/** Type of metadata lock. */
  enum enum_mdl_type type; //需求的類型
  /** Duration for requested lock. */
  enum enum_mdl_duration duration; //持續(xù)時(shí)間
  /**
    Pointers for participating in the list of lock requests for this context.
  */
  MDL_request *next_in_list; //雙向鏈表實(shí)現(xiàn)
  MDL_request **prev_in_list;
  /**
    Pointer to the lock ticket object for this lock request.
    Valid only if this lock request is satisfied.
  */
  MDL_ticket *ticket; //注意這里如果申請(qǐng)成功(沒有等待),會(huì)指向一個(gè)實(shí)際的TICKET,否則為NULL
  /** A lock is requested based on a fully qualified name and type. */
  MDL_key key;//注意這里是一個(gè)MDL_KEY類型,主要的就是前面說的NAMESPACE+DB+OBJECT_NAME

7、MDL_key類

就是實(shí)際的NAMESPACE+DB+OBJECT_NAME,整個(gè)放到一個(gè)char數(shù)組里面,他會(huì)是MDL_LOCKMDL_REQUEST中出現(xiàn)
private:

  uint16 m_length;
  uint16 m_db_name_length;
  char m_ptr[MAX_MDLKEY_LENGTH];//放到了這里

8、MDL_ticket

如同門票一樣,如果獲取了MDL LOCK必然給MDL_request返回一張門票,如果等待則不會(huì)源碼MDL_context::acquire_lock
   可以觀察到。當(dāng)然這也是我主要觀察的一個(gè)類

/**
    Pointers for participating in the list of lock requests for this context.
    Context private.正如解釋這里是context中鏈表鏈表的形成,是線程私有的
  */
  MDL_ticket *next_in_context;
  MDL_ticket **prev_in_context;
  /**
    Pointers for participating in the list of satisfied/pending requests
    for the lock. Externally accessible.正如解釋這里是MDL_LOCK中鏈表鏈表的形成,是全局的
  */
  MDL_ticket *next_in_lock;
  MDL_ticket **prev_in_lock;
/**
    Context of the owner of the metadata lock ticket. Externally accessible.
    很明顯這里指向了這個(gè)ticket的擁有者也就是MDL_context,它是線程的屬性
  */
  MDL_context *m_ctx;


  /**
    Pointer to the lock object for this lock ticket. Externally accessible.
    很明顯這里是一個(gè)指向MDL_LOCK的一個(gè)指針
  */
  MDL_lock *m_lock;


  /**
    Indicates that ticket corresponds to lock acquired using "fast path"
    algorithm. Particularly this means that it was not included into
    MDL_lock::m_granted bitmap/list and instead is accounted for by
    MDL_lock::m_fast_path_locks_granted_counter
    這里就代表了是否是FAST PATH從注釋來看fast path方式不會(huì)在MDL LOCK中
    占用granted位圖和鏈表取而代之代之的是一個(gè)統(tǒng)計(jì)器m_fast_path_locks_granted_counter
    這樣一來開銷肯定更小
  */
  bool m_is_fast_path;


  /**
    Indicates that ticket corresponds to lock request which required
    storage engine notification during its acquisition and requires
    storage engine notification after its release.
  */
  bool m_hton_notified;

9、MDL_lock

每一個(gè)MDL_key都會(huì)對(duì)應(yīng)一個(gè)MDL_lock,其中包含了所謂的GRANTED鏈表和WAIT鏈表,考慮它的復(fù)雜性,可以直接參考源碼注釋也非常詳細(xì),這里給出我所描述的幾個(gè)屬性。

/** The key of the object (data) being protected. */
  MDL_key key;
/** List of granted tickets for this lock. */
  Ticket_list m_granted;
/** Tickets for contexts waiting to acquire a lock. */
  Ticket_list m_waiting;

10、MDL_context

這是整個(gè)MYSQL 線程和MDL lock子系統(tǒng)進(jìn)行交互的一個(gè)所謂的上下文結(jié)構(gòu)其中包含了很多方法和屬性,我比較關(guān)注的屬性如下:

/**
    If our request for a lock is scheduled, or aborted by the deadlock
    detector, the result is recorded in this class.
  */
  MDL_wait m_wait;
/**
    Lists of all MDL tickets acquired by this connection.
    這是一個(gè)不同MDL lock持續(xù)時(shí)間的一個(gè)鏈表數(shù)組。實(shí)際就是
    MDL_STATEMENT一個(gè)鏈表
    MDL_TRANSACTION一個(gè)鏈表
    MDL_EXPLICIT一個(gè)鏈表
  */
Ticket_list m_tickets[MDL_DURATION_END];
//這是一個(gè)父類指針指向子類對(duì)象,虛函數(shù)重寫的典型,實(shí)際他就指向了一個(gè)線程
/*
class THD :public MDL_context_owner,
           public Query_arena,
           public Open_tables_state
*/
MDL_context_owner *m_owner;

11、MDL_wait

這個(gè)類主要是當(dāng)前ticket獲取狀態(tài) enum_wait_status m_wait_status;

包含: 

  • EMPTY   初始化
  •  GRANTED 獲取成功
  • VICTIM  死鎖
  • TIMEOUT 超時(shí)
  • KILLED  KILLED

12、等待標(biāo)記

PSI_stage_info MDL_key::m_namespace_to_wait_state_name[NAMESPACE_END]=
{
  {0, "Waiting for global read lock", 0},
  {0, "Waiting for tablespace metadata lock", 0},
  {0, "Waiting for schema metadata lock", 0},
  {0, "Waiting for table metadata lock", 0},
  {0, "Waiting for stored function metadata lock", 0},
  {0, "Waiting for stored procedure metadata lock", 0},
  {0, "Waiting for trigger metadata lock", 0},
  {0, "Waiting for event metadata lock", 0},
  {0, "Waiting for commit lock", 0},
  {0, "User lock", 0}, /* Be compatible with old status. */
  {0, "Waiting for locking service lock", 0},
  {0, "Waiting for backup lock", 0},
  {0, "Waiting for binlog lock", 0}
};

三、增加MDL LOCK打印函數(shù)

研究MDL LOCK鎖最好的方式當(dāng)然是能夠獲取MDL 加鎖、升級(jí)、降級(jí)的流程,因?yàn)樵创a太龐大了,不可能面面俱到
雖然5.7加入了下面方式查看

  • UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME ='global_instrumentation';
  • UPDATE performance_schema.setup_instruments SET ENABLED = 'YES' WHERE NAME ='wait/lock/metadata/sql/mdl';
  • select * from performance_schema.metadata_locks

但是進(jìn)行MDL LOCK的查看,如果要觀察一個(gè)語句到底獲取了哪些MDL LOCK還是顯得無力所以筆者在mdl.cc中加入了一個(gè)函數(shù)原型如下

  • /*p_ticket in parameter*/
  • int my_print_ticket(const MDL_ticket* p_ticket)

并且在mdl_ticket類中增加了這個(gè)函數(shù)原型為友元函數(shù),否則私有成員獲取不到,而給出的公有方法比較繁雜
friend int my_print_ticket(const MDL_ticket* p_ticket);

主要獲取MDL LOCK的如下信息打印到mysql err日志中:
線程id 通過p_ticket->m_ctx->get_thd(); 獲取
mdl lock database name 通過p_ticket->m_lock->key.db_name()獲取
mdl lock object name 通過p_ticket->m_lock->key.name()獲取
mdl lock namespace 通過p_ticket->m_lock->key.mdl_namespace()獲取
mdl lock fast path 通過p_ticket->m_is_fast_path獲取判斷是則輸出否則不輸出
mdl lock type 通過p_ticket->m_type獲取
mdl lock duration 通過p_ticket->m_duration獲取

輸出信息如下:

2017-08-03T07:34:21.720583Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T07:34:21.720601Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T07:34:21.720619Z 3 [Note] (-->MDL PRINT) OBJ_name is:test
2017-08-03T07:34:21.720637Z 3 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T07:34:21.720655Z 3 [Note] (---->MDL PRINT) Fast path is:(Y)
2017-08-03T07:34:21.720673Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED_WRITE(SW)
2017-08-03T07:34:21.720692Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION

實(shí)際上和metadata_locks中的信息差不多,這是我這里的Thread id show processlist出來的id,但是我可以獲得
鎖獲取的歷史信息,我這里同時(shí)沒有 LOCK_STATUS: GRANTED,但是可以在MDL_context::acquire_lock 邏輯上可以判斷出來

mysql>   select * from performance_schema.metadata_locks\G
*************************** 1. row ***************************
          OBJECT_TYPE: TABLE
        OBJECT_SCHEMA: test
          OBJECT_NAME: test
OBJECT_INSTANCE_BEGIN: 140734412907760
            LOCK_TYPE: SHARED_WRITE
        LOCK_DURATION: TRANSACTION
          LOCK_STATUS: GRANTED
               SOURCE: sql_parse.cc:6314
      OWNER_THREAD_ID: 39
       OWNER_EVENT_ID: 241

四、在合適的位置增加打印函數(shù)進(jìn)行觀察

既然我們要研究MDL LOCK的加鎖\升級(jí)\降級(jí)、那么我們就必要找到他們的函數(shù)入口,然后在合適的位置增加打印函數(shù)進(jìn)行觀察,下面標(biāo)示出打印位置,刪除了大部分的源代碼,需要參考請(qǐng)自行

查看源碼:

1、加鎖:MDL_context::acquire_lock

bool
MDL_context::acquire_lock(MDL_request *mdl_request, ulong lock_wait_timeout)
{
  if (mdl_request->ticket) //獲取成功獲得ticket
  {
    /*
      We have managed to acquire lock without waiting.
      MDL_lock, MDL_context and MDL_request were updated
      accordingly, so we can simply return success.
    */
    //REQUESET獲取TICKET成功 此處打印
    return FALSE;
  }
  /*
    Our attempt to acquire lock without waiting has failed.
    As a result of this attempt we got MDL_ticket with m_lock
    member pointing to the corresponding MDL_lock object which
    has MDL_lock::m_rwlock write-locked.
  */
  //獲取不成功加入MDL_lock 等待隊(duì)列
  lock= ticket->m_lock;

  lock->m_waiting.add_ticket(ticket);

  will_wait_for(ticket); //死鎖檢測(cè)

  /* There is a shared or exclusive lock on the object. */
  DEBUG_SYNC(get_thd(), "mdl_acquire_lock_wait");

  find_deadlock();
  
  //此處打印TICKET進(jìn)入了等待流程
 
  if (lock->needs_notification(ticket) || lock->needs_connection_check())
  {
   }
  done_waiting_for();//等待完成對(duì)死鎖檢測(cè)等待圖進(jìn)行調(diào)整去掉本等待邊edge(無向圖)

  //當(dāng)然到這里也是通過等待后獲得成功了狀態(tài)為GRANTED
  DBUG_ASSERT(wait_status == MDL_wait::GRANTED);

  m_tickets[mdl_request->duration].push_front(ticket);

  mdl_request->ticket= ticket;

  mysql_mdl_set_status(ticket->m_psi, MDL_ticket::GRANTED);
  //此處打印通過等待REQUEST獲得了TICKET
  return FALSE;
}

2、降級(jí)

void MDL_ticket::downgrade_lock(enum_mdl_type new_type)

void MDL_ticket::downgrade_lock(enum_mdl_type new_type)
{
  
  /* Only allow downgrade from EXCLUSIVE and SHARED_NO_WRITE. */
  DBUG_ASSERT(m_type == MDL_EXCLUSIVE ||
              m_type == MDL_SHARED_NO_WRITE);

//此處打印出降級(jí)前的TICKET

  if (m_hton_notified)
  {
    mysql_mdl_set_status(m_psi, MDL_ticket::POST_RELEASE_NOTIFY);
    m_ctx->get_owner()->notify_hton_post_release_exclusive(&m_lock->key);
    m_hton_notified= false;
    mysql_mdl_set_status(m_psi, MDL_ticket::GRANTED);
  }
//函數(shù)結(jié)尾答應(yīng)出降級(jí)后的TICKET
}

3、升級(jí)

MDL_context::upgrade_shared_lock(MDL_ticket *mdl_ticket,enum_mdl_type new_type, ulong lock_wait_timeout)

bool
MDL_context::upgrade_shared_lock(MDL_ticket *mdl_ticket,
                                 enum_mdl_type new_type,
                                 ulong lock_wait_timeout)
{
  MDL_REQUEST_INIT_BY_KEY(&mdl_new_lock_request,
                          &mdl_ticket->m_lock->key, new_type,
                          MDL_TRANSACTION);//構(gòu)造一個(gè)request

 //此處打印出來的TICKET類型
  
  if (acquire_lock(&mdl_new_lock_request, lock_wait_timeout)) //嘗試使用新的LOCK_TYPE進(jìn)行加鎖
    DBUG_RETURN(TRUE);
  
  is_new_ticket= ! has_lock(mdl_svp, mdl_new_lock_request.ticket);

  lock= mdl_ticket->m_lock;

  //下面進(jìn)行一系列對(duì)MDL_LOCK的維護(hù)并且對(duì)所謂的合并操作
  /* Code below assumes that we were upgrading to "obtrusive" type of lock. */
  DBUG_ASSERT(lock->is_obtrusive_lock(new_type));

  /* Merge the acquired and the original lock. @todo: move to a method. */
  mysql_prlock_wrlock(&lock->m_rwlock);

  if (is_new_ticket)
  {
    m_tickets[MDL_TRANSACTION].remove(mdl_new_lock_request.ticket);
    MDL_ticket::destroy(mdl_new_lock_request.ticket);
  }
 //此處打印出來的升級(jí)后TICKET類型
  DBUG_RETURN(FALSE);
}

當(dāng)然我現(xiàn)在只是在這些地方進(jìn)行了打印,以后如果需要在其他地方答應(yīng)加上函數(shù)就可以了。

五、各種MDL LOCK TYPE加鎖測(cè)試

1、MDL_INTENTION_EXCLUSIVE(IX)

這個(gè)鎖會(huì)在很多操作的時(shí)候都會(huì)出現(xiàn)比如做任何一個(gè)DML/DDL 操作都會(huì)觸發(fā),實(shí)際上
DELTE/UPDATE/INSERT/FOR UPDATE等DML操作會(huì)在GLOBAL 上加IX鎖 然后才會(huì)在本對(duì)象上加鎖
而DDL 語句至少會(huì)在GLOBAL 上加IX鎖,對(duì)象所屬 SCHEMA上加IX鎖,本對(duì)象加鎖

下面是 DELETE 觸發(fā)的 GLOABL IX MDL LOCK

2017-08-03T18:22:38.092100Z 3 [Note] Test2:open_tables_for_query()
2017-08-03T18:22:38.092205Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T18:22:38.092242Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T18:22:38.092276Z 3 [Note] (--->MDL PRINT) Namespace is:GLOBAL
2017-08-03T18:22:38.092310Z 3 [Note] (---->MDL PRINT) Fast path is:(Y)
2017-08-03T18:22:38.092344Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_INTENTION_EXCLUSIVE(IX)
2017-08-03T18:22:38.092380Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_STATEMENT
2017-08-03T18:22:38.092551Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

下面是 ALETER 語句觸發(fā)的GLOABL  IX MDL LOCK以及SCHEMA級(jí)別的MDL LOCK

2017-08-03T18:46:05.894871Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T18:46:05.894915Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T18:46:05.894948Z 3 [Note] (--->MDL PRINT) Namespace is:GLOBAL
2017-08-03T18:46:05.894980Z 3 [Note] (---->MDL PRINT) Fast path is:(Y)
2017-08-03T18:46:05.895012Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_INTENTION_EXCLUSIVE(IX)
2017-08-03T18:46:05.895044Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_STATEMENT
2017-08-03T18:46:05.895076Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

2017-08-03T18:46:05.895116Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T18:46:05.895147Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T18:46:05.895206Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T18:46:05.895243Z 3 [Note] (-->MDL PRINT) OBJ_name is:
2017-08-03T18:46:05.895276Z 3 [Note] (--->MDL PRINT) Namespace is:SCHEMA
2017-08-03T18:46:05.895325Z 3 [Note] (---->MDL PRINT) Fast path is:(Y)
2017-08-03T18:46:05.895357Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_INTENTION_EXCLUSIVE(IX)
2017-08-03T18:46:05.895390Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T18:46:05.895421Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

所以這個(gè)MDL LOCK 無所不在,而只有是否兼容問題,如果不兼容則堵塞。SCOPED 的IX類型一般都是兼容的除非遇到
S類型

2、MDL_SHARED(S)

這把鎖一般用在flush tables with read lock中

mysql> flush tables with read lock;
Query OK, 0 rows affected (0.01 sec)

2017-08-03T18:19:11.603911Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T18:19:11.603947Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T18:19:11.603971Z 3 [Note] (--->MDL PRINT) Namespace is:GLOBAL
2017-08-03T18:19:11.603994Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED(S)
2017-08-03T18:19:11.604045Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_EXPLICIT
2017-08-03T18:19:11.604073Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY
2017-08-03T18:19:11.604133Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T18:19:11.604156Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T18:19:11.604194Z 3 [Note] (--->MDL PRINT) Namespace is:COMMIT
2017-08-03T18:19:11.604217Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED(S)
2017-08-03T18:19:11.604240Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_EXPLICIT
2017-08-03T18:19:11.604310Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

我們注意到其namspace為GLOBAL和COMMIT顯然他們是SCOPED LOCK,他們的TYPE為S,那么很顯然根據(jù)兼容性原則
SCOPED 的MDL IX和MDL S 不兼容, flush tables with read lock; 就會(huì)堵塞所有DELTE/UPDATE/INSERT/FOR UPDATE等DML和DDL操作(因?yàn)檫@些操作都需要GLOBAL MDL IX鎖)

3、MDL_SHARED_HIGH_PRIO(SH)

這個(gè)鎖基本上大家也是經(jīng)常用到只是沒感覺到而已,比如我們一般desc操作

兼容性:   

Request  |  Granted requests for lock                  |
        type    | S  SH  SR  SW  SWLP  SU  SRO  SNW  SNRW  X  |
      ----------+---------------------------------------------+
      SH        | +   +   +   +    +    +   +    +    +    -  |
mysql> desc test.testsort10;

2017-08-03T19:06:05.843277Z 4 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T19:06:05.843324Z 4 [Note] (>MDL PRINT) Thread id is 4:
2017-08-03T19:06:05.843359Z 4 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T19:06:05.843392Z 4 [Note] (-->MDL PRINT) OBJ_name is:testsort10
2017-08-03T19:06:05.843425Z 4 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T19:06:05.843456Z 4 [Note] (---->MDL PRINT) Fast path is:(Y)
2017-08-03T19:06:05.843506Z 4 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED_HIGH_PRIO(SH)
2017-08-03T19:06:05.843538Z 4 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T19:06:05.843570Z 4 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

這中類型的優(yōu)先級(jí)比較高,但是其和X不兼容。也很好理解比如在rename 階段肯定不能進(jìn)行desc操作。

4、MDL_SHARED_READ(SR)

這把鎖一般用在非當(dāng)前讀取的select中

兼容性:

       Request  |  Granted requests for lock                  |
        type    | S  SH  SR  SW  SWLP  SU  SRO  SNW  SNRW  X  |
      ----------+---------------------------------------------+
      SR        | +   +   +   +    +          +      +        +    -    -  |
mysql> select * from test.testsort10 limit 1;

2017-08-03T19:13:52.338764Z 4 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T19:13:52.338813Z 4 [Note] (>MDL PRINT) Thread id is 4:
2017-08-03T19:13:52.338847Z 4 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T19:13:52.338883Z 4 [Note] (-->MDL PRINT) OBJ_name is:testsort10
2017-08-03T19:13:52.338917Z 4 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T19:13:52.338950Z 4 [Note] (---->MDL PRINT) Fast path is:(Y)
2017-08-03T19:13:52.339025Z 4 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED_READ(SR)
2017-08-03T19:13:52.339062Z 4 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T19:13:52.339097Z 4 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

這里還是要提及一下平時(shí)我們偶爾會(huì)出現(xiàn)select也堵住的情況(比如DDL的某個(gè)階段需要對(duì)象MDL X鎖)。我們不得不抱怨
MYSQL居然會(huì)堵塞select其實(shí)這里也就是object mdl lock X 和SR 不兼容的問題(參考前面的兼容矩陣)。

5、MDL_SHARED_WRITE(SW)

這把鎖一般用于DELTE/UPDATE/INSERT/FOR UPDATE等操作對(duì)table的加鎖(當(dāng)前讀),不包含DDL操作,但是要注意DML操作實(shí)際上會(huì)有一個(gè)GLOBAL的IX的鎖,前面已經(jīng)提及過了,這把鎖只是對(duì)象上的

兼容性:

       Request  |  Granted requests for lock                  |
        type    | S  SH  SR  SW  SWLP  SU  SRO  SNW  SNRW  X  |
      ----------+---------------------------------------------+
      SW        | +   +   +   +    +    +   -    -    -    -  |
mysql> select * from test.testsort10 limit 1 for update;

2017-08-03T19:25:41.218428Z 4 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T19:25:41.218461Z 4 [Note] (>MDL PRINT) Thread id is 4:
2017-08-03T19:25:41.218493Z 4 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T19:25:41.218525Z 4 [Note] (-->MDL PRINT) OBJ_name is:testsort10
2017-08-03T19:25:41.218557Z 4 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T19:25:41.218588Z 4 [Note] (---->MDL PRINT) Fast path is:(Y)
2017-08-03T19:25:41.218620Z 4 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED_WRITE(SW)
2017-08-03T19:25:41.218677Z 4 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T19:25:41.218874Z 4 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

6、MDL_SHARED_WRITE_LOW_PRIO(SWL)

這把鎖很少用到源碼注釋只有

Used by DML statements modifying
tables and using the LOW_PRIORITY clause

兼容性:

       Request  |  Granted requests for lock                  |
        type    | S  SH  SR  SW  SWLP  SU  SRO  SNW  SNRW  X  |
      ----------+---------------------------------------------+
      SWLP      | +   +   +   +    +    +   -    -    -    -  |
mysql> update  LOW_PRIORITY  test.testsort10 set id1=1000 where id1= 96282;


2017-08-03T19:32:47.433507Z 4 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T19:32:47.433521Z 4 [Note] (>MDL PRINT) Thread id is 4:
2017-08-03T19:32:47.433533Z 4 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T19:32:47.433547Z 4 [Note] (-->MDL PRINT) OBJ_name is:testsort10
2017-08-03T19:32:47.433560Z 4 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T19:32:47.433572Z 4 [Note] (---->MDL PRINT) Fast path is:(Y)
2017-08-03T19:32:47.433594Z 4 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED_WRITE_LOW_PRIO(SWL)
2017-08-03T19:32:47.433607Z 4 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T19:32:47.433620Z 4 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

7、MDL_SHARED_UPGRADABLE(SU)

這把鎖一般在ALTER TABLE語句中用到,他可以升級(jí)為SNW, SNRW,X,同時(shí)至少X鎖也可以降級(jí)為SU
實(shí)際上在INNODB ONLINE DDL中非常依賴于他,DML(SW)和SELECT(SR)都不會(huì)堵塞

兼容性:

       Request  |  Granted requests for lock                  |
        type    | S  SH  SR  SW  SWLP  SU  SRO  SNW  SNRW  X  |
      ----------+---------------------------------------------+
      SU        | +   +   +   +    +    -   +    -    -    -  |


我們有必要研究一下他的兼容性,可以看到 OBJECT LOCK中(SELECT)SR (DML)SW都是允許的,而在SCOPED LOCK中
雖然DML DDL都會(huì)在GLOBAL 上鎖但是其類型都是IX所以這個(gè)SU鎖不堵塞DML/SELECT 讀寫操作進(jìn)入
INNODB引擎層,它是ONLINE DDL的根基,如果不兼容你都進(jìn)入不了INNODB引擎層,更談不上什么ONLINE
DDL,注意我這里說的是ALGORITHM=INPLACE 并且不設(shè)置LOCK

(For DDL operations with LOCK=DEFAULT, or with the LOCK clause omitted, MySQL uses the lowest level
of locking that is available for that kind of operation, allowing concurrent queries, DML, or both wherever
possible. This is the setting to use when making pre-planned, pre-tested changes that you know will not
cause any availability problems based on the workload for that table
When an operation on the primary key uses ALGORITHM=INPLACE, even though the data is still copied, it
is more efficient than using ALGORITHM=COPY because:
? No undo logging or associated redo logging is required for ALGORITHM=INPLACE. These operations add
overhead to DDL statements that use ALGORITHM=COPY.
? The secondary index entries are pre-sorted, and so can be loaded in order.
? The change buffer is not used, because there are no random-access inserts into the secondary indexes.
)

如下面的語句

mysql>  alter table testsort12 add column it int not null;
Query OK, 0 rows affected (6.27 sec)
Records: 0  Duplicates: 0  Warnings: 0

簡(jiǎn)單的分析一下:

2017-08-03T19:46:54.781453Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T19:46:54.781487Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T19:46:54.781948Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T19:46:54.781990Z 3 [Note] (-->MDL PRINT) OBJ_name is:testsort12
2017-08-03T19:46:54.782026Z 3 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T19:46:54.782060Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED_UPGRADABLE(SU)
2017-08-03T19:46:54.782096Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T19:46:54.782175Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY
2017-08-03T19:46:54.803898Z 3 [Note] (upgrade_shared_lock)THIS MDL LOCK will upgrade
2017-08-03T19:46:54.804201Z 3 [Note] (upgrade_shared_lock)THIS MDL LOCK  upgrade TO
2017-08-03T19:46:54.804240Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T19:46:54.804254Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T19:46:54.804267Z 3 [Note] (-->MDL PRINT) OBJ_name is:testsort12
2017-08-03T19:46:54.804280Z 3 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T19:46:54.804293Z 3 [Note] (----->MDL PRINT) Mdl type :MDL_EXCLUSIVE(X)
2017-08-03T19:46:54.804306Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T19:46:54.804319Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY
2017-08-03T19:46:54.855563Z 3 [Note] (downgrade_lock)THIS MDL LOCK will downgrade
2017-08-03T19:46:54.855693Z 3 [Note] (downgrade_lock) to this MDL lock
2017-08-03T19:46:54.855706Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T19:46:54.855717Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T19:46:54.856053Z 3 [Note] (-->MDL PRINT) OBJ_name is:testsort12
2017-08-03T19:46:54.856069Z 3 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T19:46:54.856082Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED_UPGRADABLE(SU)
2017-08-03T19:46:54.856094Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T19:46:54.856214Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY
2017-08-03T19:47:00.260166Z 3 [Note] (upgrade_shared_lock)THIS MDL LOCK will upgrade
2017-08-03T19:47:00.304057Z 3 [Note] (upgrade_shared_lock)THIS MDL LOCK  upgrade TO
2017-08-03T19:47:00.304090Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T19:47:00.304105Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T19:47:00.304119Z 3 [Note] (-->MDL PRINT) OBJ_name is:testsort12
2017-08-03T19:47:00.304132Z 3 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T19:47:00.304181Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_EXCLUSIVE(X)
2017-08-03T19:47:00.304196Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T19:47:00.304211Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY
2017-08-03T19:47:01.032329Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!

首先獲得testsort12表上的

2017-08-03T19:46:54.781487 獲得 MDL_SHARED_UPGRADABLE(SU)
2017-08-03T19:46:54.804293 升級(jí) MDL_EXCLUSIVE(X)
2017-08-03T19:46:54.855563 降級(jí) MDL_SHARED_UPGRADABLE(SU)
2017-08-03T19:47:00.304057 升級(jí) MDL_EXCLUSIVE(X)

因?yàn)椴还苋绾芜@個(gè)alter操作還是比較費(fèi)時(shí)的,從時(shí)間我們看到2017-08-03T19:46:54降級(jí)完成到2017-08-03T19:47:00這段時(shí)間
實(shí)際上是最耗時(shí)的實(shí)際上這里就是實(shí)際的COPY操作,但是這個(gè)過程實(shí)際在MDL SU模式下所以不會(huì)堵塞DML/SELECT操作。
這里再給大家提個(gè)醒所謂的ONLINE DDL只是在COPY階段不堵塞DML/SELECT操作,還是盡量在數(shù)據(jù)庫(kù)壓力小的時(shí)候,
比如如果有DML沒有提交或者SELECT沒有做完這個(gè)時(shí)候SW SR必然堵塞X,而X能夠堵塞一切且為高優(yōu)先級(jí)。這樣導(dǎo)致
的現(xiàn)象就是由于DML未提交堵塞DDL操作而DDL操作堵塞一切操作,基本對(duì)于這個(gè)TABLE的表全部堵塞。

而對(duì)于ALGORITHM=COPY 其他部分差不多,但是在COPY階段用的是SNW鎖,接下來我就先來看看SNW鎖

8、MDL_SHARED_NO_WRITE(SNW)

SU可以升級(jí)為SNW而SNW可以升級(jí)為X,如前面所提及用于ALGORITHM=COPY 中,保護(hù)數(shù)據(jù)的一致性。

兼容性:

       Request  |  Granted requests for lock                   
        type    | S  SH  SR  SW  SWLP  SU  SRO  SNW  SNRW  X  |
      ----------+---------------------------------------------+
      SNW       | +   +   +   -    -    -   +    -    -    -  |


可以看到SR可以但是SW不行,當(dāng)然也就堵塞了DML(SW)而SELECT(SR)不會(huì)堵塞,下面我只是給出了關(guān)鍵部分
mysql>  alter table testsort12 add column ik int not null, ALGORITHM=COPY  ;

2017-08-03T20:07:58.413215Z 3 [Note] (upgrade_shared_lock)THIS MDL LOCK  upgrade TO
2017-08-03T20:07:58.413241Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T20:07:58.413257Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T20:07:58.413273Z 3 [Note] (-->MDL PRINT) OBJ_name is:testsort12
2017-08-03T20:07:58.413292Z 3 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T20:07:58.413308Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED_NO_WRITE(SNW)
2017-08-03T20:07:58.413325Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T20:07:58.413341Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY
2017-08-03T20:08:25.392006Z 3 [Note] (upgrade_shared_lock)THIS MDL LOCK  upgrade TO
2017-08-03T20:08:25.392024Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T20:08:25.392086Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T20:08:25.392159Z 3 [Note] (-->MDL PRINT) OBJ_name is:testsort12
2017-08-03T20:08:25.392199Z 3 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T20:08:25.392214Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_EXCLUSIVE(X)
2017-08-03T20:08:25.392228Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T20:08:25.392242Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

2017-08-03T20:07:58.413308 獲得了MDL_SHARED_NO_WRITE(SNW)
2017-08-03T20:08:25.392006 升級(jí)為MDL_EXCLUSIVE(X)

這2017-08-03T20:07:58.413308到2017-08-03T20:08:25.392006就是實(shí)際COPY的時(shí)間,可見整個(gè)COPY期間只能DML
而不能SELECT,也是ALGORITHM=COPY和ALGORITHM=INPLACE一個(gè)關(guān)鍵區(qū)別。

9、MDL_SHARED_READ_ONLY(SRO)

用于LOCK TABLES READ 語句

兼容性如下

      Request  |  Granted requests for lock                  |
        type    | S  SH  SR  SW  SWLP  SU  SRO  SNW  SNRW  X  |
      ----------+---------------------------------------------+
      SRO       | +   +   +   -    -    +   +    +    -    -  |


堵塞DML(SW)但是SELECT(SR)還是可以的。

mysql> lock table testsort12 read;
Query OK, 0 rows affected (0.01 sec)
2017-08-03T21:08:27.267947Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T21:08:27.267979Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T21:08:27.268009Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T21:08:27.268040Z 3 [Note] (-->MDL PRINT) OBJ_name is:testsort12
2017-08-03T21:08:27.268070Z 3 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T21:08:27.268113Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED_READ_ONLY(SRO)
2017-08-03T21:08:27.268145Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T21:08:27.268175Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY 

10、MDL_SHARED_NO_READ_WRITE(SNRW)

用于LOCK TABLES WRITE語句

兼容性:

       Request  |  Granted requests for lock                  |
        type    | S  SH  SR  SW  SWLP  SU  SRO  SNW  SNRW  X  |
      ----------+---------------------------------------------+
      SNRW      | +   +   -   -    -    -   -    -    -    -  |


可以看到DML(SW)和SELECT(SR)都被堵塞只有SH還可以,還可以DESC(SH) 。

mysql> lock table testsort12 write;
Query OK, 0 rows affected (0.00 sec)
2017-08-03T21:13:07.113347Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T21:13:07.113407Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T21:13:07.113435Z 3 [Note] (--->MDL PRINT) Namespace is:GLOBAL
2017-08-03T21:13:07.113458Z 3 [Note] (---->MDL PRINT) Fast path is:(Y)
2017-08-03T21:13:07.113482Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_INTENTION_EXCLUSIVE(IX)
2017-08-03T21:13:07.113505Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_STATEMENT
2017-08-03T21:13:07.113604Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY
2017-08-03T21:13:07.113637Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T21:13:07.113660Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T21:13:07.113681Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T21:13:07.113703Z 3 [Note] (-->MDL PRINT) OBJ_name is:
2017-08-03T21:13:07.113725Z 3 [Note] (--->MDL PRINT) Namespace is:SCHEMA
2017-08-03T21:13:07.113746Z 3 [Note] (---->MDL PRINT) Fast path is:(Y)
2017-08-03T21:13:07.113768Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_INTENTION_EXCLUSIVE(IX)
2017-08-03T21:13:07.113791Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T21:13:07.113813Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY
2017-08-03T21:13:07.113842Z 3 [Note] (acquire_lock)THIS MDL LOCK acquire ok!
2017-08-03T21:13:07.113865Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T21:13:07.113887Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T21:13:07.113922Z 3 [Note] (-->MDL PRINT) OBJ_name is:testsort12
2017-08-03T21:13:07.113945Z 3 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T21:13:07.113975Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_SHARED_NO_READ_WRITE(SNRW)
2017-08-03T21:13:07.113998Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T21:13:07.114021Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

除此之外lock table 還需要GLOBAL和SCHEMA上的IX鎖,換句話說flush tables with read lock; 會(huì)堵塞lock table testsort12 write;但是lock table testsort12 read 卻不會(huì)堵塞。

11、MDL_EXCLUSIVE(X)

用于各種DDL操作,注釋為CREATE/DROP/RENAME TABLE操作,實(shí)際上基本全部的DDL都會(huì)涉及到這個(gè)鎖,如上面分析的
add column操作,但是持續(xù)時(shí)間一般比較短暫。

兼容性:

       Request  |  Granted requests for lock                  |
        type    | S  SH  SR  SW  SWLP  SU  SRO  SNW  SNRW  X  |
      ----------+---------------------------------------------+
      X         | -   -   -   -    -    -   -    -    -    -  |


沒有上面意外堵塞一切,也被一切所堵塞
比如剛才的add column操作

2017-08-03T19:46:54.804240Z 3 [Note] (>MDL PRINT) Thread id is 3:
2017-08-03T19:46:54.804254Z 3 [Note] (->MDL PRINT) DB_name is:test
2017-08-03T19:46:54.804267Z 3 [Note] (-->MDL PRINT) OBJ_name is:testsort12
2017-08-03T19:46:54.804280Z 3 [Note] (--->MDL PRINT) Namespace is:TABLE
2017-08-03T19:46:54.804293Z 3 [Note] (----->MDL PRINT) Mdl type is:MDL_EXCLUSIVE(X)
2017-08-03T19:46:54.804306Z 3 [Note] (------>MDL PRINT) Mdl  duration is:MDL_TRANSACTION
2017-08-03T19:46:54.804319Z 3 [Note] (------->MDL PRINT) Mdl  status is:EMPTY

六、源碼注釋部分

enum enum_mdl_type {
  /*
    An intention exclusive metadata lock. Used only for scoped locks.
    Owner of this type of lock can acquire upgradable exclusive locks on
    individual objects.
    Compatible with other IX locks, but is incompatible with scoped S and
    X locks.
  */
  MDL_INTENTION_EXCLUSIVE= 0,
  /*
    A shared metadata lock.
    To be used in cases when we are interested in object metadata only
    and there is no intention to access object data (e.g. for stored
    routines or during preparing prepared statements).
    We also mis-use this type of lock for open HANDLERs, since lock
    acquired by this statement has to be compatible with lock acquired
    by LOCK TABLES ... WRITE statement, i.e. SNRW (We can't get by by
    acquiring S lock at HANDLER ... OPEN time and upgrading it to SR
    lock for HANDLER ... READ as it doesn't solve problem with need
    to abort DML statements which wait on table level lock while having
    open HANDLER in the same connection).
    To avoid deadlock which may occur when SNRW lock is being upgraded to
    X lock for table on which there is an active S lock which is owned by
    thread which waits in its turn for table-level lock owned by thread
    performing upgrade we have to use thr_abort_locks_for_thread()
    facility in such situation.
    This problem does not arise for locks on stored routines as we don't
    use SNRW locks for them. It also does not arise when S locks are used
    during PREPARE calls as table-level locks are not acquired in this
    case.
  */
  MDL_SHARED,
  /*
    A high priority shared metadata lock.
    Used for cases when there is no intention to access object data (i.e.
    data in the table).
    "High priority" means that, unlike other shared locks, it is granted
    ignoring pending requests for exclusive locks. Intended for use in
    cases when we only need to access metadata and not data, e.g. when
    filling an INFORMATION_SCHEMA table.
    Since SH lock is compatible with SNRW lock, the connection that
    holds SH lock lock should not try to acquire any kind of table-level
    or row-level lock, as this can lead to a deadlock. Moreover, after
    acquiring SH lock, the connection should not wait for any other
    resource, as it might cause starvation for X locks and a potential
    deadlock during upgrade of SNW or SNRW to X lock (e.g. if the
    upgrading connection holds the resource that is being waited for).
  */
  MDL_SHARED_HIGH_PRIO,
  /*
    A shared metadata lock for cases when there is an intention to read data
    from table.
    A connection holding this kind of lock can read table metadata and read
    table data (after acquiring appropriate table and row-level locks).
    This means that one can only acquire TL_READ, TL_READ_NO_INSERT, and
    similar table-level locks on table if one holds SR MDL lock on it.
    To be used for tables in SELECTs, subqueries, and LOCK TABLE ... READ
    statements.
  */
  MDL_SHARED_READ,
  /*
    A shared metadata lock for cases when there is an intention to modify
    (and not just read) data in the table.
    A connection holding SW lock can read table metadata and modify or read
    table data (after acquiring appropriate table and row-level locks).
    To be used for tables to be modified by INSERT, UPDATE, DELETE
    statements, but not LOCK TABLE ... WRITE or DDL). Also taken by
    SELECT ... FOR UPDATE.
  */
  MDL_SHARED_WRITE,
  /*
    A version of MDL_SHARED_WRITE lock which has lower priority than
    MDL_SHARED_READ_ONLY locks. Used by DML statements modifying
    tables and using the LOW_PRIORITY clause.
  */
  MDL_SHARED_WRITE_LOW_PRIO,
  /*
    An upgradable shared metadata lock which allows concurrent updates and
    reads of table data.
    A connection holding this kind of lock can read table metadata and read
    table data. It should not modify data as this lock is compatible with
    SRO locks.
    Can be upgraded to SNW, SNRW and X locks. Once SU lock is upgraded to X
    or SNRW lock data modification can happen freely.
    To be used for the first phase of ALTER TABLE.
  */
  MDL_SHARED_UPGRADABLE,
  /*
    A shared metadata lock for cases when we need to read data from table
    and block all concurrent modifications to it (for both data and metadata).
    Used by LOCK TABLES READ statement.
  */
  MDL_SHARED_READ_ONLY,
  /*
    An upgradable shared metadata lock which blocks all attempts to update
    table data, allowing reads.
    A connection holding this kind of lock can read table metadata and read
    table data.
    Can be upgraded to X metadata lock.
    Note, that since this type of lock is not compatible with SNRW or SW
    lock types, acquiring appropriate engine-level locks for reading
    (TL_READ* for MyISAM, shared row locks in InnoDB) should be
    contention-free.
    To be used for the first phase of ALTER TABLE, when copying data between
    tables, to allow concurrent SELECTs from the table, but not UPDATEs.
  */
  MDL_SHARED_NO_WRITE,
  /*
    An upgradable shared metadata lock which allows other connections
    to access table metadata, but not data.
    It blocks all attempts to read or update table data, while allowing
    INFORMATION_SCHEMA and SHOW queries.
    A connection holding this kind of lock can read table metadata modify and
    read table data.
    Can be upgraded to X metadata lock.
    To be used for LOCK TABLES WRITE statement.
    Not compatible with any other lock type except S and SH.
  */
  MDL_SHARED_NO_READ_WRITE,
  /*
    An exclusive metadata lock.
    A connection holding this lock can modify both table's metadata and data.
    No other type of metadata lock can be granted while this lock is held.
    To be used for CREATE/DROP/RENAME TABLE statements and for execution of
    certain phases of other DDL statements.
  */
  MDL_EXCLUSIVE,
  /* This should be the last !!! */
  MDL_TYPE_END};


/** Duration of metadata lock. */

enum enum_mdl_duration {
  /**
    Locks with statement duration are automatically released at the end
    of statement or transaction.
  */
  MDL_STATEMENT= 0,
  /**
    Locks with transaction duration are automatically released at the end
    of transaction.
  */
  MDL_TRANSACTION,
  /**
    Locks with explicit duration survive the end of statement and transaction.
    They have to be released explicitly by calling MDL_context::release_lock().
  */
  MDL_EXPLICIT,
  /* This should be the last ! */
  MDL_DURATION_END };

/**
    Object namespaces.
    Sic: when adding a new member to this enum make sure to
    update m_namespace_to_wait_state_name array in mdl.

    Different types of objects exist in different namespaces
     - GLOBAL is used for the global read lock.
     - TABLESPACE is for tablespaces.
     - SCHEMA is for schemas (aka databases).
     - TABLE is for tables and views.
     - FUNCTION is for stored functions.
     - PROCEDURE is for stored procedures.
     - TRIGGER is for triggers.
     - EVENT is for event scheduler events.
     - COMMIT is for enabling the global read lock to block commits.
     - USER_LEVEL_LOCK is for user-level locks.
     - LOCKING_SERVICE is for the name plugin RW-lock service
    Note that although there isn't metadata locking on triggers,
    it's necessary to have a separate namespace for them since
    MDL_key is also used outside of the MDL subsystem.
    Also note that requests waiting for user-level locks get special
    treatment - waiting is aborted if connection to client is lost.
  */
  enum enum_mdl_namespace { GLOBAL=0,
                            TABLESPACE,
                            SCHEMA,
                            TABLE,
                            FUNCTION,
                            PROCEDURE,
                            TRIGGER,
                            EVENT,
                            COMMIT,
                            USER_LEVEL_LOCK,
                            LOCKING_SERVICE,
                            BACKUP,
                            BINLOG,
                            /* This should be the last ! */
                            NAMESPACE_END };

以上就是MYSQL METADATA LOCK(MDL LOCK) 理論及加鎖類型測(cè)試的詳細(xì)內(nèi)容,更多關(guān)于MYSQL METADATA LOCK(MDL LOCK)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

久草视频 久草视频2| 青娱乐极品视频青青草| 久草电影免费在线观看| 青娱乐极品视频青青草| 97国产福利小视频合集| 日韩欧美国产一区ab| 亚洲一区二区人妻av| 精品亚洲中文字幕av| 51精品视频免费在线观看| 国产精品一区二区三区蜜臀av| 99久久99久国产黄毛片| 91精品国产91青青碰| av天堂中文免费在线| 97精品视频在线观看| 2021年国产精品自拍| 亚洲人妻av毛片在线| 在线免费91激情四射| 内射久久久久综合网| 女同性ⅹxx女同h偷拍| 激情国产小视频在线| 久久久精品国产亚洲AV一| 欧美中国日韩久久精品| 人人妻人人爽人人添夜| 岛国av高清在线成人在线| 97精品综合久久在线| 亚洲色偷偷综合亚洲AV伊人| 亚洲一级美女啪啪啪| 久久久精品欧洲亚洲av| 黄色片一级美女黄色片| 一色桃子久久精品亚洲| 美洲精品一二三产区区别| 人妻激情图片视频小说| 九色视频在线观看免费| 黄色视频在线观看高清无码| 超级碰碰在线视频免费观看| 日日夜夜精品一二三| 国内精品在线播放第一页| 天天色天天操天天透| 中文字幕日韩精品日本| 人妻少妇中文有码精品| 老司机欧美视频在线看| 非洲黑人一级特黄片| 91麻豆精品秘密入口在线观看| 成年人黄色片免费网站| 男生舔女生逼逼视频| 内射久久久久综合网| 欧美精品伦理三区四区| 日韩无码国产精品强奸乱伦| 成人午夜电影在线观看 久久| 欧美亚洲少妇福利视频| 深田咏美亚洲一区二区| 宅男噜噜噜666免费观看| 亚洲一区二区三区久久午夜| jul—619中文字幕在线| 亚洲美女高潮喷浆视频| 国产日韩av一区二区在线| 91老师蜜桃臀大屁股| 极品粉嫩小泬白浆20p主播| 人妻丝袜诱惑我操她视频| 2025年人妻中文字幕乱码在线| 午夜极品美女福利视频| 天天日天天干天天插舔舔| av在线播放国产不卡| 国产福利小视频大全| 丰满熟女午夜福利视频| 久久久久久久精品成人热| 亚洲av色香蕉一区二区三区| 中文字幕+中文字幕| 久久永久免费精品人妻专区| 93人妻人人揉人人澡人人| 国产又大又黄免费观看| 中文字幕av男人天堂| 在线观看视频污一区| 亚洲综合自拍视频一区| 78色精品一区二区三区| 在线免费观看黄页视频| 在线免费观看视频一二区| 啪啪啪啪啪啪啪啪啪啪黄色| 天天色天天操天天舔| 2020中文字幕在线播放| 2022精品久久久久久中文字幕| 不卡精品视频在线观看| 亚洲av日韩av网站| 一级A一级a爰片免费免会员| 亚洲国产成人在线一区| 人人人妻人人澡人人| 2020久久躁狠狠躁夜夜躁 | 99一区二区在线观看| 亚洲精品麻豆免费在线观看| 中文字幕网站你懂的| av在线免费资源站| 激情综合治理六月婷婷| 天天操天天操天天碰| 国产白袜脚足J棉袜在线观看| 亚洲精品一区二区三区老狼| 91成人精品亚洲国产| 黄色的网站在线免费看| 成熟丰满熟妇高潮xx×xx| 绝顶痉挛大潮喷高潮无码 | 亚洲人妻av毛片在线| 亚洲综合乱码一区二区| 国产视频精品资源网站| 美女福利写真在线观看视频| 国产成人综合一区2区| 日韩亚国产欧美三级涩爱| 国产乱弄免费视频观看| 日本美女性生活一级片| 亚洲欧美激情中文字幕| 中国黄片视频一区91| 狍和女人的王色毛片| 欧美精品久久久久久影院| 福利在线视频网址导航| av无限看熟女人妻另类av| 亚洲成人av一区久久| 日韩欧美在线观看不卡一区二区| 欧美va亚洲va天堂va| 夏目彩春在线中文字幕| 欧美一区二区三区激情啪啪啪| 在线免费观看欧美小视频| 懂色av之国产精品| 人妻av无码专区久久绿巨人| 成年女人免费播放视频| 999热精品视频在线| 欧美成人精品欧美一级黄色| 中文字幕在线观看国产片| 99精品亚洲av无码国产另类| 亚洲熟妇x久久av久久| 久草极品美女视频在线观看| 亚洲一区二区激情在线| 岛国毛片视频免费在线观看| 狠狠躁狠狠爱网站视频| 亚洲午夜在线视频福利| 最新91精品视频在线| 蜜桃视频在线欧美一区| 亚洲女人的天堂av| 水蜜桃国产一区二区三区| 午夜毛片不卡免费观看视频| 在线免费观看靠比视频的网站 | 五十路丰满人妻熟妇| 亚洲欧美一卡二卡三卡| 晚上一个人看操B片| 在线免费观看日本片| 蜜桃视频17c在线一区二区| 99re久久这里都是精品视频| 亚洲欧美精品综合图片小说| 国产精品久久9999| 青娱乐蜜桃臀av色| 精品国产污污免费网站入口自| 中文人妻AV久久人妻水| 唐人色亚洲av嫩草| 哥哥姐姐综合激情小说| 超污视频在线观看污污污| 伊人开心婷婷国产av| 桃色视频在线观看一区二区| 97国产在线av精品| 在线播放 日韩 av| 中文字幕高清在线免费播放| 一区二区三区四区五区性感视频 | 亚洲一区二区激情在线| 国产精品自拍在线视频| 噜噜色噜噜噜久色超碰| 福利午夜视频在线观看| 青青草亚洲国产精品视频| av中文字幕福利网| 又粗又硬又猛又黄免费30| 真实国产乱子伦一区二区| 91免费观看在线网站| 国产使劲操在线播放| 激情国产小视频在线| 日日操夜夜撸天天干| 人人妻人人爽人人澡人人精品| 激情伦理欧美日韩中文字幕| 国产大鸡巴大鸡巴操小骚逼小骚逼| 国产麻豆剧果冻传媒app| 成人高清在线观看视频| 国产一区成人在线观看视频| 88成人免费av网站| 欧美日韩情色在线观看| 骚逼被大屌狂草视频免费看| 97人妻总资源视频| 精品一区二区亚洲欧美| 精品亚洲国产中文自在线| 日韩美女搞黄视频免费| 午夜激情高清在线观看| 91精品激情五月婷婷在线| 亚洲午夜福利中文乱码字幕| 91精品国产综合久久久蜜 | 亚洲成人黄色一区二区三区| 天天干天天日天天谢综合156| 欧美一区二区三区激情啪啪啪| 亚洲av男人的天堂你懂的| 成人亚洲精品国产精品| 日本欧美视频在线观看三区| 久久麻豆亚洲精品av| 日本三极片中文字幕| 亚洲熟妇x久久av久久| 欧美一区二区三区久久久aaa| 久久三久久三久久三久久| 在线免费观看日本伦理| 久久久人妻一区二区| 1区2区3区4区视频在线观看| 亚洲欧美福利在线观看| 人妻丝袜av在线播放网址| 日本熟妇色熟妇在线观看| 国产不卡av在线免费| 伊人网中文字幕在线视频| 日本黄色三级高清视频| 久久久久久九九99精品| 97精品成人一区二区三区 | 日本韩国在线观看一区二区| 青青擦在线视频国产在线| 国产超码片内射在线| 一区二区三区美女毛片| 亚洲超碰97人人做人人爱| av日韩在线免费播放| 91传媒一区二区三区| 日韩中文字幕精品淫| 成年人该看的视频黄免费| 东京热男人的av天堂| 国产精品入口麻豆啊啊啊| 色综合久久五月色婷婷综合| 亚洲精品久久视频婷婷| 岛国黄色大片在线观看| 亚洲熟女女同志女同| 免费黄页网站4188| av在线免费观看亚洲天堂| 天天日天天干天天干天天日| 丝袜国产专区在线观看| wwwxxx一级黄色片| 高潮视频在线快速观看国家快速| 午夜激情久久不卡一区二区 | 一区二区三区四区中文| 亚洲欧美日韩视频免费观看| 日韩成人性色生活片| 狠狠操操操操操操操操操| 插小穴高清无码中文字幕| 成人在线欧美日韩国产| 又色又爽又黄的美女裸体| 色狠狠av线不卡香蕉一区二区| 精品国产在线手机在线| 啪啪啪操人视频在线播放| 国产a级毛久久久久精品| 国产成人精品久久二区91| 玩弄人妻熟妇性色av少妇| 国产日本欧美亚洲精品视| 老司机你懂得福利视频| 日本人妻少妇18—xx| 国产高潮无码喷水AV片在线观看| 一个人免费在线观看ww视频| 真实国模和老外性视频| 黄色大片免费观看网站| 日韩av免费观看一区| 任你操任你干精品在线视频| 免费黄高清无码国产| 久草电影免费在线观看| 一区二区三区毛片国产一区| 亚洲美女美妇久久字幕组| 亚洲精品色在线观看视频| 男人操女人逼逼视频网站| 经典国语激情内射视频| 18禁网站一区二区三区四区| 欧亚日韩一区二区三区观看视频| 国产三级影院在线观看| gay gay男男瑟瑟在线网站| 护士特殊服务久久久久久久| 久草电影免费在线观看| 直接观看免费黄网站| jiujiure精品视频在线| 亚洲成av人无码不卡影片一| 一区二区三区麻豆福利视频| 99re6热在线精品| 午夜毛片不卡在线看| 国产日韩一区二区在线看| 中文字幕在线第一页成人| 80电影天堂网官网| 风流唐伯虎电视剧在线观看| 午夜毛片不卡免费观看视频| 色婷婷综合激情五月免费观看| 日韩亚洲高清在线观看| 日本在线不卡免费视频| 国产大鸡巴大鸡巴操小骚逼小骚逼| 国产精品久久久久网| 丝袜美腿欧美另类 中文字幕| 亚洲综合乱码一区二区| 特级欧美插插插插插bbbbb| 国产乱子伦精品视频潮优女| 日本少妇的秘密免费视频| 中国黄片视频一区91| 97年大学生大白天操逼| 天天日天天爽天天爽| 国产精品一区二区av国| 99热久久极品热亚洲| 成人精品在线观看视频| 在线观看国产网站资源| 91av精品视频在线| 日本少妇人妻xxxxxhd| 无码日韩人妻精品久久| 亚洲一区二区激情在线| 亚洲国产免费av一区二区三区| 亚洲成人线上免费视频观看| av老司机亚洲一区二区| 天天躁日日躁狠狠躁av麻豆| 亚洲中文字幕综合小综合| 中文字幕一区二区三区蜜月| 好吊操视频这里只有精品| 天天日天天透天天操| 视频一区 视频二区 视频| 五月天色婷婷在线观看视频免费| 1区2区3区4区视频在线观看| 99热国产精品666| 人妻最新视频在线免费观看| 在线观看免费视频网| 欧美亚洲自偷自拍 在线| 亚洲 色图 偷拍 欧美| 中文字幕日韩无敌亚洲精品| 色天天天天射天天舔| 无套猛戳丰满少妇人妻| 亚洲一区二区人妻av| 中文字幕 人妻精品| 最近中文字幕国产在线| 亚洲一级特黄特黄黄色录像片| 久草视频在线看免费| 国产精品熟女久久久久浪潮| 亚洲av自拍偷拍综合| 亚洲高清视频在线不卡| 五十路熟女av天堂| 91极品大一女神正在播放| 老司机福利精品免费视频一区二区| 国产亚洲精品欧洲在线观看| 亚洲 欧美 精品 激情 偷拍| 91av中文视频在线| 91精品资源免费观看| 久久精品36亚洲精品束缚| 欧美日韩激情啪啪啪| 姐姐的朋友2在线观看中文字幕| 国产精品手机在线看片| 91在线免费观看成人| 都市家庭人妻激情自拍视频| 硬鸡巴动态操女人逼视频| 国产福利在线视频一区| 姐姐的朋友2在线观看中文字幕| aiss午夜免费视频| 亚洲成av人无码不卡影片一| 国产 在线 免费 精品| 91av中文视频在线| 亚洲专区激情在线观看视频| 亚洲免费福利一区二区三区| 亚洲 欧美 精品 激情 偷拍 | 熟女人妻在线观看视频| 中文字幕一区二区人妻电影冢本 | 国产熟妇一区二区三区av| 播放日本一区二区三区电影 | 特级无码毛片免费视频播放| 午夜美女福利小视频| 98精产国品一二三产区区别| 午夜精品一区二区三区城中村| 国产精品三级三级三级| 精品国产在线手机在线| 人妻久久久精品69系列| 香港一级特黄大片在线播放| 午夜精品福利91av| 高潮视频在线快速观看国家快速| 男女之间激情网午夜在线| 欧美日本在线观看一区二区| 黄色成人在线中文字幕| 18禁无翼鸟成人在线| 欧美亚洲国产成人免费在线| 黑人乱偷人妻中文字幕| 999久久久久999| 国产成人自拍视频在线免费观看| okirakuhuhu在线观看| 99av国产精品欲麻豆| 成人精品在线观看视频| 一区二区三区的久久的蜜桃的视频| 蜜桃视频17c在线一区二区| 亚洲欧美精品综合图片小说| 大胆亚洲av日韩av| av一区二区三区人妻| 国产日韩欧美视频在线导航| 青青青青青青青在线播放视频| 自拍偷拍日韩欧美一区二区| 国产精品熟女久久久久浪潮| 69精品视频一区二区在线观看| 亚洲人妻视频在线网| 最近中文字幕国产在线| 中文字幕在线视频一区二区三区| 玖玖一区二区在线观看| 88成人免费av网站| 欧洲亚洲欧美日韩综合| 一区二区三区av高清免费| 亚洲在线观看中文字幕av| 亚洲高清视频在线不卡| 午夜精品亚洲精品五月色| 国产精品自拍偷拍a| 亚洲最大黄 嗯色 操 啊| 亚洲欧美一区二区三区电影| 国产精品手机在线看片| 亚洲一区二区人妻av| 午夜婷婷在线观看视频| 经典国语激情内射视频| 91一区精品在线观看| 亚洲 中文 自拍 另类 欧美| www日韩a级s片av| 亚洲精品午夜久久久久| 粉嫩av蜜乳av蜜臀| 88成人免费av网站| 99国产精品窥熟女精品| 亚洲激情偷拍一区二区| 亚洲va国产va欧美va在线| 一区二区三区麻豆福利视频| 精品日产卡一卡二卡国色天香| 久久国产精品精品美女| 亚洲欧美国产麻豆综合| 久草视频 久草视频2| 一区二区三区国产精选在线播放 | 欧美成一区二区三区四区| 亚洲天堂精品久久久| 亚国产成人精品久久久| 亚洲一区久久免费视频| 国产精品手机在线看片| 日本少妇精品免费视频| 亚洲综合一区二区精品久久| 欧美日韩一区二区电影在线观看| 沈阳熟妇28厘米大战黑人| 97色视频在线观看| 成年人的在线免费视频| 韩国女主播精品视频网站| 激情图片日韩欧美人妻| 很黄很污很色的午夜网站在线观看| 偷拍自拍亚洲美腿丝袜| heyzo蜜桃熟女人妻| 熟女人妻在线中出观看完整版| 夜鲁夜鲁狠鲁天天在线| 久久久久久性虐视频| 青青青爽视频在线播放| 亚洲av黄色在线网站| 男人的天堂一区二区在线观看| 国产一区二区视频观看| 亚洲精品麻豆免费在线观看| 日本一本午夜在线播放| 欧美日韩一级黄片免费观看| 欧美特色aaa大片| 亚洲伊人av天堂有码在线| 国产高清在线观看1区2区| 3344免费偷拍视频| 亚洲综合在线视频可播放| 久久三久久三久久三久久| 91综合久久亚洲综合| 亚洲熟女女同志女同| 亚洲欧美成人综合在线观看| 在线网站你懂得老司机| 晚上一个人看操B片| 热思思国产99re| 一级黄色av在线观看| 日本啪啪啪啪啪啪啪| 亚洲激情唯美亚洲激情图片| 蜜臀av久久久久久久| 午夜在线一区二区免费| 天堂女人av一区二区| 国产黄色a级三级三级三级| 日本特级片中文字幕| 中文字幕 亚洲av| 性感美女诱惑福利视频| 欧美在线偷拍视频免费看| 成人免费毛片aaaa| 2022天天干天天操| aiss午夜免费视频| 伊人成人综合开心网| 99精品国产免费久久| 亚洲 色图 偷拍 欧美| 青青青国产免费视频| 一色桃子久久精品亚洲| 五月天中文字幕内射| 黄网十四区丁香社区激情五月天| 国产三级影院在线观看| 午夜精品九一唐人麻豆嫩草成人 | 亚洲推理片免费看网站| 粉嫩av蜜乳av蜜臀| 超碰97人人澡人人| 青青青国产免费视频| 亚洲特黄aaaa片| 一级a看免费观看网站| 亚洲蜜臀av一区二区三区九色| 天天色天天舔天天射天天爽| 天天干天天操天天扣| 亚洲中文精品人人免费| 一二三区在线观看视频| 天天日天天干天天要| aⅴ精产国品一二三产品| 人妻少妇一区二区三区蜜桃| 日本福利午夜电影在线观看| 亚洲精品一区二区三区老狼| 国产不卡av在线免费| 日韩美女福利视频网| 日韩欧美制服诱惑一区在线| 午夜免费体验区在线观看| 久久久久久99国产精品| 一本久久精品一区二区| 狠狠操狠狠操免费视频| 性感美女诱惑福利视频| 人人在线视频一区二区| 欧美日韩一区二区电影在线观看 | 午夜福利资源综合激情午夜福利资| 日本精品美女在线观看| 只有精品亚洲视频在线观看| 韩国黄色一级二级三级| 五十路息与子猛烈交尾视频| 亚洲欧美日韩视频免费观看| 亚洲护士一区二区三区| 中文字幕免费福利视频6| 国产大学生援交正在播放| 国产成人综合一区2区| 久久机热/这里只有| 青青青青视频在线播放| 国产密臀av一区二区三| 大陆精品一区二区三区久久| 天天躁夜夜躁日日躁a麻豆| 中文字幕综合一区二区| 在线不卡日韩视频播放| 亚洲va欧美va人人爽3p| 91人妻精品久久久久久久网站 | 91chinese在线视频| 久久农村老妇乱69系列| 国产亚洲四十路五十路| 午夜激情久久不卡一区二区| 大鸡吧插逼逼视频免费看| 免费大片在线观看视频网站| av黄色成人在线观看| 国产成人精品午夜福利训2021| 天天日天天干天天爱| 日韩人妻在线视频免费| 欧美韩国日本国产亚洲| 美洲精品一二三产区区别| 精品亚洲中文字幕av| 中文字幕免费福利视频6| 青娱乐在线免费视频盛宴| 91桃色成人网络在线观看| 91九色porny国产蝌蚪视频| 91精品资源免费观看| 97人妻无码AV碰碰视频| 久久美欧人妻少妇一区二区三区 | 婷婷激情四射在线观看视频| 熟女视频一区,二区,三区| 日韩美女综合中文字幕pp| 欧美日韩一级黄片免费观看| 日本乱人一区二区三区| 91精品资源免费观看| 大陆胖女人与丈夫操b国语高清| 免费一级特黄特色大片在线观看 | 91天堂天天日天天操| 黄色大片免费观看网站| 专门看国产熟妇的网站| 丝袜美腿视频诱惑亚洲无| 涩爱综合久久五月蜜臀| 动色av一区二区三区| 操的小逼流水的文章| 国产福利小视频二区| 亚洲护士一区二区三区| 国产亚洲视频在线观看| 国产成人小视频在线观看无遮挡| 夜色17s精品人妻熟女| 午夜国产福利在线观看| 久久丁香婷婷六月天| 啪啪啪18禁一区二区三区| 成人动漫大肉棒插进去视频| 快点插进来操我逼啊视频| 99久久99久国产黄毛片| 欧美久久一区二区伊人| 天天日天天操天天摸天天舔| av资源中文字幕在线观看| 久青青草视频手机在线免费观看 | 在线观看黄色成年人网站| 免费国产性生活视频| 免费十精品十国产网站| 国产一区二区视频观看| 亚洲熟妇x久久av久久| 久草视频中文字幕在线观看| 国产高清在线观看1区2区| 无码中文字幕波多野不卡| weyvv5国产成人精品的视频| 中文字幕 亚洲av| 精品国产在线手机在线| 日日爽天天干夜夜操| 午夜精品九一唐人麻豆嫩草成人| 青青青青青青青在线播放视频| 一区二区三区国产精选在线播放| 可以免费看的www视频你懂的| av中文字幕国产在线观看| 国产性色生活片毛片春晓精品| 中文字幕之无码色多多| 97国产福利小视频合集| 亚洲精品国产在线电影| 淫秽激情视频免费观看| caoporm超碰国产| 姐姐的朋友2在线观看中文字幕| av在线免费中文字幕| 欧美一区二区三区激情啪啪啪| 狍和女人的王色毛片| 精品人人人妻人人玩日产欧| 国产精品伦理片一区二区| 亚洲成高清a人片在线观看| 三级等保密码要求条款| 天天日天天干天天插舔舔| 少妇人妻100系列| 天天操天天干天天艹| 国产精品久久久久久久精品视频| 直接观看免费黄网站| 香蕉av影视在线观看| 在线亚洲天堂色播av电影| 国产午夜无码福利在线看| 黑人性生活视频免费看| 国产免费av一区二区凹凸四季| 手机看片福利盒子日韩在线播放| 天天插天天色天天日| 91中文字幕最新合集| 亚洲成av人无码不卡影片一| 成人乱码一区二区三区av| 日韩av中文在线免费观看| 久久99久久99精品影院| av无限看熟女人妻另类av| 日本午夜爽爽爽爽爽视频在线观看 | 在线播放一区二区三区Av无码| 日韩欧美一级黄片亚洲| 精品91高清在线观看| 日日夜夜大香蕉伊人| 成人24小时免费视频| 青青擦在线视频国产在线| 激情五月婷婷免费视频| 午夜精彩视频免费一区| 欧美综合婷婷欧美综合| 蜜臀av久久久久久久| 小泽玛利亚视频在线观看| 免费男阳茎伸入女阳道视频 | 任你操视频免费在线观看| 一区二区三区另类在线| 丝袜肉丝一区二区三区四区在线看| 国产精品视频欧美一区二区 | 国产实拍勾搭女技师av在线| 5528327男人天堂| 日韩成人免费电影二区| 人妻爱爱 中文字幕| 青青青激情在线观看视频| 天天日天天干天天要| 自拍偷拍日韩欧美一区二区| 国产精品一区二区三区蜜臀av | 亚洲av无码成人精品区辽| 男生用鸡操女生视频动漫| av中文字幕在线观看第三页| av手机免费在线观看高潮| 亚洲一级av无码一级久久精品| 又粗又长 明星操逼小视频 | av天堂资源最新版在线看| 国产第一美女一区二区三区四区| 亚洲一区二区人妻av| 欧美天堂av无线av欧美| 中文字幕一区二区人妻电影冢本| 日美女屁股黄邑视频| 黄片大全在线观看观看| 青青草原网站在线观看| 新婚人妻聚会被中出| 久草电影免费在线观看| 亚洲成人线上免费视频观看| 亚洲精品久久综合久| 亚洲 中文 自拍 另类 欧美| av中文字幕国产在线观看| 国产精品国产三级国产午| 免费一级黄色av网站| 天天射夜夜操综合网| 综合精品久久久久97| 国产精品久久9999| av手机在线免费观看日韩av| 久草视频福利在线首页| 亚洲免费在线视频网站| 人妻少妇av在线观看| 偷拍自拍福利视频在线观看| 动漫美女的小穴视频| 国产亚洲天堂天天一区| 日韩av中文在线免费观看| 99热这里只有国产精品6| 9l人妻人人爽人人爽| 亚洲精品一线二线在线观看| 青草亚洲视频在线观看| 中文字幕 亚洲av| 天天日天天干天天干天天日| 日本一区美女福利视频| 色花堂在线av中文字幕九九 | 国产日韩精品一二三区久久久| 哥哥姐姐综合激情小说| 亚洲另类综合一区小说| 欧美精产国品一二三产品价格 | 美女少妇亚洲精选av| 亚洲精品国品乱码久久久久| 国产精品视频欧美一区二区| 亚洲欧美激情国产综合久久久 | 国产一级麻豆精品免费| av中文字幕在线观看第三页| 欧美精品国产综合久久| 成人av天堂丝袜在线观看| 欧美爆乳肉感大码在线观看| 日美女屁股黄邑视频| 午夜的视频在线观看| 一本一本久久a久久精品综合不卡 亚洲另类综合一区小说 | 岛国免费大片在线观看| 啊啊好大好爽啊啊操我啊啊视频 | 婷婷综合蜜桃av在线| 美女日逼视频免费观看| av网址国产在线观看| 天天干天天啪天天舔| 99热久久极品热亚洲| 日本裸体熟妇区二区欧美| 97人妻总资源视频| 日本韩国在线观看一区二区| 一区二区三区av高清免费| 久久久精品999精品日本| 女生自摸在线观看一区二区三区| 久草福利电影在线观看| 动漫美女的小穴视频| 青娱乐最新视频在线| 国产综合高清在线观看| 91一区精品在线观看| 日本黄色三级高清视频| 国产熟妇乱妇熟色T区| av俺也去在线播放| 97少妇精品在线观看| 自拍偷拍一区二区三区图片| 亚洲一区二区三区uij| 亚洲自拍偷拍综合色| 51国产偷自视频在线播放| 五月婷婷在线观看视频免费| 久久精品在线观看一区二区| av日韩在线免费播放| 亚洲av午夜免费观看| 偷拍自拍 中文字幕| 久草视频在线看免费| 97人人妻人人澡人人爽人人精品| 亚洲 清纯 国产com| 丰满少妇人妻xxxxx| 一色桃子久久精品亚洲| 久久久久久99国产精品| 丝袜美腿欧美另类 中文字幕| 国产黄网站在线观看播放| 在线观看av2025| 77久久久久国产精产品| 亚洲女人的天堂av| 中文字幕日韩91人妻在线| 中国黄片视频一区91| 欧美日韩国产一区二区三区三州 | 久久这里只有精品热视频 | 日本啪啪啪啪啪啪啪| av在线资源中文字幕| 青娱乐蜜桃臀av色| 亚洲午夜电影之麻豆| 国产熟妇乱妇熟色T区| 中文字幕一区二 区二三区四区| 国产 在线 免费 精品| 免费看国产av网站| 成人蜜臀午夜久久一区| 天干天天天色天天日天天射| 手机看片福利盒子日韩在线播放| 黑人变态深video特大巨大| 午夜极品美女福利视频| 国产午夜无码福利在线看| 精品国产成人亚洲午夜| 亚洲自拍偷拍综合色| 男女第一次视频在线观看| 中文字幕一区二区亚洲一区| 日本www中文字幕| 午夜在线观看一区视频| 91av中文视频在线| 精品国产成人亚洲午夜| 97精品成人一区二区三区| 亚洲福利精品视频在线免费观看| 亚洲国产精品免费在线观看| 欧美xxx成人在线| 一区二区三区另类在线| 国产精品久久久久久久久福交| 99热99这里精品6国产| 成年人免费看在线视频| 日本少妇高清视频xxxxx | 97瑟瑟超碰在线香蕉| 特级无码毛片免费视频播放| 国产黑丝高跟鞋视频在线播放| 久久久久久九九99精品| 亚洲偷自拍高清视频| 欧美特色aaa大片| 久久久精品国产亚洲AV一| 日本少妇的秘密免费视频| 亚洲国产40页第21页| 国产精品视频男人的天堂| 欧美特级特黄a大片免费| 蜜桃色婷婷久久久福利在线| 精品亚洲国产中文自在线| 精品区一区二区三区四区人妻| 精品久久久久久久久久久a√国产| 天堂av狠狠操蜜桃| 欧美第一页在线免费观看视频| 亚洲精品国产在线电影| 宅男噜噜噜666国产| 在线免费观看日本伦理| 北条麻妃肉色丝袜视频| 999九九久久久精品| 久久机热/这里只有| 天天操夜夜骑日日摸| 国产精品久久久久久久女人18| 久久精品久久精品亚洲人| 久久精品国产亚洲精品166m| 鸡巴操逼一级黄色气| 伊人开心婷婷国产av | 国产在线观看免费人成短视频| 黄色男人的天堂视频| 国产成人精品久久二区91| 青青青青青青青青青青草青青| 亚洲国产第一页在线观看| 久久国产精品精品美女| 亚洲va天堂va国产va久| av网址在线播放大全| 77久久久久国产精产品| 日本福利午夜电影在线观看| 亚洲少妇高潮免费观看| 色婷婷综合激情五月免费观看| 欧美 亚洲 另类综合| 欧美va不卡视频在线观看| gav成人免费播放| 亚洲国产精品中文字幕网站| 18禁污污污app下载| 青青青青在线视频免费观看| 日本一区二区三区免费小视频| 亚洲国产精品久久久久蜜桃| 中文字幕人妻av在线观看| 久久香蕉国产免费天天| 中文字幕中文字幕人妻| av视屏免费在线播放| 国产精品日韩欧美一区二区| 国产精品成久久久久三级蜜臀av| 欧美激情电影免费在线| 久久久久久久久久一区二区三区| 亚洲国产在线精品国偷产拍 | 男人插女人视频网站| 中文字幕 亚洲av| 男生舔女生逼逼视频| 一区二区三区四区视频在线播放| 熟女91pooyn熟女| 黄片大全在线观看观看| 99re国产在线精品| 国产高清在线在线视频| 在线观看免费视频色97| 精品av国产一区二区三区四区| 亚洲伊人av天堂有码在线| 熟女人妻三十路四十路人妻斩| 色综合久久久久久久久中文| 视频一区二区综合精品| 日本午夜爽爽爽爽爽视频在线观看| 熟女妇女老妇一二三区| 91久久精品色伊人6882| 国产精品人妻66p| 91久久精品色伊人6882| 国产欧美精品不卡在线| 欧美一区二区中文字幕电影| 欧美一区二区三区高清不卡tv| 色哟哟国产精品入口| 青草青永久在线视频18| 国产中文字幕四区在线观看| 中文字幕视频一区二区在线观看| 亚洲蜜臀av一区二区三区九色| 国产成人精品亚洲男人的天堂| 国产亚洲四十路五十路| 日韩精品中文字幕播放| 人妻丝袜精品中文字幕| 一区二区三区视频,福利一区二区| 国产亚洲国产av网站在线| 天天插天天狠天天操| 亚洲 自拍 色综合图| 精品亚洲在线免费观看| 四川五十路熟女av| 亚洲少妇人妻无码精品| 国产卡一卡二卡三乱码手机| 一区二区三区视频,福利一区二区| av在线免费中文字幕| 日韩中文字幕在线播放第二页| 中文亚洲欧美日韩无线码| 欧美日韩一级黄片免费观看| 国产一区二区在线欧美| 美女小视频网站在线| 亚洲天堂第一页中文字幕| 人妻丝袜精品中文字幕| 岛国青草视频在线观看| 在线亚洲天堂色播av电影| 女警官打开双腿沦为性奴| 天天日天天日天天擦| 天堂av中文在线最新版| 青青草成人福利电影| 五十路在线观看完整版| 加勒比视频在线免费观看| 天堂av在线官网中文| 天天色天天舔天天射天天爽| 国产av国片精品一区二区| 在线观看欧美黄片一区二区三区| 少妇人妻二三区视频| 久久这里有免费精品| 91she九色精品国产| 男女啪啪啪啪啪的网站| 丝袜长腿第一页在线| 欧美精产国品一二三产品区别大吗| 少妇露脸深喉口爆吞精| 老司机福利精品视频在线| 国产av福利网址大全| av中文字幕在线导航| 久久艹在线观看视频| 顶级尤物粉嫩小尤物网站| 中文字幕无码一区二区免费| 又粗又硬又猛又黄免费30| 精内国产乱码久久久久久| 五十路人妻熟女av一区二区| 久碰精品少妇中文字幕av| 中文字幕在线视频一区二区三区| 99re国产在线精品| 国产亚洲成人免费在线观看 | 亚洲精品高清自拍av| 天天干天天日天天干天天操| 天堂av在线官网中文| 国产视频一区在线观看| yellow在线播放av啊啊啊| 极品粉嫩小泬白浆20p主播| 欧美麻豆av在线播放| 91老师蜜桃臀大屁股| 国产成人自拍视频在线免费观看| 欧美老鸡巴日小嫩逼| 人妻3p真实偷拍一二区| 青青青青草手机在线视频免费看| 啪啪啪18禁一区二区三区| 2020中文字幕在线播放| 大陆av手机在线观看| 大香蕉伊人国产在线| av乱码一区二区三区| 日韩欧美一级aa大片| 国产精品视频资源在线播放| 亚洲福利精品视频在线免费观看| 黑人大几巴狂插日本少妇| 大香蕉伊人国产在线| 家庭女教师中文字幕在线播放| 视频在线免费观看你懂得| 国产又色又刺激在线视频| 亚洲免费福利一区二区三区| 美日韩在线视频免费看| 久久久久久97三级| 好太好爽好想要免费| 天天色天天舔天天射天天爽 | 亚洲av无硬久久精品蜜桃| 加勒比视频在线免费观看| 天天操天天爽天天干| 午夜精品一区二区三区更新| 经典av尤物一区二区| 天干天天天色天天日天天射| 夏目彩春在线中文字幕| 免费手机黄页网址大全| 日本熟妇丰满厨房55| 午夜蜜桃一区二区三区| 亚洲成人熟妇一区二区三区 | 日本脱亚入欧是指什么| 国产精品视频资源在线播放 | 69精品视频一区二区在线观看| 在线免费观看日本伦理| 欧美久久久久久三级网| 人妻少妇中文有码精品| 91天堂天天日天天操| 午夜国产免费福利av| 欧美久久一区二区伊人| 天天日天天干天天要| 午夜精品久久久久久99热| 成人午夜电影在线观看 久久| 国产精品成人xxxx| 人妻少妇亚洲精品中文字幕| 国产男女视频在线播放| 好男人视频在线免费观看网站| 2022国产精品视频| 国产成人无码精品久久久电影| 狍和女人的王色毛片| 亚洲精品在线资源站| 欧美成人精品在线观看| 97超碰最新免费在线观看| 新97超碰在线观看| 欧美伊人久久大香线蕉综合| 日本性感美女三级视频| 青青草精品在线视频观看| 色呦呦视频在线观看视频| 久久永久免费精品人妻专区 | 高潮视频在线快速观看国家快速| 蝴蝶伊人久久中文娱乐网| yy6080国产在线视频| 精品日产卡一卡二卡国色天香| 19一区二区三区在线播放| 综合页自拍视频在线播放| 一级黄片久久久久久久久| 日本欧美视频在线观看三区| 欧洲亚洲欧美日韩综合| 五月激情婷婷久久综合网| 青青伊人一精品视频| 人妻熟女在线一区二区| 午夜福利资源综合激情午夜福利资| 国产高潮无码喷水AV片在线观看| 亚洲蜜臀av一区二区三区九色| 青青草精品在线视频观看| 国产精品精品精品999| 天天操天天射天天操天天天| 亚洲老熟妇日本老妇| 中文字幕第1页av一天堂网 | 韩国爱爱视频中文字幕| 免费观看丰满少妇做受| 老师啊太大了啊啊啊尻视频| 视频一区二区在线免费播放| 精品少妇一二三视频在线| 岛国青草视频在线观看| 成熟丰满熟妇高潮xx×xx| 操的小逼流水的文章| 加勒比视频在线免费观看| 欧美视频不卡一区四区| 91精品综合久久久久3d动漫| 精品国产高潮中文字幕| 2022国产综合在线干| yy6080国产在线视频| 黑人大几巴狂插日本少妇| 黄色黄色黄片78在线| 天堂av狠狠操蜜桃| aiss午夜免费视频| 97资源人妻免费在线视频| 人人超碰国字幕观看97| 成年美女黄网站18禁久久| 97香蕉碰碰人妻国产樱花| 亚洲人妻30pwc| 天天日天天天天天天天天天天| 啊慢点鸡巴太大了啊舒服视频| 中文字幕人妻一区二区视频| 成人动漫大肉棒插进去视频| 肏插流水妹子在线乐播下载| 亚洲一区制服丝袜美腿| 日本熟妇一区二区x x| 日本性感美女视频网站| 99re国产在线精品| 999久久久久999| 香蕉aⅴ一区二区三区| avjpm亚洲伊人久久| 熟女人妻在线观看视频| 国产亚洲精品品视频在线| 少妇人妻二三区视频| 中文字幕免费福利视频6| 久久久久久久精品老熟妇| 视频二区在线视频观看| 新97超碰在线观看| 欧美亚洲免费视频观看| 亚洲va国产va欧美va在线| 人妻少妇中文有码精品| 97人妻人人澡爽人人精品| 最新国产亚洲精品中文在线| 在线观看一区二区三级| 国产视频精品资源网站| 人人妻人人爽人人澡人人精品| aⅴ五十路av熟女中出| 美女在线观看日本亚洲一区| 在线观看视频污一区| 色偷偷伊人大杳蕉综合网| 噜噜色噜噜噜久色超碰| 老师让我插进去69AV| 久久精品在线观看一区二区| av在线shipin| 福利午夜视频在线观看| 精品人妻一二三区久久| 亚洲国产在人线放午夜| av久久精品北条麻妃av观看| 亚洲伊人色一综合网| 一区二区三区美女毛片| 在线观看911精品国产| 91久久国产成人免费网站| 亚洲av天堂在线播放| 色伦色伦777国产精品| 久久午夜夜伦痒痒想咳嗽P| 亚洲av人人澡人人爽人人爱| 中文人妻AV久久人妻水| 伊人综合免费在线视频| 久久久久久99国产精品| 欧美精产国品一二三区| 粉嫩欧美美人妻小视频| 久草视频在线看免费| 日本五十路熟新垣里子| AV无码一区二区三区不卡| 精品欧美一区二区vr在线观看 | 亚洲 欧美 精品 激情 偷拍| 亚洲精品福利网站图片| 国产熟妇乱妇熟色T区| 欧美亚洲偷拍自拍色图| 欧美天堂av无线av欧美| 一区二区久久成人网| av中文字幕国产在线观看| 亚洲最大黄了色网站| 精品一区二区三区在线观看| 在线 中文字幕 一区| 一区二区视频在线观看免费观看| 成年美女黄网站18禁久久| chinese国产盗摄一区二区| 日本美女成人在线视频| 麻豆性色视频在线观看| 国产日本欧美亚洲精品视| 国产精品免费不卡av| 国产实拍勾搭女技师av在线| 一区二区熟女人妻视频| 玩弄人妻熟妇性色av少妇| 国产福利小视频二区| 亚洲精品国偷自产在线观看蜜桃| 国产免费高清视频视频| jiujiure精品视频在线| 天天操天天干天天日狠狠插| 精品一区二区三区三区88 | 不卡一区一区三区在线| 亚洲av可乐操首页| 中文字幕在线乱码一区二区| 57pao国产一区二区| 一区二区三区日本伦理| 91自产国产精品视频| 在线观看视频污一区| 天天操天天射天天操天天天| 大香蕉大香蕉大香蕉大香蕉大香蕉 | 日日夜夜精品一二三| 好男人视频在线免费观看网站| 视频 一区二区在线观看| 欧美乱妇无乱码一区二区| 北条麻妃肉色丝袜视频| 夜女神免费福利视频| 天天日夜夜干天天操| 在线 中文字幕 一区| 少妇人妻100系列| 青青社区2国产视频| 骚货自慰被发现爆操| 2021天天色天天干| 专门看国产熟妇的网站| 天天干天天爱天天色| 专门看国产熟妇的网站| 国产麻豆91在线视频| 91在线免费观看成人| 中国熟女@视频91| 免费观看理论片完整版| 自拍偷拍一区二区三区图片| 一区二区三区在线视频福利| 亚洲熟妇无码一区二区三区| 国产精品午夜国产小视频| 国产视频在线视频播放| 亚洲视频乱码在线观看| 中文字幕一区二 区二三区四区| 青青草国内在线视频精选| 久草视频首页在线观看| 国产一区二区欧美三区| 日本av在线一区二区三区| 国产久久久精品毛片| 91人妻精品一区二区在线看| 岛国黄色大片在线观看| 亚洲中文字字幕乱码| 中文字幕中文字幕人妻| 成人av天堂丝袜在线观看| 在线播放 日韩 av| 精品国产污污免费网站入口自 | 最新激情中文字幕视频| 亚洲少妇高潮免费观看| 黄色成年网站午夜在线观看| 中出中文字幕在线观看| 日韩美av高清在线| 18禁网站一区二区三区四区 | 国产日韩欧美美利坚蜜臀懂色| 国产精品国产三级国产午| 特大黑人巨大xxxx| 大胆亚洲av日韩av| 黄色无码鸡吧操逼视频| 色天天天天射天天舔| 欧美激情电影免费在线| 青青青青青青青在线播放视频| 大鸡巴插入美女黑黑的阴毛| 天堂v男人视频在线观看| 岛国毛片视频免费在线观看| sejizz在线视频| 亚洲另类图片蜜臀av| 在线观看亚洲人成免费网址| 韩国爱爱视频中文字幕| 亚洲午夜伦理视频在线| 大黑人性xxxxbbbb| av在线免费资源站| 狠狠躁狠狠爱网站视频| japanese五十路熟女熟妇| 亚洲最大免费在线观看| 国产日韩av一区二区在线| 国产欧美精品不卡在线| 好男人视频在线免费观看网站| 亚洲av日韩高清hd| 国产日本精品久久久久久久| 9久在线视频只有精品| 黄色大片男人操女人逼| 亚洲一区久久免费视频| 福利一二三在线视频观看| 国产九色91在线观看精品| 亚洲综合在线视频可播放| 日本a级视频老女人| 亚洲在线一区二区欧美| 日韩写真福利视频在线观看| 精品一区二区三区午夜| 国产白嫩美女一区二区| 中文字幕网站你懂的| 真实国模和老外性视频| 日韩中文字幕精品淫| 9久在线视频只有精品| 扒开让我视频在线观看| 亚洲 中文 自拍 无码| 中文字幕人妻被公上司喝醉在线| 国产伦精品一区二区三区竹菊| 亚洲第一黄色在线观看| 熟女在线视频一区二区三区| 大香蕉大香蕉在线有码 av| 国产精品亚洲在线观看| 欧美亚洲牲夜夜综合久久| 91精品国产综合久久久蜜| 91一区精品在线观看| 国产欧美精品一区二区高清| 亚洲av日韩精品久久久| 久久久久久久精品老熟妇| 婷婷激情四射在线观看视频| 阿v天堂2014 一区亚洲| 亚洲va国产va欧美va在线| 视频 一区二区在线观看| 人妻无码色噜噜狠狠狠狠色| 午夜精品一区二区三区4| 国产精品一二三不卡带免费视频| 亚洲熟妇无码一区二区三区| av中文在线天堂精品| 精品成人啪啪18免费蜜臀| 久久久久五月天丁香社区| 9色精品视频在线观看| 男生舔女生逼逼的视频| 真实国产乱子伦一区二区| 国产高清在线在线视频| 欧美亚洲牲夜夜综合久久| 2o22av在线视频| 成人在线欧美日韩国产| 18禁无翼鸟成人在线| 免费无码人妻日韩精品一区二区| 亚洲av男人的天堂你懂的| 91国产在线免费播放| 77久久久久国产精产品| 亚洲精品国品乱码久久久久| 黄片色呦呦视频免费看| 538精品在线观看视频| 美女福利视频网址导航| 欧美乱妇无乱码一区二区| 18禁网站一区二区三区四区| 日本性感美女三级视频| 边摸边做超爽毛片18禁色戒| 88成人免费av网站| 国产精品欧美日韩区二区| 福利一二三在线视频观看| 天天摸天天干天天操科普| 在线播放一区二区三区Av无码| 日视频免费在线观看| 日本福利午夜电影在线观看| 国产露脸对白在线观看| 免费在线观看视频啪啪| 特级欧美插插插插插bbbbb| 亚洲成a人片777777| 欧美日本国产自视大全| 成人国产激情自拍三区| 成人激情文学网人妻| 国产福利小视频大全| 久久久久久久久久性潮| www,久久久,com| 久久久久只精品国产三级| 中国产一级黄片免费视频播放| 亚洲免费国产在线日韩| 国产熟妇乱妇熟色T区| 男人插女人视频网站| 美女张开腿让男生操在线看| 午夜的视频在线观看| av手机在线观播放网站| 18禁美女羞羞免费网站| 一级黄色av在线观看| 91社福利《在线观看| 肏插流水妹子在线乐播下载| 大胆亚洲av日韩av| 中文字幕午夜免费福利视频| 91天堂天天日天天操| 一区二区三区视频,福利一区二区| 91‖亚洲‖国产熟女| 天天想要天天操天天干| 91精品高清一区二区三区| 亚洲乱码中文字幕在线| 亚洲无码一区在线影院| av天堂中文免费在线| 九九视频在线精品播放| 国际av大片在线免费观看| 啊啊啊想要被插进去视频| 午夜久久久久久久精品熟女| 快插进小逼里大鸡吧视频| 亚洲天堂第一页中文字幕| 亚洲天堂精品久久久| 久草免费人妻视频在线| 动漫美女的小穴视频| 欧美日韩亚洲国产无线码| 免费一级黄色av网站| 777奇米久久精品一区| 欧美日韩一区二区电影在线观看| 国产精品黄片免费在线观看| 超pen在线观看视频公开97| 97精品视频在线观看| 久久久久五月天丁香社区| 超碰97人人做人人爱| 久久久久五月天丁香社区| 日韩美女精品视频在线观看网站| 亚洲色偷偷综合亚洲AV伊人| 日韩中文字幕精品淫| 国产极品美女久久久久久| 免费看国产又粗又猛又爽又黄视频| 欧美视频不卡一区四区| 亚洲成av人无码不卡影片一| 国产精品国产三级国产精东| 无忧传媒在线观看视频| av手机在线观播放网站| 国产成人精品亚洲男人的天堂| 最新中文字幕免费视频| 蜜桃视频17c在线一区二区| 真实国产乱子伦一区二区| 天天干天天日天天干天天操| 男人操女人的逼免费视频| 亚洲天天干 夜夜操| 日美女屁股黄邑视频| 插小穴高清无码中文字幕| 中文字幕综合一区二区| 福利在线视频网址导航| 欧美日韩国产一区二区三区三州 | 2018在线福利视频| 77久久久久国产精产品| 99国产精品窥熟女精品| 日本熟妇喷水xxx| 男人操女人的逼免费视频| 99婷婷在线观看视频| 久久精品国产23696| 岛国av高清在线成人在线| 人妻无码中文字幕专区| 免费看高清av的网站| 青青青青草手机在线视频免费看 | 大学生A级毛片免费视频| 中文字幕无码日韩专区免费| 亚洲精品三级av在线免费观看| 啊慢点鸡巴太大了啊舒服视频| 性欧美日本大妈母与子| 青青色国产视频在线| 亚洲少妇高潮免费观看| 青青青青青青草国产| 国产精品sm调教视频| 日本少妇人妻xxxxx18| 老司机深夜免费福利视频在线观看| 日韩精品啪啪视频一道免费| japanese五十路熟女熟妇| 欧美精品中文字幕久久二区| 成人精品在线观看视频| 啪啪啪啪啪啪啪啪av| 亚洲欧美激情国产综合久久久 | 青青尤物在线观看视频网站| 东京热男人的av天堂| 亚洲一区二区三区精品乱码| 91大神福利视频网| 国产精品黄色的av| 亚洲精品成人网久久久久久小说| 亚洲一区自拍高清免费视频| 五色婷婷综合狠狠爱| 看一级特黄a大片日本片黑人| 日本阿v视频在线免费观看| 18禁免费av网站| 国产揄拍高清国内精品对白| 98精产国品一二三产区区别| 日韩中文字幕福利av| 99久久中文字幕一本人| 在线制服丝袜中文字幕| 天天射,天天操,天天说| 淫秽激情视频免费观看| 国产成人精品久久二区91| 久久免费看少妇高潮完整版| 激情五月婷婷免费视频| 91av精品视频在线| 午夜精品在线视频一区| 91麻豆精品久久久久| 一级A一级a爰片免费免会员| 又粗又硬又猛又爽又黄的| 99精品视频在线观看免费播放 | 888亚洲欧美国产va在线播放| 亚洲 中文 自拍 无码| 精品一区二区三区三区88| 国产女人露脸高潮对白视频| 欧美日韩人妻久久精品高清国产| 99国内精品永久免费视频| 久久国产精品精品美女| 一区二区三区美女毛片| av中文字幕国产在线观看| 在线新三级黄伊人网| 亚洲午夜福利中文乱码字幕| 性欧美日本大妈母与子| 中国视频一区二区三区| 欧美va亚洲va天堂va| 亚洲欧美激情人妻偷拍| 久久h视频在线观看| 91国语爽死我了不卡| 91精品综合久久久久3d动漫| 快插进小逼里大鸡吧视频| 一色桃子人妻一区二区三区| 晚上一个人看操B片| 男女之间激情网午夜在线| 在线国产精品一区二区三区| 中文字幕无码一区二区免费| 色伦色伦777国产精品| 91免费福利网91麻豆国产精品 | 91高清成人在线视频| 老熟妇凹凸淫老妇女av在线观看| 午夜精品在线视频一区| 日韩中文字幕精品淫| av手机在线免费观看日韩av| 端庄人妻堕落挣扎沉沦| 女同性ⅹxx女同hd| 精品久久久久久久久久久久人妻| 日本少妇人妻xxxxxhd| 国产综合高清在线观看| 日比视频老公慢点好舒服啊| 国产三级影院在线观看| 成人网18免费视频版国产| 激情内射在线免费观看| 午夜福利资源综合激情午夜福利资| 亚洲人成精品久久久久久久| 香蕉片在线观看av| 精品美女福利在线观看| 亚洲午夜电影在线观看| 风流唐伯虎电视剧在线观看| 青青青青青手机视频| 亚洲日产av一区二区在线| 一本久久精品一区二区| 欧美成人精品在线观看| 99久久超碰人妻国产| 成人av在线资源网站| 久草视频首页在线观看| 欧美美女人体视频一区| 精品视频国产在线观看| 边摸边做超爽毛片18禁色戒 | 成人亚洲国产综合精品| 91一区精品在线观看| 国产福利在线视频一区| 1024久久国产精品| 特级欧美插插插插插bbbbb| 人妻熟女中文字幕aⅴ在线| 欧美老鸡巴日小嫩逼| 男人天堂av天天操| 免费高清自慰一区二区三区网站| 亚洲一区二区三区uij| 免费av岛国天堂网站| 色婷婷综合激情五月免费观看 | av日韩在线观看大全| av大全在线播放免费| 免费看国产av网站| 人妻3p真实偷拍一二区| 久久午夜夜伦痒痒想咳嗽P| av天堂中文免费在线| 精品美女久久久久久| 2020久久躁狠狠躁夜夜躁 | 亚洲欧洲一区二区在线观看| 一区二区三区四区视频在线播放| 99热99re在线播放| 欧美日韩不卡一区不区二区| 成人乱码一区二区三区av| 日本女人一级免费片| 护士小嫩嫩又紧又爽20p| 春色激情网欧美成人| 欧美亚洲偷拍自拍色图| 国产va在线观看精品| 亚洲男人让女人爽的视频| 国产又粗又猛又爽又黄的视频在线| 天天操天天爽天天干| 孕妇奶水仑乱A级毛片免费看| 大肉大捧一进一出好爽在线视频| 老司机在线精品福利视频| 国产va在线观看精品| 国产91精品拍在线观看| 色综合久久久久久久久中文| 91精品激情五月婷婷在线| 日本一区美女福利视频| 天天日天天敢天天干| 国产视频精品资源网站| 亚洲综合在线观看免费| 国产a级毛久久久久精品| 欧美中国日韩久久精品| 人妻少妇性色欲欧美日韩| sspd152中文字幕在线| 综合激情网激情五月天| 成人伊人精品色xxxx视频| 天天日天天添天天爽| 中文字幕AV在线免费看 | 100%美女蜜桃视频| 成人性爱在线看四区| 19一区二区三区在线播放| 好吊操视频这里只有精品| 天码人妻一区二区三区在线看| 99精品视频之69精品视频| 色97视频在线播放| 极品丝袜一区二区三区| 日本性感美女写真视频| 国产在线免费观看成人| 婷婷色国产黑丝少妇勾搭AV| 女生自摸在线观看一区二区三区 | 天天色天天操天天舔| 中英文字幕av一区| 最新中文字幕免费视频| 欧美在线偷拍视频免费看| 午夜福利人人妻人人澡人人爽| 日韩人妻丝袜中文字幕| 天堂资源网av中文字幕| 欧美亚洲少妇福利视频| 啪啪啪啪啪啪啪啪av| 黄色无码鸡吧操逼视频| 韩国爱爱视频中文字幕| 黑人性生活视频免费看| 91精品国产91青青碰| 熟女妇女老妇一二三区| 蜜桃色婷婷久久久福利在线| 欧美中国日韩久久精品| 被大鸡吧操的好舒服视频免费| 直接能看的国产av| 欧美成人一二三在线网| 中文字幕在线免费第一页| 亚洲精品 欧美日韩| 都市家庭人妻激情自拍视频| 99久久超碰人妻国产| 清纯美女在线观看国产| 天天干夜夜操啊啊啊| 懂色av蜜桃a v| 成人免费公开视频无毒| 92福利视频午夜1000看| 桃色视频在线观看一区二区| 国产女人被做到高潮免费视频| 中文字幕免费福利视频6| 99热久久这里只有精品| 91麻豆精品秘密入口在线观看| 亚洲午夜高清在线观看| 福利一二三在线视频观看| 亚洲欧美一区二区三区电影| 天天色天天操天天透| 影音先锋女人av噜噜色| 日韩美女精品视频在线观看网站| 国产综合高清在线观看| 一区二区三区四区视频在线播放| 亚洲免费av在线视频| okirakuhuhu在线观看| 天天日天天干天天干天天日| 中文字幕高清免费在线人妻| 热思思国产99re| 亚洲 欧美 精品 激情 偷拍| 噜噜色噜噜噜久色超碰| 亚洲码av无色中文| 午夜精品久久久久麻豆影视| 亚洲 欧美 精品 激情 偷拍| 欧美美女人体视频一区| 视频一区 二区 三区 综合| 国产精品伦理片一区二区| 毛片一级完整版免费| 日韩美女搞黄视频免费| 日噜噜噜夜夜噜噜噜天天噜噜噜| av中文字幕国产在线观看| 天天日天天敢天天干| 噜噜色噜噜噜久色超碰| 国产在线拍揄自揄视频网站| 日本高清撒尿pissing| 欧美成人小视频在线免费看| 欧亚乱色一区二区三区| 久久精品国产亚洲精品166m| 免费男阳茎伸入女阳道视频| 久久丁香花五月天色婷婷| 亚洲成人国产av在线| 亚洲欧美成人综合在线观看| 日本丰满熟妇BBXBBXHD| 黄色成年网站午夜在线观看| 欧美xxx成人在线| 久久免看30视频口爆视频| AV天堂一区二区免费试看| 精品亚洲在线免费观看| 精品黑人一区二区三区久久国产| 动漫黑丝美女的鸡巴| 国产成人综合一区2区| 日本高清撒尿pissing| 人妻少妇一区二区三区蜜桃| 老司机在线精品福利视频| 欧美3p在线观看一区二区三区| 亚洲一区二区三区uij| 91天堂精品一区二区| 三级黄色亚洲成人av| 日本啪啪啪啪啪啪啪| 1区2区3区4区视频在线观看| 久久丁香花五月天色婷婷| 日韩精品电影亚洲一区| 亚洲特黄aaaa片| 午夜极品美女福利视频| 偷拍自拍 中文字幕| 91精品啪在线免费| av中文在线天堂精品| 日韩美av高清在线| 午夜极品美女福利视频| 天堂女人av一区二区| 国产精品自拍偷拍a| 日本午夜爽爽爽爽爽视频在线观看| 2020国产在线不卡视频 | www天堂在线久久| 成人午夜电影在线观看 久久| 免费十精品十国产网站| 中文字幕在线乱码一区二区| 最新91精品视频在线| 国产精品久久久久久久女人18| 97人妻总资源视频| 成年人该看的视频黄免费| 97国产在线av精品| 久久精品亚洲国产av香蕉| 大尺度激情四射网站| 成人网18免费视频版国产| 国产精品探花熟女在线观看| 动漫美女的小穴视频| 国产精品自拍视频大全| 日本成人不卡一区二区| 欧美黄片精彩在线免费观看| 成年人中文字幕在线观看| 美女少妇亚洲精选av| 任你操视频免费在线观看| 夏目彩春在线中文字幕| 精品国产高潮中文字幕| 欧美精品欧美极品欧美视频| 91精品激情五月婷婷在线| 91精品国产观看免费| 在线观看视频网站麻豆| 98精产国品一二三产区区别| 成人H精品动漫在线无码播放| 五十路老熟女码av| 亚洲综合色在线免费观看| 日本性感美女视频网站| 精品久久久久久高潮| 日韩激情文学在线视频| 中国熟女@视频91| 人人爽亚洲av人人爽av| 欧美国产亚洲中英文字幕| 国产之丝袜脚在线一区二区三区| 午夜激情精品福利视频| 天天日天天天天天天天天天天| 亚洲一级av无码一级久久精品| 国产亚洲欧美视频网站| 天堂av中文在线最新版| 亚洲一区久久免费视频| 97人人模人人爽人人喊| 精品91自产拍在线观看一区| 9久在线视频只有精品| 蜜桃臀av蜜桃臀av| 传媒在线播放国产精品一区| 欧美香蕉人妻精品一区二区| 久久久久久久精品成人热| 日本韩国免费福利精品| 一区二区三区四区五区性感视频| 日日爽天天干夜夜操| 大香蕉大香蕉在线有码 av| 一色桃子久久精品亚洲| 成人影片高清在线观看| 成人高清在线观看视频| 亚洲一区二区三区五区| 中文字幕一区二区亚洲一区| 日本熟女50视频免费| 日本在线不卡免费视频| 天天艹天天干天天操| 天天射夜夜操狠狠干| 无码国产精品一区二区高潮久久4 日韩欧美一级精品在线观看 | 男女之间激情网午夜在线| 激情人妻校园春色亚洲欧美 | 青娱乐极品视频青青草| 97人妻人人澡爽人人精品| 国产不卡av在线免费| 夜色撩人久久7777| 午夜蜜桃一区二区三区| 亚洲av无乱一区二区三区性色| 午夜的视频在线观看| 黄色片一级美女黄色片| 久久久久久97三级| 亚洲国产香蕉视频在线播放| 国产精品一二三不卡带免费视频| 五十路在线观看完整版| 精彩视频99免费在线| 日韩av免费观看一区| 丝袜美腿欧美另类 中文字幕| 在线视频精品你懂的| 天堂中文字幕翔田av| 成人精品在线观看视频| 自拍 日韩 欧美激情| 成人av在线资源网站| 丝袜肉丝一区二区三区四区在线看| 日韩欧美国产一区不卡| 亚洲2021av天堂| 久久精品国产999| 97国产精品97久久| 2020国产在线不卡视频| 青青操免费日综合视频观看| 成人伊人精品色xxxx视频| 丁香花免费在线观看中文字幕| 久久久麻豆精亚洲av麻花| 亚洲精品午夜aaa久久| lutube在线成人免费看| 成熟丰满熟妇高潮xx×xx | 沙月文乃人妻侵犯中文字幕在线| 超污视频在线观看污污污 | 亚洲欧美人精品高清| 91小伙伴中女熟女高潮| 老鸭窝日韩精品视频观看| 亚洲2021av天堂| 日韩a级精品一区二区| 国产精品系列在线观看一区二区| 午夜在线观看岛国av,com| 久久免看30视频口爆视频| 亚洲av成人免费网站| 五色婷婷综合狠狠爱| 91精品视频在线观看免费| 男生用鸡操女生视频动漫| 熟女视频一区,二区,三区| 东游记中文字幕版哪里可以看到| 日韩欧美一级黄片亚洲| 66久久久久久久久久久| 色哟哟在线网站入口| 社区自拍揄拍尻屁你懂的 | 欧美精品黑人性xxxx| 亚洲综合一区成人在线| 国产熟妇一区二区三区av| 美女大bxxxx内射| 午夜大尺度无码福利视频| 亚洲精品午夜久久久久| 老司机欧美视频在线看| 阴茎插到阴道里面的视频| 班长撕开乳罩揉我胸好爽| 丁香花免费在线观看中文字幕| 狠狠的往里顶撞h百合| 欧美视频中文一区二区三区| 很黄很污很色的午夜网站在线观看| jiujiure精品视频在线| 四川乱子伦视频国产vip| 成人国产小视频在线观看| 精品一区二区三区欧美| 在线观看的a站 最新| 成年人中文字幕在线观看| 一区二区视频在线观看视频在线| 日韩欧美亚洲熟女人妻| 在线视频这里只有精品自拍| 岛国av高清在线成人在线| 黄色成年网站午夜在线观看| 久精品人妻一区二区三区| 成人亚洲国产综合精品| 亚洲欧美激情国产综合久久久 | 人妻少妇精品久久久久久| 日本丰满熟妇BBXBBXHD| 在线观看欧美黄片一区二区三区| 18禁污污污app下载| 久久99久久99精品影院| 亚洲麻豆一区二区三区| 2021年国产精品自拍| aiss午夜免费视频| 男人靠女人的逼视频| 中文字幕熟女人妻久久久| xxx日本hd高清| mm131美女午夜爽爽爽| 污污小视频91在线观看| 91精品啪在线免费| 一区二区久久成人网| 男大肉棒猛烈插女免费视频| 大香蕉伊人中文字幕| 国产精品黄页网站视频| 天天做天天干天天舔| 亚洲在线观看中文字幕av| 日韩剧情片电影在线收看| 九九热99视频在线观看97| 五十路熟女人妻一区二| 欧美在线偷拍视频免费看| 大鸡巴插入美女黑黑的阴毛| 喷水视频在线观看这里只有精品| 国产av福利网址大全| 热思思国产99re| 亚洲成人黄色一区二区三区| 亚洲精品午夜aaa久久| 香港三日本三韩国三欧美三级| 中文字幕之无码色多多| 亚洲一级 片内射视正片| 亚洲精品无码色午夜福利理论片| a v欧美一区=区三区| 久草视频首页在线观看| 99精品免费观看视频| 免费手机黄页网址大全| 99久久99久国产黄毛片| 亚洲偷自拍高清视频| 国产精品久久久久国产三级试频| 一色桃子人妻一区二区三区| 中文字幕日韩91人妻在线| 97a片免费在线观看| 亚洲一区二区三区五区| 欧美激情精品在线观看| 亚洲欧美人精品高清| 大香蕉伊人国产在线| 快插进小逼里大鸡吧视频| 喷水视频在线观看这里只有精品| 男人在床上插女人视频| 久草电影免费在线观看| 久久久久国产成人精品亚洲午夜| 班长撕开乳罩揉我胸好爽| 中文字幕国产专区欧美激情| 这里只有精品双飞在线播放| 青青青爽视频在线播放| 日本女大学生的黄色小视频| 综合精品久久久久97| 天天操夜夜骑日日摸| 91色老99久久九九爱精品| brazzers欧熟精品系列| 中文字幕一区二区三区人妻大片| 青青青青草手机在线视频免费看 | 特大黑人巨大xxxx| 大香蕉大香蕉在线有码 av| 亚洲 中文 自拍 无码| 日本黄在免费看视频| 亚洲国产欧美一区二区三区久久| 岛国黄色大片在线观看| 亚洲av自拍偷拍综合| 亚洲熟色妇av日韩熟色妇在线| 一区二区三区美女毛片| 亚洲区欧美区另类最新章节| 日韩欧美在线观看不卡一区二区| 特一级特级黄色网片| 91在线视频在线精品3| 超鹏97历史在线观看| 亚洲精品 日韩电影| 成年人啪啪视频在线观看| 福利视频广场一区二区| 扒开腿挺进肉嫩小18禁视频| 午夜蜜桃一区二区三区| 密臀av一区在线观看| 欧美亚洲免费视频观看| 久久机热/这里只有| 欧美精品伦理三区四区| 欧美在线精品一区二区三区视频| 丰满少妇人妻xxxxx| 在线观看欧美黄片一区二区三区| 国产麻豆91在线视频| rct470中文字幕在线| 精品亚洲中文字幕av| 2020中文字幕在线播放| 日本成人不卡一区二区| 亚洲图库另类图片区| 揄拍成人国产精品免费看视频| 二区中出在线观看老师| 最近中文2019年在线看| 日韩一个色综合导航| 男生舔女生逼逼的视频| 人妻熟女中文字幕aⅴ在线| 扒开腿挺进肉嫩小18禁视频| 在线免费观看日本片| 看一级特黄a大片日本片黑人| 亚洲综合一区成人在线| 狍和女人的王色毛片| 沈阳熟妇28厘米大战黑人| 国产精品黄色的av| 免费黄色成人午夜在线网站| 少妇人妻二三区视频| 在线免费观看黄页视频| 91精品综合久久久久3d动漫| 欧美在线精品一区二区三区视频| 国产美女精品福利在线| 日本精品一区二区三区在线视频。| 成人区人妻精品一区二视频| 狠狠操狠狠操免费视频| av手机在线免费观看日韩av| tube69日本少妇| 国产一区二区神马久久| 一二三中文乱码亚洲乱码one| 欧亚日韩一区二区三区观看视频| 国产精品一二三不卡带免费视频| 亚洲精品国产在线电影| 好男人视频在线免费观看网站| 日韩欧美高清免费在线| 极品性荡少妇一区二区色欲| 中国视频一区二区三区| 曰本无码人妻丰满熟妇啪啪| 我想看操逼黄色大片| 婷婷色国产黑丝少妇勾搭AV| 91av精品视频在线| 97人妻人人澡爽人人精品| 99精品国自产在线人| 特级无码毛片免费视频播放| 超碰中文字幕免费观看| 国产在线免费观看成人| 在线免费观看视频一二区| 国产午夜福利av导航| 伊人成人在线综合网| 18禁美女黄网站色大片下载| 99热久久极品热亚洲| 日本啪啪啪啪啪啪啪| 亚洲va欧美va人人爽3p| 欧美一级视频一区二区| 亚洲精品一区二区三区老狼| av天堂中文字幕最新| 在线 中文字幕 一区| 日本少妇的秘密免费视频| 亚洲成av人无码不卡影片一| 岛国青草视频在线观看| 操日韩美女视频在线免费看| 美女大bxxxx内射| 精品区一区二区三区四区人妻| 白嫩白嫩美女极品国产在线观看| 久久精品视频一区二区三区四区| 午夜毛片不卡在线看| 顶级尤物粉嫩小尤物网站| 五月激情婷婷久久综合网| 亚洲人妻国产精品综合| 99精品国产免费久久| 国产91久久精品一区二区字幕| 国产午夜无码福利在线看| 成人高潮aa毛片免费| 久久久久久九九99精品| 福利午夜视频在线观看| 国产又粗又猛又爽又黄的视频在线| 91麻豆精品传媒国产黄色片| 国内精品在线播放第一页| 91精品资源免费观看| 91国语爽死我了不卡| 很黄很污很色的午夜网站在线观看| 少妇一区二区三区久久久| 熟女人妻一区二区精品视频| 97人妻无码AV碰碰视频| 亚洲第一黄色在线观看| 91大神福利视频网| 91av中文视频在线| 女同性ⅹxx女同h偷拍| 天天做天天爽夜夜做少妇| 99热这里只有精品中文| 午夜美女福利小视频| 91九色国产porny蝌蚪| 亚洲av日韩精品久久久| 日本真人性生活视频免费看| 男生用鸡操女生视频动漫| 国产污污污污网站在线| 人妻无码色噜噜狠狠狠狠色| 全国亚洲男人的天堂| 亚洲精品乱码久久久久久密桃明| sw137 中文字幕 在线| 亚洲美女美妇久久字幕组| 免费观看污视频网站| 日本啪啪啪啪啪啪啪| 又粗又硬又猛又爽又黄的| 大鸡吧插入女阴道黄色片| 不卡一不卡二不卡三| 大陆胖女人与丈夫操b国语高清| 人妻凌辱欧美丰满熟妇| 亚洲免费国产在线日韩| 成人网18免费视频版国产| 2018在线福利视频| 天天躁日日躁狠狠躁av麻豆| 福利午夜视频在线观看| 99国内精品永久免费视频| 天天日天天干天天要| 国产又粗又硬又大视频| 丰满熟女午夜福利视频| 国内资源最丰富的网站| 老司机在线精品福利视频| 91自产国产精品视频| 91人妻人人做人人爽在线| 日韩影片一区二区三区不卡免费| 亚洲精品国品乱码久久久久| 欧美一区二区三区高清不卡tv| 亚洲图片欧美校园春色| 成人午夜电影在线观看 久久| 久久精品国产999| 激情综合治理六月婷婷| 国产福利小视频免费观看| 成人在线欧美日韩国产| 91社福利《在线观看| 姐姐的朋友2在线观看中文字幕| 无码中文字幕波多野不卡| 日韩精品一区二区三区在线播放| 少妇人妻100系列| 操的小逼流水的文章| 插小穴高清无码中文字幕| 在线免费观看黄页视频| 欧美在线精品一区二区三区视频| 青青青青视频在线播放| 久久热久久视频在线观看| 99热国产精品666| 国产aⅴ一线在线观看| 91精品国产91青青碰| 黄色成人在线中文字幕| 40道精品招牌菜特色| 在线免费观看日本伦理| 五十路熟女人妻一区二区9933| 熟女人妻三十路四十路人妻斩| 亚洲免费在线视频网站| 2020韩国午夜女主播在线| 亚洲精品无码久久久久不卡| 四川五十路熟女av| 自拍偷拍一区二区三区图片| 97国产福利小视频合集| 久久久精品精品视频视频| 天堂v男人视频在线观看| 免费69视频在线看| 青青尤物在线观看视频网站| 韩国爱爱视频中文字幕| 欧美天堂av无线av欧美| 亚洲福利精品视频在线免费观看| 欧美一区二区三区四区性视频| 日韩美女福利视频网| 精彩视频99免费在线| 91精品国产91久久自产久强| 国产黄网站在线观看播放| 欧美精品亚洲精品日韩在线| 天天干天天日天天谢综合156| 国产精品黄大片在线播放| 色呦呦视频在线观看视频| 女生被男生插的视频网站| 亚洲精品中文字幕下载| 深田咏美亚洲一区二区| 国产女人叫床高潮大片视频| 亚洲高清一区二区三区视频在线| 在线观看视频网站麻豆| 成人av在线资源网站| 亚洲精品无码色午夜福利理论片| 青青青激情在线观看视频| 青青草人人妻人人妻| 婷婷六月天中文字幕| 亚洲卡1卡2卡三卡四老狼| 久久精品国产23696| 青青在线视频性感少妇和隔壁黑丝| 欧美日韩在线精品一区二区三| av天堂中文免费在线| 日辽宁老肥女在线观看视频| 国产激情av网站在线观看| 99re6热在线精品| 岛国免费大片在线观看| 蜜桃视频入口久久久| 国产精品视频一区在线播放| 北条麻妃高跟丝袜啪啪| 久久精品36亚洲精品束缚| 国产精品sm调教视频| 日本又色又爽又黄又粗| 久久h视频在线观看| 大白屁股精品视频国产| 亚洲一区av中文字幕在线观看| 欧美亚洲自偷自拍 在线| 99热99这里精品6国产| 国产日本欧美亚洲精品视| 一区二区三区四区视频| 国产欧美精品一区二区高清 | 男人插女人视频网站| 日韩在线中文字幕色| 女人精品内射国产99| 久久久久久久久久性潮| 男人天堂色男人av| 久久久久久国产精品| 性欧美激情久久久久久久| 又粗又硬又猛又黄免费30| 欧美区一区二区三视频| 国产九色91在线视频| 2019av在线视频| 亚洲人妻国产精品综合| 亚洲成人三级在线播放| 玖玖一区二区在线观看| 免费看国产av网站| 国产第一美女一区二区三区四区| 欧美一区二区三区啪啪同性| 午夜场射精嗯嗯啊啊视频| 老司机深夜免费福利视频在线观看| 鸡巴操逼一级黄色气| 中文字幕,亚洲人妻| huangse网站在线观看| 久久热久久视频在线观看| 亚洲成人线上免费视频观看| 9国产精品久久久久老师| 国产va在线观看精品| 操的小逼流水的文章| 免费在线观看视频啪啪| av中文字幕电影在线看| 欧美美女人体视频一区| 偷拍3456eee| 日日夜夜精品一二三| 91国产在线视频免费观看| 成人国产激情自拍三区| 超碰97人人澡人人| 久久久极品久久蜜桃| 中国视频一区二区三区| 欧美日韩激情啪啪啪| 91国语爽死我了不卡| 又粗又长 明星操逼小视频| 中文字幕一区二区人妻电影冢本| 人妻凌辱欧美丰满熟妇| 欧美黑人与人妻精品| 日辽宁老肥女在线观看视频| 激情五月婷婷免费视频| 熟女人妻一区二区精品视频| 日本人妻少妇18—xx| 男生舔女生逼逼视频| 国产午夜激情福利小视频在线| 福利视频网久久91| 成人综合亚洲欧美一区| 久久久久久久久久久久久97| 黄色中文字幕在线播放| 人妻爱爱 中文字幕| 日韩美av高清在线| 国产女人被做到高潮免费视频 | 国产欧美精品不卡在线| 又粗又硬又猛又爽又黄的| 涩爱综合久久五月蜜臀| 日韩精品激情在线观看| 亚洲国产第一页在线观看| 亚洲中文字幕校园春色| 日韩a级精品一区二区| 人妻凌辱欧美丰满熟妇| av乱码一区二区三区| 亚洲国产精品美女在线观看| 欧美国产亚洲中英文字幕| 在线观看av亚洲情色| 日日夜夜狠狠干视频| 91p0rny九色露脸熟女| 日韩欧美在线观看不卡一区二区 | 蜜桃视频17c在线一区二区| 国产午夜亚洲精品不卡在线观看 | 日韩欧美亚洲熟女人妻| 精品久久久久久久久久中文蒉| 成人高清在线观看视频| 国产成人精品av网站| 天堂av狠狠操蜜桃| 欧美韩国日本国产亚洲| 欧美日韩精品永久免费网址| 在线视频免费观看网| 久久亚洲天堂中文对白| 亚洲精品欧美日韩在线播放| 亚洲 中文字幕在线 日韩| 新婚人妻聚会被中出| 天天干夜夜操啊啊啊| 久久尻中国美女视频| 亚洲av日韩高清hd| 91九色porny国产蝌蚪视频| 超级碰碰在线视频免费观看| 91‖亚洲‖国产熟女| 国产在线自在拍91国语自产精品| 在线观看操大逼视频| 大香蕉大香蕉大香蕉大香蕉大香蕉| 视频 一区二区在线观看| 五月精品丁香久久久久福利社| 国产一区二区火爆视频| 天天日天天摸天天爱| 都市激情校园春色狠狠| 精彩视频99免费在线| 亚洲va天堂va国产va久| 日韩剧情片电影在线收看| 亚洲变态另类色图天堂网| 精品黑人巨大在线一区| 亚洲成人三级在线播放| 久久久久久99国产精品| 亚洲高清自偷揄拍自拍| 天天躁日日躁狠狠躁av麻豆| 天天干天天操天天玩天天射| 9色精品视频在线观看| 欧美亚洲自偷自拍 在线| 欧美在线精品一区二区三区视频| 人妻少妇亚洲一区二区| 521精品视频在线观看| 中文字幕乱码av资源| 75国产综合在线视频| 换爱交换乱高清大片| 91九色porny国产蝌蚪视频| 亚洲乱码中文字幕在线| av俺也去在线播放| 久久久极品久久蜜桃| 日韩成人综艺在线播放| 93视频一区二区三区| 快点插进来操我逼啊视频| 人妻丝袜诱惑我操她视频| 97精品综合久久在线| 巨乳人妻日下部加奈被邻居中出 | 韩国一级特黄大片做受| 曰本无码人妻丰满熟妇啪啪| 国产精品久久久久久久女人18| 伊人日日日草夜夜草| 国产亚洲视频在线观看| 精品国产成人亚洲午夜| 欧美精品伦理三区四区| 亚洲伊人色一综合网| 少妇与子乱在线观看| 国产精品人妻66p| 国产黄色片蝌蚪九色91| av大全在线播放免费| 日韩人妻丝袜中文字幕| 2020av天堂网在线观看| 粉嫩小穴流水视频在线观看| 亚洲人妻国产精品综合| 欧美性受xx黑人性猛交| 亚洲一区制服丝袜美腿| 久久精品国产999| 亚洲精品 日韩电影| 国产高清精品一区二区三区| 护士小嫩嫩又紧又爽20p| 亚洲av极品精品在线观看| 成人资源在线观看免费官网| 狠狠操狠狠操免费视频| 2020久久躁狠狠躁夜夜躁| 久久久久久久久久性潮| 欧美偷拍自拍色图片| 婷婷五月亚洲综合在线| 日韩精品一区二区三区在线播放| 天码人妻一区二区三区在线看 | 东游记中文字幕版哪里可以看到| 在线观看av2025| 熟女妇女老妇一二三区| 亚洲精品国品乱码久久久久 | av中文字幕在线观看第三页| 最近的中文字幕在线mv视频| 国产精品一区二区久久久av| 欧美交性又色又爽又黄麻豆| 国产在线观看免费人成短视频| 少妇一区二区三区久久久| 人妻丝袜榨强中文字幕| 97黄网站在线观看| 19一区二区三区在线播放| 狠狠操操操操操操操操操| 日辽宁老肥女在线观看视频| 日本韩国免费一区二区三区视频| 99热久久这里只有精品8| 最新97国产在线视频| 日本a级视频老女人| 国产精品女邻居小骚货| 91精品啪在线免费| 又粗又长 明星操逼小视频| 国产亚洲精品视频合集| 免费观看国产综合视频| 中国视频一区二区三区| 精品老妇女久久9g国产| 日韩中文字幕福利av| 亚洲最大黄了色网站| 全国亚洲男人的天堂| 欧美成人猛片aaaaaaa| 沈阳熟妇28厘米大战黑人| 2017亚洲男人天堂| 精品美女久久久久久| 一二三中文乱码亚洲乱码one | 日日夜夜狠狠干视频| 亚洲高清自偷揄拍自拍| 欧美老妇精品另类不卡片| 亚洲自拍偷拍精品网| 99精品国自产在线人| 国产精品久久久久久久久福交| 亚洲第一伊人天堂网| 国产精品成人xxxx| 伊人综合免费在线视频| 国产一区二区在线欧美| 伊人综合免费在线视频| 一区二区麻豆传媒黄片| 亚洲成av人无码不卡影片一| 大鸡八强奸视频在线观看| 青青草国内在线视频精选| 国产亚洲四十路五十路| 亚洲 中文 自拍 无码| 亚洲国产在线精品国偷产拍| 午夜蜜桃一区二区三区| 午夜精品福利91av| 久久免看30视频口爆视频| 国产之丝袜脚在线一区二区三区| av手机在线免费观看日韩av| jiuse91九色视频| 东游记中文字幕版哪里可以看到| 91大屁股国产一区二区| 免费费一级特黄真人片| 日本xx片在线观看| 亚洲成人av一区在线| 自拍偷拍一区二区三区图片| 人妻另类专区欧美制服| 性色蜜臀av一区二区三区| 天天日天天干天天要| 岛国毛片视频免费在线观看| 青青草精品在线视频观看| 97人人妻人人澡人人爽人人精品| 黄片色呦呦视频免费看| 视频在线亚洲一区二区| 久久三久久三久久三久久| 亚洲伊人av天堂有码在线| av资源中文字幕在线观看| 日本在线一区二区不卡视频| 精品成人午夜免费看| 人妻熟女中文字幕aⅴ在线| 亚洲高清国产拍青青草原| 一级黄色片夫妻性生活| 视频一区 视频二区 视频| 欧美成人精品欧美一级黄色| 午夜美女少妇福利视频| 中文字幕中文字幕 亚洲国产| 一区二区三区欧美日韩高清播放| 男大肉棒猛烈插女免费视频| 午夜精品一区二区三区城中村| 亚洲免费在线视频网站| 亚洲av极品精品在线观看| 天天干天天操天天玩天天射| 91破解版永久免费| 国产女孩喷水在线观看| 黄色男人的天堂视频| 欧美区一区二区三视频| 女同性ⅹxx女同h偷拍| 欧美女同性恋免费a| 91成人精品亚洲国产| 91九色国产熟女一区二区| 青青草成人福利电影| 精品亚洲在线免费观看| www日韩毛片av| 精品亚洲国产中文自在线| 福利片区一区二体验区| 老司机在线精品福利视频| 少妇露脸深喉口爆吞精| 天天干天天操天天爽天天摸 | 一色桃子久久精品亚洲| 国产亚州色婷婷久久99精品| 精品国产乱码一区二区三区乱| 男人靠女人的逼视频| 亚洲欧美一卡二卡三卡| 婷婷久久久综合中文字幕| 天天干天天爱天天色| 黄网十四区丁香社区激情五月天| 亚洲av无码成人精品区辽| 天天日天天添天天爽| 黄色成年网站午夜在线观看| 1区2区3区4区视频在线观看| 亚洲一区二区三区精品乱码| 中文字幕 亚洲av| 午夜精品在线视频一区| 午夜极品美女福利视频| 18禁精品网站久久| 成人sm视频在线观看| 99精品视频之69精品视频 | 欧美视频综合第一页| av天堂资源最新版在线看| 成熟丰满熟妇高潮xx×xx| 欧美黄片精彩在线免费观看| 在线观看免费av网址大全| 无忧传媒在线观看视频| 久久久久91精品推荐99| 美洲精品一二三产区区别| 国产又粗又黄又硬又爽| 18禁精品网站久久| 国产精品黄大片在线播放| 国产精品自拍在线视频| 欧美一级色视频美日韩| 偷拍3456eee| av新中文天堂在线网址| 超黄超污网站在线观看| 天天干天天日天天干天天操| 日本免费午夜视频网站| 天天日天天干天天要| 经典av尤物一区二区| 在线可以看的视频你懂的| 人妻少妇性色欲欧美日韩| av天堂资源最新版在线看| 少妇人妻真实精品视频| 9久在线视频只有精品| 五十路丰满人妻熟妇| 色综合久久五月色婷婷综合| 大尺度激情四射网站| 久久久久久9999久久久久| 天天夜天天日天天日| 久久精品美女免费视频| 日本高清成人一区二区三区| 欧美日韩一区二区电影在线观看| 99视频精品全部15| 亚洲男人让女人爽的视频| 99热99re在线播放| 第一福利视频在线观看| 国产又粗又硬又大视频| 国产揄拍高清国内精品对白| 老师啊太大了啊啊啊尻视频| 亚洲熟妇久久无码精品| 最新91九色国产在线观看| 精内国产乱码久久久久久| huangse网站在线观看| 日日夜夜精品一二三| 日本av高清免费网站| 国内精品在线播放第一页| 红桃av成人在线观看| 精品国产乱码一区二区三区乱| 亚洲精品精品国产综合| 亚洲免费视频欧洲免费视频| 日本少妇人妻xxxxx18| 国产av国片精品一区二区| 污污小视频91在线观看| 欧美日韩高清午夜蜜桃大香蕉| 亚洲va天堂va国产va久| 欧美在线偷拍视频免费看| 免费观看理论片完整版| 青青青青青青青青青青草青青| 国产黄色a级三级三级三级| 日韩欧美在线观看不卡一区二区| 国产一级麻豆精品免费| 日韩亚国产欧美三级涩爱| av在线shipin| 国产精品亚洲а∨天堂免| 人妻少妇精品久久久久久| 亚洲精品亚洲人成在线导航| 中文字幕免费福利视频6| 国产中文精品在线观看| 亚洲国产第一页在线观看| 激情综合治理六月婷婷| 91精品国产麻豆国产| 国产一线二线三线的区别在哪| 一区二区三区四区五区性感视频 | 大屁股肉感人妻中文字幕在线| 欧美视频不卡一区四区| 欧美精品激情在线最新观看视频| 中国黄色av一级片| 日本阿v视频在线免费观看| 日本黄在免费看视频| 97人妻色免费视频| 大鸡巴插入美女黑黑的阴毛| 首之国产AV医生和护士小芳| 人妻丝袜榨强中文字幕| 热思思国产99re| 不卡一区一区三区在线| 日本熟妇色熟妇在线观看| 亚洲欧美国产麻豆综合| 在线免费观看亚洲精品电影| 一区二区三区蜜臀在线| 91 亚洲视频在线观看| 国产自拍黄片在线观看| 亚洲 国产 成人 在线| av在线播放国产不卡| 日韩美女综合中文字幕pp| 亚洲日本一区二区三区| 久久久超爽一二三av| 97人妻无码AV碰碰视频|