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

MYSQL METADATA LOCK(MDL LOCK)MDL鎖問題分析

 更新時間:2017年12月24日 14:54:03   投稿:laozhang  
這篇文章主要介紹了MYSQL METADATA LOCK(MDL LOCK)MDL鎖問題分析,并通過實例給大家例句的問題處理辦法,需要的朋友參考學(xué)習(xí)下。

一、前言

MYSQL中MDL鎖一直是一個比較讓人比較頭疼的問題,我們談起鎖一般更加傾向于INNODB下層的gap lock、next key lock、row lock等,因為它很好理解,也很好觀察,而對于MDL LOCK卻了解得很少,因為它實在不好觀察,只有出現(xiàn)問題查看show processlist勉強可以看到

簡單的所謂的Waiting for table metadata lock之類的狀態(tài),其實MDL LOCK是MYSQL上層一個非常復(fù)雜的子系統(tǒng),有自己的死鎖檢測機制

(無向圖?)而大家一般口中的是不是鎖表了其實就是指的它,可見的它的關(guān)鍵性和嚴重性,筆者也是根據(jù)自己的需求學(xué)習(xí)了一些(冰山一角),而沒有能力閱讀全部的代碼,但是筆者通過增加一個TICKET的打印函數(shù)讓語句的MDL LOCK加鎖流程全部打印出來方便學(xué)習(xí)研究,下面從一些基礎(chǔ)說起然后告訴大家修改了哪些東西,最后對每種MDL TYPE進行測試和分析,如果大家對基本概念和增加打印函數(shù)不感興趣可直接參考第五部分加鎖測試,但是如果不了解基礎(chǔ)知識可能看起來有點困難。

剛好最近遇到一次MDL LOCK出現(xiàn)死鎖的情況會在下篇文章中給出案例,這里只看理論

----處于層次:MYSQL SERVER層次,實際上早在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

----死鎖檢測出錯碼:

{ "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的死鎖拋錯和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)

后面會對每種TYPE進行詳細的測試,最后也會給出源碼中解釋

2、MDL NAMESPACE

在MDL中MDL_KEY按照NAMESPACE+DB+OBJECT_NAME的方式進行表示,所謂的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、實現(xiàn)分類

scope lock:一般對應(yīng)全局MDL LOCK 如flush table with read lock 為namespace space:GLOBAL type:S

object lock:如其名字,對象級別的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ù)到什么時候

這個也不多用過多解釋,看源碼注釋即可

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的實現(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的需求,然后通過這個類對象在MDL子系統(tǒng)
中進行MDL LOCK申請,大概包含如下一些屬性

/** Type of metadata lock. */
 enum enum_mdl_type type; //需求的類型
 /** Duration for requested lock. */
 enum enum_mdl_duration duration; //持續(xù)時間
 /**
  Pointers for participating in the list of lock requests for this context.
 */
 MDL_request *next_in_list; //雙向鏈表實現(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; //注意這里如果申請成功(沒有等待),會指向一個實際的TICKET,否則為NULL
 /** A lock is requested based on a fully qualified name and type. */
 MDL_key key;//注意這里是一個MDL_KEY類型,主要的就是前面說的NAMESPACE+DB+OBJECT_NAME

MDL_key類,就是實際的NAMESPACE+DB+OBJECT_NAME,整個放到一個char數(shù)組里面,他會是MDL_LOCK和MDL_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返回一張門票,如果等待則不會源碼MDL_context::acquire_lock

可以觀察到。當(dāng)然這也是我主要觀察的一個類

/**
  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.
  很明顯這里指向了這個ticket的擁有者也就是MDL_context,它是線程的屬性
 */
 MDL_context *m_ctx; 
 /**
  Pointer to the lock object for this lock ticket. Externally accessible.
  很明顯這里是一個指向MDL_LOCK的一個指針
 */
 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方式不會在MDL LOCK中
  占用granted位圖和鏈表取而代之代之的是一個統(tǒng)計器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

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

/** 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

這是整個MYSQL 線程和MDL lock子系統(tǒng)進行交互的一個所謂的上下文結(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.
  這是一個不同MDL lock持續(xù)時間的一個鏈表數(shù)組。實際就是
  MDL_STATEMENT一個鏈表
  MDL_TRANSACTION一個鏈表
  MDL_EXPLICIT一個鏈表
 */
Ticket_list m_tickets[MDL_DURATION_END];
//這是一個父類指針指向子類對象,虛函數(shù)重寫的典型,實際他就指向了一個線程
/*
class THD :public MDL_context_owner,
      public Query_arena,
      public Open_tables_state
*/
MDL_context_owner *m_owner;

11、MDL_wait

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

enum_wait_status m_wait_status;

包含

EMPTY 初始化

GRANTED 獲取成功

VICTIM 死鎖

TIMEOUT 超時

KILLED KILLED

12、等待標記

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 加鎖、升級、降級的流程,因為源碼太龐大了,不可能面面俱到
雖然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

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

/*p_ticket in parameter*/

int my_print_ticket(const MDL_ticket* p_ticket)

并且在mdl_ticket類中增加了這個函數(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

實際上和metadata_locks中的信息差不多,這是我這里的Thread id 是show processlist出來的id,但是我可以獲得鎖獲取的歷史信息,我這里同時沒有 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ù)進行觀察

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

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 等待隊列
 lock= ticket->m_lock;
 lock->m_waiting.add_ticket(ticket);
 will_wait_for(ticket); //死鎖檢測
 /* There is a shared or exclusive lock on the object. */
 DEBUG_SYNC(get_thd(), "mdl_acquire_lock_wait");
 find_deadlock(); 
 //此處打印TICKET進入了等待流程
 if (lock->needs_notification(ticket) || lock->needs_connection_check())
 {
  }
 done_waiting_for();//等待完成對死鎖檢測等待圖進行調(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、降級: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);
//此處打印出降級前的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)出降級后的TICKET
}

3、升級: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)造一個request
 //此處打印出來的TICKET類型 
 if (acquire_lock(&mdl_new_lock_request, lock_wait_timeout)) //嘗試使用新的LOCK_TYPE進行加鎖
  DBUG_RETURN(TRUE);
 is_new_ticket= ! has_lock(mdl_svp, mdl_new_lock_request.ticket);
 lock= mdl_ticket->m_lock;
 //下面進行一系列對MDL_LOCK的維護并且對所謂的合并操作
 /* 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);
 }
 //此處打印出來的升級后TICKET類型 
 DBUG_RETURN(FALSE);
}

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

五、各種MDL LOCK TYPE加鎖測試

1、MDL_INTENTION_EXCLUSIVE(IX)

這個鎖會在很多操作的時候都會出現(xiàn)比如做任何一個DML/DDL 操作都會觸發(fā),實際上DELTE/UPDATE/INSERT/FOR UPDATE等DML操作會在GLOBAL 上加IX鎖 然后才會在本對象上加鎖而DDL 語句至少會在GLOBAL 上加IX鎖,對象所屬 SCHEMA上加IX鎖,本對象加鎖下面是 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級別的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 

所以這個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; 就會堵塞所有DELTE/UPDATE/INSERT/FOR UPDATE
等DML和DDL操作(因為這些操作都需要GLOBAL MDL IX鎖)

3、MDL_SHARED_HIGH_PRIO(SH)

這個鎖基本上大家也是經(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)先級比較高,但是其和X不兼容。也很好理解比如在rename 階段肯定不能進行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 

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

5、MDL_SHARED_WRITE(SW)

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

兼容性:

    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語句中用到,他可以升級為SNW, SNRW,X,同時至少X鎖也可以降級為SU

實際上在INNODB ONLINE DDL中非常依賴于他,DML(SW)和SELECT(SR)都不會堵塞

兼容性:

    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都會在GLOBAL 上鎖但是其類型都是IX所以這個SU鎖不堵塞DML/SELECT 讀寫操作進入INNODB引擎層,它是ONLINE DDL的根基,如果不兼容你都進入不了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

我簡單的分析一下:

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 升級 MDL_EXCLUSIVE(X) 
2017-08-03T19:46:54.855563 降級 MDL_SHARED_UPGRADABLE(SU)
2017-08-03T19:47:00.304057 升級 MDL_EXCLUSIVE(X) 

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

8、MDL_SHARED_NO_WRITE(SNW)

SU可以升級為SNW而SNW可以升級為X,如前面所提及用于ALGORITHM=COPY 中,保護數(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)不會堵塞,下面我只是給出了關(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 升級為MDL_EXCLUSIVE(X) 

這2017-08-03T20:07:58.413308到2017-08-03T20:08:25.392006就是實際COPY的時間,可見整個COPY期間只能DML
而不能SELECT,也是ALGORITHM=COPY和ALGORITHM=INPLACE一個關(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; 會堵塞
lock table testsort12 write;但是lock table testsort12 read 卻不會堵塞。

11、MDL_EXCLUSIVE(X)

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

兼容性:

   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 };

相關(guān)文章

  • MySQL中的時區(qū)設(shè)置方式

    MySQL中的時區(qū)設(shè)置方式

    這篇文章主要介紹了MySQL中的時區(qū)設(shè)置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Mysql索引覆蓋的實現(xiàn)

    Mysql索引覆蓋的實現(xiàn)

    本文主要介紹了Mysql索引覆蓋的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Mysql 切換數(shù)據(jù)存儲目錄的實現(xiàn)方法

    Mysql 切換數(shù)據(jù)存儲目錄的實現(xiàn)方法

    這篇文章主要介紹了Mysql 切換數(shù)據(jù)存儲目錄的實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 解析mysql中如何獲得數(shù)據(jù)庫的大小

    解析mysql中如何獲得數(shù)據(jù)庫的大小

    本篇文章是對mysql中如何獲得數(shù)據(jù)庫的大小的解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • 簡單介紹MySQL中GROUP BY子句的使用

    簡單介紹MySQL中GROUP BY子句的使用

    這篇文章主要介紹了簡單介紹MySQL中GROUP BY子句的使用,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • mysql索引(覆蓋索引,聯(lián)合索引,索引下推)

    mysql索引(覆蓋索引,聯(lián)合索引,索引下推)

    這篇文章主要介紹了mysql索引(覆蓋索引,聯(lián)合索引,索引下推),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • MySQL 8.0用戶和角色管理原理與用法詳解

    MySQL 8.0用戶和角色管理原理與用法詳解

    這篇文章主要介紹了MySQL 8.0用戶和角色管理,結(jié)合實例形式分析了MySQL 8.0用戶和角色管理相關(guān)概念、功能、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • mysql如何能有效防止刪庫跑路

    mysql如何能有效防止刪庫跑路

    本文主要介紹了mysql如何能有效防止刪庫跑路,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • mysql實現(xiàn)按組區(qū)分后獲取每組前幾名的sql寫法

    mysql實現(xiàn)按組區(qū)分后獲取每組前幾名的sql寫法

    這篇文章主要介紹了mysql實現(xiàn)按組區(qū)分后獲取每組前幾名的sql寫法,具有很好的參考價值,希望對大家有所幫助。
    2023-03-03
  • MySQL官方導(dǎo)出工具mysqlpump的使用

    MySQL官方導(dǎo)出工具mysqlpump的使用

    備份恢復(fù)是 DBA 繞不開的核心話題,市面上也有很多開源的備份恢復(fù)方案,不過官方的 mysqldump 一直是處于鄙視鏈底端的那個。終于,官方在 MySQL5.7 之后新添加了一個備份工具:mysqlpump,本文將簡單的介紹該工具的使用
    2021-05-05

最新評論

欧美视频综合第一页| 日韩美女搞黄视频免费| 无码国产精品一区二区高潮久久4| 黄片三级三级三级在线观看| 国产亚洲精品欧洲在线观看| 97人妻人人澡爽人人精品| 综合国产成人在线观看| 狠狠躁夜夜躁人人爽天天久天啪| 国产清纯美女al在线| 丰满的继坶3中文在线观看| 国产视频精品资源网站| 18禁污污污app下载| 熟女妇女老妇一二三区| 国产精品视频资源在线播放| 51国产偷自视频在线播放 | 黄色视频在线观看高清无码| 风流唐伯虎电视剧在线观看| av手机在线观播放网站| 日本熟女精品一区二区三区| 精品高潮呻吟久久av| 蜜臀av久久久久久久| 亚洲 色图 偷拍 欧美| 黄色中文字幕在线播放| 性色蜜臀av一区二区三区| 水蜜桃一区二区三区在线观看视频| 日韩一区二区三区三州| 美女日逼视频免费观看| 日本性感美女视频网站| 在线免费观看视频一二区| 国产精品系列在线观看一区二区| caoporn蜜桃视频| 蝴蝶伊人久久中文娱乐网| 五月天久久激情视频| 欧美黄片精彩在线免费观看| 亚洲国际青青操综合网站| av一本二本在线观看| 无码精品一区二区三区人 | 五十路在线观看完整版| 久精品人妻一区二区三区| 国产实拍勾搭女技师av在线| 亚洲 中文 自拍 无码| 午夜频道成人在线91| 日本中文字幕一二区视频| 天天日天天玩天天摸| 初美沙希中文字幕在线 | 91欧美在线免费观看| 日本一二三区不卡无| 免费福利av在线一区二区三区| 无套猛戳丰满少妇人妻| 91免费福利网91麻豆国产精品| 91国内精品自线在拍白富美| 三上悠亚和黑人665番号| 18禁网站一区二区三区四区| 亚洲成人国产综合一区| 91香蕉成人app下载| 福利片区一区二体验区| 天天日天天操天天摸天天舔| 国产精品一区二区av国| 日本一区美女福利视频| 加勒比视频在线免费观看| 日韩一区二区三区三州| 黄色大片男人操女人逼| 岛国av高清在线成人在线| 青青热久免费精品视频在线观看| 亚洲欧美一区二区三区爱爱动图| 成年人午夜黄片视频资源| 93精品视频在线观看 | 婷婷五月亚洲综合在线| 亚洲成人国产综合一区| 免费无码人妻日韩精品一区二区 | 欧美黑人性猛交xxxxⅹooo| 大香蕉日本伊人中文在线| 中国无遮挡白丝袜二区精品 | 日本一本午夜在线播放| 中文字幕日韩无敌亚洲精品| 欧美视频中文一区二区三区| av破解版在线观看| 欧美黑人巨大性xxxxx猛交| 天天干天天操天天扣| 午夜激情久久不卡一区二区 | 欧美一区二区三区高清不卡tv| 欧洲国产成人精品91铁牛tv| 蜜桃专区一区二区在线观看| 动漫精品视频在线观看| 欧美亚洲偷拍自拍色图| 很黄很污很色的午夜网站在线观看| 天天干夜夜操啊啊啊| 人妻丰满熟妇综合网| 老司机欧美视频在线看| 日韩欧美高清免费在线| 国产精品人久久久久久| 美女视频福利免费看| 中国熟女@视频91| 日本a级视频老女人| caoporm超碰国产| 中文字母永久播放1区2区3区| 天天做天天干天天操天天射| 亚洲va天堂va国产va久| caoporn蜜桃视频| av久久精品北条麻妃av观看| 国产精品欧美日韩区二区| 老司机你懂得福利视频| 日本精品美女在线观看| 欧美va亚洲va天堂va| 快插进小逼里大鸡吧视频| 护士小嫩嫩又紧又爽20p| 韩国AV无码不卡在线播放| 亚洲综合乱码一区二区| 天堂av在线播放免费| 久久久久久国产精品| 高潮喷水在线视频观看| av线天堂在线观看| 91精品国产综合久久久蜜| 5528327男人天堂| 爱有来生高清在线中文字幕| 精内国产乱码久久久久久| 国产精品精品精品999| 青青尤物在线观看视频网站| 都市家庭人妻激情自拍视频| 国产乱子伦精品视频潮优女| 免费一级特黄特色大片在线观看 | 大鸡巴插入美女黑黑的阴毛| 大骚逼91抽插出水视频| 国产高清在线观看1区2区| 91精品视频在线观看免费| 日本真人性生活视频免费看| 精品人妻一二三区久久| 欧美区一区二区三视频| 97人人模人人爽人人喊 | 国产高清97在线观看视频| 亚洲成高清a人片在线观看| 伊人综合免费在线视频| 亚洲中文精品人人免费| 爱有来生高清在线中文字幕| 天天色天天舔天天射天天爽| 免费福利av在线一区二区三区| 女同久久精品秋霞网| 欧美亚洲少妇福利视频| 亚洲午夜电影之麻豆| 国产麻豆剧果冻传媒app| 国产妇女自拍区在线观看| 国产精品视频资源在线播放 | 2022天天干天天操| 天天干夜夜操天天舔| 一区二区三区四区五区性感视频| 色哟哟在线网站入口| 精品久久久久久久久久久久人妻| 亚洲免费视频欧洲免费视频| 日比视频老公慢点好舒服啊| 亚洲第一黄色在线观看| 78色精品一区二区三区| 亚洲综合在线观看免费| 337p日本大胆欧美人| 少妇露脸深喉口爆吞精| 久久久久久久精品成人热| 青青青青青手机视频| 福利视频广场一区二区| 中国黄片视频一区91| 粉嫩小穴流水视频在线观看| 亚洲一区二区激情在线| 福利视频网久久91| 国产福利小视频免费观看| 日本人妻少妇18—xx| 亚洲熟妇久久无码精品| 在线视频这里只有精品自拍| 久久久久久久精品成人热| 亚洲精品欧美日韩在线播放 | 黄色片黄色片wyaa| 人妻久久久精品69系列| 曰本无码人妻丰满熟妇啪啪| 晚上一个人看操B片| 亚洲成a人片777777| 91www一区二区三区| 福利国产视频在线观看| 成人影片高清在线观看| 最新91精品视频在线| 99精品免费观看视频| 亚洲在线免费h观看网站| 护士小嫩嫩又紧又爽20p| 岛国青草视频在线观看| 国产一区二区久久久裸臀| 早川濑里奈av黑人番号| 国产污污污污网站在线| 鸡巴操逼一级黄色气| 亚洲高清国产自产av| 亚洲国产成人最新资源| 国产亚洲成人免费在线观看| 亚洲av无硬久久精品蜜桃| 色爱av一区二区三区| 在线观看欧美黄片一区二区三区| 国产大鸡巴大鸡巴操小骚逼小骚逼| 亚洲欧美国产综合777| 精品一区二区亚洲欧美| 大尺度激情四射网站| 夜夜骑夜夜操夜夜奸| 偷拍自拍福利视频在线观看| 日本黄色三级高清视频| 免费观看污视频网站| 青青青aaaa免费| 国产又色又刺激在线视频| 亚洲男人的天堂a在线| 韩国一级特黄大片做受| av网站色偷偷婷婷网男人的天堂| 国产在线免费观看成人| 亚洲va欧美va人人爽3p| 亚洲av一妻不如妾| 成人国产影院在线观看| 同居了嫂子在线播高清中文| 亚洲精品久久综合久| 成人久久精品一区二区三区 | 日韩av免费观看一区| 传媒在线播放国产精品一区| 97少妇精品在线观看| 亚洲欧美另类自拍偷拍色图| 狍和女人的王色毛片| 秋霞午夜av福利经典影视| 中文字幕在线观看国产片| 天天日天天干天天要 | 2o22av在线视频| 欧美精品伦理三区四区| 美女日逼视频免费观看| 久久久久只精品国产三级| 国产视频一区二区午夜| 日本韩国在线观看一区二区| 精品国产亚洲av一淫| 免费69视频在线看| 二区中出在线观看老师| 9l人妻人人爽人人爽| 国产+亚洲+欧美+另类| 亚洲 中文 自拍 另类 欧美| 沙月文乃人妻侵犯中文字幕在线 | 国产欧美精品免费观看视频| 在线可以看的视频你懂的| 青青青视频自偷自拍38碰| 揄拍成人国产精品免费看视频| 天天日天天日天天射天天干| 成人免费做爰高潮视频| 端庄人妻堕落挣扎沉沦| 早川濑里奈av黑人番号| 国产av福利网址大全| 啊用力插好舒服视频| 鸡巴操逼一级黄色气| 久久久久久久久久久久久97| 亚洲女人的天堂av| 国产成人精品一区在线观看| 黑人性生活视频免费看| 亚洲欧美激情人妻偷拍| 久久久久久久亚洲午夜综合福利| 国产福利在线视频一区| 成人国产小视频在线观看| 国产黄色片在线收看| 天堂女人av一区二区| 日美女屁股黄邑视频| av高潮迭起在线观看| 看一级特黄a大片日本片黑人| av天堂中文免费在线| 夜夜嗨av蜜臀av| 中文字幕人妻被公上司喝醉在线 | 成熟熟女国产精品一区| 中文字幕+中文字幕| 日韩美女搞黄视频免费| 亚洲国产精品久久久久蜜桃| 不卡日韩av在线观看| 亚洲嫩模一区二区三区| 日韩欧美高清免费在线 | 国产精品精品精品999| 青青操免费日综合视频观看| 综合激情网激情五月五月婷婷| 中文字幕在线欧美精品| 在线观看视频 你懂的| 日本丰满熟妇大屁股久久| 国产大鸡巴大鸡巴操小骚逼小骚逼| 男人天堂最新地址av| 中文字幕在线观看极品视频| 天天色天天舔天天射天天爽| 青草亚洲视频在线观看| 中文字幕视频一区二区在线观看| 老师让我插进去69AV| 国产欧美精品不卡在线| 五十路熟女人妻一区二区9933| 午夜久久香蕉电影网| 亚洲av第国产精品| 欧美另类重口味极品在线观看| 少妇人妻100系列| 福利片区一区二体验区| 任你操任你干精品在线视频| 99热碰碰热精品a中文| 一区二区久久成人网| 91大神福利视频网| 五月天色婷婷在线观看视频免费| 熟女人妻三十路四十路人妻斩| 久久久极品久久蜜桃| 免费无码人妻日韩精品一区二区| 日韩精品电影亚洲一区| 国产一区二区欧美三区| 午夜久久久久久久精品熟女| 99热久久这里只有精品8| 亚洲精品国产综合久久久久久久久| 亚洲国产成人最新资源| 在线视频国产欧美日韩| 男人和女人激情视频| 日韩欧美制服诱惑一区在线| 中出中文字幕在线观看| 五十路av熟女松本翔子| 伊人开心婷婷国产av| 国产aⅴ一线在线观看| 91传媒一区二区三区| 欧美3p在线观看一区二区三区| 在线免费观看黄页视频| 亚洲在线观看中文字幕av| 日韩人妻丝袜中文字幕| av乱码一区二区三区| 经典国语激情内射视频| 欧美男同性恋69视频| 午夜精品久久久久麻豆影视| 无套猛戳丰满少妇人妻| 午夜成午夜成年片在线观看| 中文字幕在线一区精品| 成人24小时免费视频| 亚洲高清视频在线不卡| 亚洲人妻30pwc| 边摸边做超爽毛片18禁色戒| 性欧美日本大妈母与子| 日日日日日日日日夜夜夜夜夜夜| 肏插流水妹子在线乐播下载| 欧美成人黄片一区二区三区| 中文字幕最新久久久| 成人sm视频在线观看| 好男人视频在线免费观看网站| 后入美女人妻高清在线| 91精品高清一区二区三区| 精品一区二区三四区| 欧美美女人体视频一区| 一区国内二区日韩三区欧美| 日韩av大胆在线观看| 国产又粗又硬又大视频| 国产三级影院在线观看| 在线免费观看黄页视频| 亚洲国产欧美国产综合在线| 激情国产小视频在线| 国产成人一区二区三区电影网站| 午夜在线精品偷拍一区二| 91福利在线视频免费观看| 337p日本大胆欧美人| 国产在线免费观看成人| 一区二区三区久久久91| 亚洲欧美激情国产综合久久久| 4个黑人操素人视频网站精品91| 91色老99久久九九爱精品| 色综合天天综合网国产成人| 精品一区二区三区欧美| 在线观看免费av网址大全| 99国内小视频在现欢看| 中国熟女@视频91| 精品久久婷婷免费视频| 大鸡八强奸视频在线观看| 在线免费91激情四射| 日韩中文字幕精品淫| 大学生A级毛片免费视频| 欧美一级片免费在线成人观看 | 99精品亚洲av无码国产另类| 青青伊人一精品视频| 在线 中文字幕 一区| 精品一区二区三区三区88 | 黑人大几巴狂插日本少妇| 91中文字幕最新合集| 大白屁股精品视频国产| 久久久人妻一区二区| 亚洲欧美国产麻豆综合| 日韩国产乱码中文字幕| 亚洲欧美激情国产综合久久久| 亚洲乱码中文字幕在线| 久久久久久久久久久久久97| 国产精品久久久久国产三级试频 | 亚洲欧美一区二区三区爱爱动图| 日韩熟女系列一区二区三区| 亚洲青青操骚货在线视频| 2017亚洲男人天堂| 最新日韩av传媒在线| 2020av天堂网在线观看| 内射久久久久综合网| 1024久久国产精品| 东京干手机福利视频| 久久久极品久久蜜桃| 欧美激情精品在线观看| 国产黄色高清资源在线免费观看| 亚洲国产最大av综合| 韩国爱爱视频中文字幕| 黑人性生活视频免费看| 亚洲国际青青操综合网站| 欧美日韩人妻久久精品高清国产 | 黄色录像鸡巴插进去| 欧美va亚洲va天堂va| 成年午夜免费无码区| 老司机午夜精品视频资源| 久久久久久99国产精品| av无限看熟女人妻另类av| 日本少妇精品免费视频| 88成人免费av网站| 老司机99精品视频在线观看| 亚洲图片欧美校园春色| 天堂av狠狠操蜜桃| 天天操天天爽天天干| 91桃色成人网络在线观看| 中文字幕一区二 区二三区四区 | 一区国内二区日韩三区欧美| 成人午夜电影在线观看 久久| 97成人免费在线观看网站| 亚洲综合另类精品小说| 日本免费一级黄色录像| 欧美在线精品一区二区三区视频| 久久精品亚洲国产av香蕉| 中文字幕亚洲久久久| 九色porny九色9l自拍视频| 成人动漫大肉棒插进去视频| 五月天色婷婷在线观看视频免费| 亚洲2021av天堂| 人人妻人人澡人人爽人人dvl| 岛国免费大片在线观看| 亚洲成高清a人片在线观看| jiuse91九色视频| 日本性感美女三级视频| 天天操夜夜骑日日摸| 久久久久久97三级| 99久久久无码国产精品性出奶水| 久久尻中国美女视频| 日本欧美视频在线观看三区| 97少妇精品在线观看| 97香蕉碰碰人妻国产樱花| 国产精品视频欧美一区二区| 天天躁夜夜躁日日躁a麻豆| 成人区人妻精品一区二视频| 沙月文乃人妻侵犯中文字幕在线 | 色综合久久五月色婷婷综合| 亚洲欧美色一区二区| 午夜青青草原网在线观看| 91chinese在线视频| 激情人妻校园春色亚洲欧美| 日本少妇人妻xxxxx18| 姐姐的朋友2在线观看中文字幕 | 成人av亚洲一区二区| 国产午夜福利av导航 | 亚洲av自拍偷拍综合| 亚洲日本一区二区久久久精品| 欧美日本aⅴ免费视频| 天天干天天插天天谢| 午夜91一区二区三区| 美女张开腿让男生操在线看| 国产视频精品资源网站| 精品国产亚洲av一淫| 视频一区 视频二区 视频| 国产成人无码精品久久久电影| 视频一区二区三区高清在线| 午夜激情精品福利视频| 黄片色呦呦视频免费看| 久久久久久国产精品| 一级a看免费观看网站| 人妻无码中文字幕专区| av男人天堂狠狠干| 免费人成黄页网站在线观看国产| 欧美乱妇无乱码一区二区| 国产欧美日韩在线观看不卡| 青青青视频自偷自拍38碰| 色秀欧美视频第一页| 2o22av在线视频| 国产又粗又猛又爽又黄的视频美国| 欧美日本在线观看一区二区| 日本福利午夜电影在线观看| 免费成人av中文字幕| 久久麻豆亚洲精品av| 伊人情人综合成人久久网小说| 免费成人va在线观看| 性色av一区二区三区久久久| 欧美久久一区二区伊人| www天堂在线久久| 国产成人精品一区在线观看| 国产成人自拍视频在线免费观看 | 97精品视频在线观看| 偷拍自拍 中文字幕| 日韩北条麻妃一区在线| 女同性ⅹxx女同h偷拍| 三级av中文字幕在线观看| 国产黄网站在线观看播放| 色婷婷六月亚洲综合香蕉| 伊人网中文字幕在线视频| aⅴ五十路av熟女中出| 骚货自慰被发现爆操| 日韩成人免费电影二区| 特黄老太婆aa毛毛片| 日本少妇精品免费视频| av在线观看网址av| 在线国产精品一区二区三区| 福利视频网久久91| 日本免费视频午夜福利视频| 日韩人妻xxxxx| 日韩加勒比东京热二区| 国产密臀av一区二区三| 精品人妻每日一部精品| 亚洲 中文 自拍 另类 欧美| 日本免费视频午夜福利视频| 中文字幕在线视频一区二区三区| 成人激情文学网人妻| 视频一区 二区 三区 综合| 免费大片在线观看视频网站| 99一区二区在线观看| 日本最新一二三区不卡在线| 亚洲 人妻 激情 中文| 国产老熟女伦老熟妇ⅹ| 80电影天堂网官网| 无忧传媒在线观看视频| 动漫黑丝美女的鸡巴| 欧美日韩一级黄片免费观看| 亚洲偷自拍高清视频| 黄色成人在线中文字幕| 自拍偷拍亚洲欧美在线视频| 18禁美女无遮挡免费| 午夜在线精品偷拍一区二| 在线免费观看99视频| 亚洲av午夜免费观看| AV无码一区二区三区不卡| 少妇高潮无套内谢麻豆| 久久久麻豆精亚洲av麻花| 高潮喷水在线视频观看| 国产精品成人xxxx| AV天堂一区二区免费试看| 18禁精品网站久久| 高清一区二区欧美系列| 粉嫩欧美美人妻小视频| 操人妻嗷嗷叫视频一区二区| 亚洲高清视频在线不卡| 国产女人露脸高潮对白视频| 粉嫩av蜜乳av蜜臀| 777奇米久久精品一区| 黄色中文字幕在线播放| 国产男女视频在线播放| 亚洲男人让女人爽的视频| av在线播放国产不卡| 18禁污污污app下载| 久久热久久视频在线观看| 国产av福利网址大全| 98精产国品一二三产区区别| 欧美视频不卡一区四区| 成人在线欧美日韩国产| 日本黄色三级高清视频| 国产日韩一区二区在线看 | 99久久99久国产黄毛片| 超碰在线观看免费在线观看 | 成人av天堂丝袜在线观看| av网址国产在线观看| 欧美天堂av无线av欧美| 国产va在线观看精品| 亚洲一级美女啪啪啪| 成人网18免费视频版国产| 自拍偷拍日韩欧美亚洲| 国产又粗又猛又爽又黄的视频美国| 丁香花免费在线观看中文字幕| 天天躁夜夜躁日日躁a麻豆| 一区二区熟女人妻视频| 91国产在线免费播放| 成人资源在线观看免费官网| 在线观看av2025| 亚洲成人午夜电影在线观看| 中文字幕中文字幕人妻| 久碰精品少妇中文字幕av| 欧美一级色视频美日韩| 亚洲精品三级av在线免费观看| 欧美中文字幕一区最新网址| 亚洲一区二区三区精品乱码| 亚洲蜜臀av一区二区三区九色 | 亚洲欧美在线视频第一页| 黑人借宿ntr人妻的沦陷2| 91国偷自产一区二区三区精品| 精品suv一区二区69| 欧美爆乳肉感大码在线观看| 十八禁在线观看地址免费| 任你操任你干精品在线视频| 欧美色婷婷综合在线| 亚洲av无码成人精品区辽| 夜夜躁狠狠躁日日躁麻豆内射 | 青娱乐最新视频在线| 亚洲成人午夜电影在线观看| 亚洲免费视频欧洲免费视频| 午夜福利资源综合激情午夜福利资| 操日韩美女视频在线免费看| 欧美偷拍自拍色图片| 天天干狠狠干天天操| 888欧美视频在线| 亚洲一区二区人妻av| 美女日逼视频免费观看| 骚逼被大屌狂草视频免费看| 超级福利视频在线观看| 国产午夜男女爽爽爽爽爽视频| 亚洲成人熟妇一区二区三区| 久青青草视频手机在线免费观看| 亚洲国产精品中文字幕网站| 国产视频网站一区二区三区 | 亚洲欧美色一区二区| 偷拍自拍亚洲美腿丝袜| 成人免费公开视频无毒| 亚洲欧美国产麻豆综合| 亚洲精品无码色午夜福利理论片| 欧美精品一二三视频| 欲乱人妻少妇在线视频裸| 人妻激情图片视频小说| 黑人变态深video特大巨大| 中文字幕在线免费第一页| 国产乱弄免费视频观看| 999久久久久999| 久久这里有免费精品| 国产精品成久久久久三级蜜臀av | 日本av熟女在线视频| 中国无遮挡白丝袜二区精品| 国产精品久久久久网| 91快播视频在线观看| 成熟熟女国产精品一区| 亚洲精品午夜久久久久| 噜噜色噜噜噜久色超碰| 偷拍自拍视频图片免费| 国产成人一区二区三区电影网站| 爱有来生高清在线中文字幕| 久精品人妻一区二区三区| 日本高清成人一区二区三区| 又大又湿又爽又紧A视频| 亚洲最大黄 嗯色 操 啊| 亚洲精品高清自拍av| ka0ri在线视频| 午夜久久香蕉电影网| 男人天堂色男人av| 91www一区二区三区| aⅴ五十路av熟女中出| 女生被男生插的视频网站| 欧美黑人性猛交xxxxⅹooo| 亚洲国产免费av一区二区三区 | 偷拍自拍国产在线视频| 男人操女人的逼免费视频| 日本人妻欲求不满中文字幕| 久草视频福利在线首页| 午夜的视频在线观看| 91破解版永久免费| 女同久久精品秋霞网| 天堂女人av一区二区| 久草视频 久草视频2| 绯色av蜜臀vs少妇| 中文字幕无码一区二区免费| 后入美女人妻高清在线| 国产日韩欧美美利坚蜜臀懂色| 91老熟女连续高潮对白| www久久久久久久久久久| 日韩精品电影亚洲一区| 在线观看的黄色免费网站| 青青草国内在线视频精选| 国产成人精品午夜福利训2021| 天天色天天舔天天射天天爽 | 亚洲福利精品福利精品福利 | 大学生A级毛片免费视频| 中文字幕在线第一页成人| 91麻豆精品久久久久| 色狠狠av线不卡香蕉一区二区| av日韩在线免费播放| 人人妻人人爽人人添夜| 久久久91蜜桃精品ad| 欧洲黄页网免费观看| 内射久久久久综合网| 国产夫妻视频在线观看免费| 国产精品视频欧美一区二区| 91老师蜜桃臀大屁股| 最新黄色av网站在线观看| 欧美美女人体视频一区| 日韩精品中文字幕福利| 老司机在线精品福利视频| 天天干天天操天天插天天日| 国产亚洲天堂天天一区| 五月婷婷在线观看视频免费| 日本少妇精品免费视频| 热思思国产99re| 亚洲成人av一区在线| av在线观看网址av| 国产女人叫床高潮大片视频| 特级欧美插插插插插bbbbb| 欧美精产国品一二三产品价格 | 在线视频这里只有精品自拍| 中国黄片视频一区91| 一区二区三区国产精选在线播放| 大学生A级毛片免费视频| 丝袜美腿欧美另类 中文字幕| 成人性黑人一级av| 宅男噜噜噜666免费观看| 大鸡巴操娇小玲珑的女孩逼| 国产乱子伦精品视频潮优女| 久久精品亚洲国产av香蕉| 亚洲麻豆一区二区三区| 日韩美女精品视频在线观看网站| 麻豆精品成人免费视频| 中文字幕亚洲久久久| 欧美麻豆av在线播放| 一区二区三区四区视频在线播放| 搞黄色在线免费观看| 99精品视频之69精品视频 | 91精品国产91青青碰| 日本熟妇丰满厨房55| 青娱乐极品视频青青草| 日本韩国免费福利精品| 亚洲综合在线视频可播放| 新婚人妻聚会被中出| 9国产精品久久久久老师| 日韩人妻xxxxx| 亚洲免费福利一区二区三区| av完全免费在线观看av| 亚洲在线免费h观看网站| 福利片区一区二体验区| 2025年人妻中文字幕乱码在线| 久久美欧人妻少妇一区二区三区| 一区二区三区欧美日韩高清播放| 夫妻在线观看视频91| 色吉吉影音天天干天天操| 绝色少妇高潮3在线观看| 亚洲欧美人精品高清| 香蕉aⅴ一区二区三区| 最近的中文字幕在线mv视频| 91精品国产高清自在线看香蕉网| 中英文字幕av一区| 91麻豆精品久久久久| 国产janese在线播放| 国产亚洲成人免费在线观看 | 亚洲人人妻一区二区三区| 免费无毒热热热热热热久| 亚洲男人让女人爽的视频| 蜜桃精品久久久一区二区| 黄色录像鸡巴插进去| 揄拍成人国产精品免费看视频| 91精品国产高清自在线看香蕉网| 综合一区二区三区蜜臀| 欧美色婷婷综合在线| 成人综合亚洲欧美一区| 中文字幕 码 在线视频| 国产之丝袜脚在线一区二区三区| 久久久久久久精品成人热| 中文字幕日本人妻中出| 色偷偷伊人大杳蕉综合网| 偷拍自拍国产在线视频| 国语对白xxxx乱大交| 日韩影片一区二区三区不卡免费| 亚洲欧美国产综合777| 亚洲精品成人网久久久久久小说| 欧美一区二区三区高清不卡tv | 中文字幕在线乱码一区二区| 搡老熟女一区二区在线观看| 漂亮 人妻被中出中文| 蜜桃久久久久久久人妻| 日韩精品电影亚洲一区| 久久久久久九九99精品| 99精品久久久久久久91蜜桃| 第一福利视频在线观看| 2021年国产精品自拍| 特黄老太婆aa毛毛片| 日韩中文字幕福利av| 日韩精品中文字幕在线| 欧美地区一二三专区| 久久久极品久久蜜桃| 大香蕉大香蕉大香蕉大香蕉大香蕉| 欧美一级片免费在线成人观看| 肏插流水妹子在线乐播下载| 最新激情中文字幕视频| 一区二区三区毛片国产一区| 欧美黑人与人妻精品| 国产精品自拍在线视频| 亚洲一区二区久久久人妻| 97资源人妻免费在线视频| 播放日本一区二区三区电影| 在线制服丝袜中文字幕| 偷拍自拍 中文字幕| 性色蜜臀av一区二区三区| 日韩人妻丝袜中文字幕| 亚洲国产精品久久久久蜜桃| 亚洲欧美精品综合图片小说| 中文字幕在线免费第一页| 性色av一区二区三区久久久| 唐人色亚洲av嫩草| 91成人在线观看免费视频| 91老师蜜桃臀大屁股| 97瑟瑟超碰在线香蕉| 五十路熟女人妻一区二区9933| 啊啊好大好爽啊啊操我啊啊视频| 日本最新一二三区不卡在线 | 欧美麻豆av在线播放| 性色av一区二区三区久久久| 成人24小时免费视频| 欧美viboss性丰满| 少妇一区二区三区久久久| 美女张开两腿让男人桶av| 91色网站免费在线观看| 久久久久久97三级| 亚洲人一区二区中文字幕| 亚洲成人熟妇一区二区三区| 日韩加勒比东京热二区| 亚洲精品亚洲人成在线导航| 久久这里只有精品热视频| lutube在线成人免费看| 国产中文精品在线观看| 都市家庭人妻激情自拍视频| 久久久91蜜桃精品ad| 100%美女蜜桃视频| 亚洲成a人片777777| 国产精品欧美日韩区二区| 粉嫩av蜜乳av蜜臀| 亚洲人人妻一区二区三区 | 熟女91pooyn熟女| 精品一区二区三四区| 亚洲精品欧美日韩在线播放| 欧美精品激情在线最新观看视频 | 免费一级特黄特色大片在线观看| 亚洲精品乱码久久久本| 在线观看的a站 最新| 国产精彩福利精品视频| 日韩亚洲高清在线观看| 自拍偷拍亚洲精品第2页| 一区二区三区久久久91| 一二三中文乱码亚洲乱码one| 一区二区视频视频视频| 任你操任你干精品在线视频| 成人区人妻精品一区二视频 | 日韩人妻xxxxx| 亚洲另类综合一区小说| 亚洲1区2区3区精华液| 亚洲人妻视频在线网| 中国黄色av一级片| 午夜毛片不卡在线看| 100%美女蜜桃视频| 91国产资源在线视频| 欧美偷拍自拍色图片| www天堂在线久久| av天堂中文字幕最新| 天天日天天操天天摸天天舔| 成人av免费不卡在线观看| 非洲黑人一级特黄片| 98视频精品在线观看| 亚洲视频在线视频看视频在线| 老师让我插进去69AV| 农村胖女人操逼视频| 国产黄色大片在线免费播放| 久久久久国产成人精品亚洲午夜| 亚洲国产第一页在线观看| 自拍偷拍日韩欧美一区二区| 午夜精品一区二区三区4| 国产成人精品久久二区91| 国产久久久精品毛片| 男大肉棒猛烈插女免费视频| 2020久久躁狠狠躁夜夜躁| 人妻少妇一区二区三区蜜桃| 欧美另类z0z变态| 亚洲国产欧美一区二区三区…| 中英文字幕av一区| 国产卡一卡二卡三乱码手机| 人妻丝袜诱惑我操她视频| 一区二区三区麻豆福利视频| 摧残蹂躏av一二三区| 青青青青青手机视频| 亚洲欧美一区二区三区爱爱动图| 青青草成人福利电影| 亚洲精品av在线观看| 中文字幕第三十八页久久| 91高清成人在线视频| 欧美综合婷婷欧美综合| 午夜婷婷在线观看视频| caoporn蜜桃视频| 中文字幕在线视频一区二区三区| 91传媒一区二区三区| 亚洲综合一区二区精品久久| 激情五月婷婷综合色啪| 在线免费观看欧美小视频| 偷青青国产精品青青在线观看| 2021最新热播中文字幕| 国产使劲操在线播放| 伊人情人综合成人久久网小说| 中文字幕+中文字幕| 班长撕开乳罩揉我胸好爽| 亚洲特黄aaaa片| 亚洲中文字幕校园春色| 国产变态另类在线观看| 这里只有精品双飞在线播放| 国语对白xxxx乱大交| 免费在线播放a级片| 伊人成人在线综合网| 亚洲综合图片20p| 福利一二三在线视频观看| 91超碰青青中文字幕| 日本又色又爽又黄又粗| 久久热这里这里只有精品| 伊人开心婷婷国产av| 天天干天天搞天天摸| www天堂在线久久| sejizz在线视频| 老司机99精品视频在线观看| 91片黄在线观看喷潮| 337p日本大胆欧美人| 午夜精品在线视频一区| 福利午夜视频在线合集| 亚洲一级av大片免费观看| 欧美爆乳肉感大码在线观看| 欧美80老妇人性视频| 女同性ⅹxx女同hd| 在线国产中文字幕视频| 亚洲免费在线视频网站| 在线观看的a站 最新| 成人高清在线观看视频| 青草青永久在线视频18| 任你操视频免费在线观看| 欧美另类一区二区视频| 亚洲激情唯美亚洲激情图片| 欧美精品一区二区三区xxxx| 免费观看成年人视频在线观看| gav成人免费播放| 亚洲护士一区二区三区| 日本一二三区不卡无| 一区二区三区激情在线| 插逼视频双插洞国产操逼插洞| 精彩视频99免费在线| 天天色天天舔天天射天天爽| 91精品高清一区二区三区| 大香蕉大香蕉大香蕉大香蕉大香蕉| 婷婷六月天中文字幕| 毛茸茸的大外阴中国视频| 欧美va不卡视频在线观看| 日本熟妇一区二区x x| 最新日韩av传媒在线| 美味人妻2在线播放| 成人午夜电影在线观看 久久| 中文字幕第一页国产在线| 自拍偷区二区三区麻豆| 亚洲午夜电影之麻豆| 91国产资源在线视频| 激情啪啪啪啪一区二区三区| 黑人乱偷人妻中文字幕| 端庄人妻堕落挣扎沉沦| 91中文字幕最新合集| 韩国爱爱视频中文字幕| 夜夜嗨av一区二区三区中文字幕| av天堂中文免费在线| av亚洲中文天堂字幕网| 嫩草aⅴ一区二区三区| 国产黄色大片在线免费播放| 操的小逼流水的文章| 在线观看免费岛国av| 熟女91pooyn熟女| 亚洲高清国产自产av| www天堂在线久久| 天天干天天啪天天舔| 性色蜜臀av一区二区三区| 中文字幕视频一区二区在线观看| 日本三极片视频网站观看| 早川濑里奈av黑人番号| 日本五十路熟新垣里子| 91麻豆精品传媒国产黄色片| 成人免费公开视频无毒| 中文字幕奴隷色的舞台50| 免费在线观看视频啪啪| 超碰在线观看免费在线观看| 日日爽天天干夜夜操| 超级碰碰在线视频免费观看| aⅴ五十路av熟女中出| 色av色婷婷人妻久久久精品高清| 国产一区av澳门在线观看| 熟女视频一区,二区,三区| 狠狠的往里顶撞h百合| eeuss鲁片一区二区三区| 欧美成人黄片一区二区三区 | 人人妻人人爱人人草| 人妻无码色噜噜狠狠狠狠色| 中文字幕在线第一页成人| 欧美性感尤物人妻在线免费看| 91桃色成人网络在线观看| 在线观看av亚洲情色| 人妻熟女中文字幕aⅴ在线 | 欧美一区二区三区啪啪同性| 在线观看黄色成年人网站| 免费观看理论片完整版| 91成人精品亚洲国产| 欧美日韩v中文在线| 亚洲av琪琪男人的天堂| 青青青青青操视频在线观看| 视频久久久久久久人妻| 亚洲午夜精品小视频| 午夜国产福利在线观看| 家庭女教师中文字幕在线播放| 国产成人小视频在线观看无遮挡| 欧洲亚洲欧美日韩综合| 都市激情校园春色狠狠| 欧美美女人体视频一区| 综合国产成人在线观看| 18禁免费av网站| 男人插女人视频网站| 亚洲人妻国产精品综合| 日韩不卡中文在线视频网站| 岛国免费大片在线观看| 黄色黄色黄片78在线| 美女视频福利免费看| 亚洲午夜伦理视频在线| 骚逼被大屌狂草视频免费看| 久久精品36亚洲精品束缚| 国产久久久精品毛片| 水蜜桃一区二区三区在线观看视频| 日本a级视频老女人| 国产视频一区在线观看| 护士小嫩嫩又紧又爽20p| 欧美天堂av无线av欧美| 国产变态另类在线观看| 国产精品国产三级国产午| 精品国产亚洲av一淫| 少妇高潮一区二区三区| 欧美老妇精品另类不卡片| 午夜久久久久久久99| 99re6热在线精品| 黄色片一级美女黄色片| 日视频免费在线观看| 视频 一区二区在线观看| 欧美性受xx黑人性猛交| 1区2区3区不卡视频| 同居了嫂子在线播高清中文| 免费在线福利小视频| 同居了嫂子在线播高清中文| 一区二区三区日韩久久| 日韩欧美中文国产在线 | 青青青青青青草国产| 熟女人妻三十路四十路人妻斩| 欧美天堂av无线av欧美| 白白操白白色在线免费视频| 国产精品国产三级国产午| 扒开让我视频在线观看| 日本性感美女视频网站| 日本午夜久久女同精女女| 韩国爱爱视频中文字幕| 日韩av有码中文字幕| 亚洲日本一区二区三区| 亚洲欧美精品综合图片小说| 亚洲一区二区三区五区 | 在线观看视频 你懂的| 国产精品精品精品999| 婷婷色中文亚洲网68| 可以在线观看的av中文字幕| 性色蜜臀av一区二区三区| 男生舔女生逼逼的视频| 91久久综合男人天堂| 99热99re在线播放| 韩国男女黄色在线观看| 97精品视频在线观看| 黄色视频在线观看高清无码| 一区二区在线观看少妇| 国产亚洲精品品视频在线| 亚洲欧美成人综合视频| 欧美成人一二三在线网| 婷婷六月天中文字幕| 亚洲欧美另类手机在线| 99热久久极品热亚洲| 亚洲欧美另类自拍偷拍色图| 日韩av免费观看一区| 国产91精品拍在线观看| 91欧美在线免费观看| 激情人妻校园春色亚洲欧美| 91福利在线视频免费观看| 中英文字幕av一区| 亚洲伊人久久精品影院一美女洗澡| 男人的网址你懂的亚洲欧洲av| 国产精品大陆在线2019不卡| 夜夜嗨av一区二区三区中文字幕| 亚洲一级av大片免费观看| 人妻少妇亚洲一区二区| 亚洲综合在线观看免费| 最新91九色国产在线观看| 18禁美女黄网站色大片下载| 大香蕉伊人国产在线| 非洲黑人一级特黄片| 中国熟女一区二区性xx| 久久丁香花五月天色婷婷| 亚洲熟妇x久久av久久| 999久久久久999| 国产91嫩草久久成人在线视频| 亚洲综合乱码一区二区| 亚洲专区激情在线观看视频| 亚洲 中文 自拍 无码| 日韩av免费观看一区| 亚洲少妇人妻无码精品| 夜女神免费福利视频| 欧美日本aⅴ免费视频| 99国内小视频在现欢看| 青青擦在线视频国产在线| 日本少妇的秘密免费视频| 加勒比视频在线免费观看| 天天夜天天日天天日| 无码精品一区二区三区人| 成年人该看的视频黄免费| 国产视频一区二区午夜| 91精品综合久久久久3d动漫| 国产精品入口麻豆啊啊啊| 成人在线欧美日韩国产| 三级黄色亚洲成人av| 日本熟妇一区二区x x| 好男人视频在线免费观看网站| 99热久久这里只有精品8| 日本乱人一区二区三区| 亚洲熟妇x久久av久久| 性感美女福利视频网站| 久精品人妻一区二区三区| 唐人色亚洲av嫩草| 久久久精品国产亚洲AV一| 动漫精品视频在线观看| 女警官打开双腿沦为性奴| 精品人妻伦一二三区久| 青青青aaaa免费| 人妻丝袜精品中文字幕| 中文字幕高清资源站| 午夜毛片不卡在线看| 一区二区三区久久中文字幕| 韩国男女黄色在线观看| 99精品视频之69精品视频| 欧美一区二区三区乱码在线播放| 国产老熟女伦老熟妇ⅹ| 欧美男人大鸡吧插女人视频| 大香蕉伊人国产在线| 精品av久久久久久久| 黄色片年轻人在线观看| 国产亚洲国产av网站在线| 国产午夜激情福利小视频在线| 精产国品久久一二三产区区别| 午夜久久香蕉电影网| 午夜国产免费福利av| 青青草原色片网站在线观看| 视频一区 二区 三区 综合| 国产又粗又猛又爽又黄的视频在线| 亚洲图片欧美校园春色| 绝色少妇高潮3在线观看| 999热精品视频在线| 午夜精品一区二区三区4| 2020韩国午夜女主播在线| 大白屁股精品视频国产| 成人18禁网站在线播放| 大鸡巴后入爆操大屁股美女| 国产亚洲精品欧洲在线观看| 亚洲福利午夜久久久精品电影网| 精品美女福利在线观看| 亚洲成a人片777777| 日韩黄色片在线观看网站| 91成人在线观看免费视频| 一区二区三区另类在线| 亚洲av天堂在线播放| 又黄又刺激的午夜小视频| 亚洲人妻av毛片在线| 黄色的网站在线免费看| 亚洲一区自拍高清免费视频| 免费观看理论片完整版| 欧美专区第八页一区在线播放| 免费无码人妻日韩精品一区二区| 久草电影免费在线观看| 日本黄色特一级视频| 午夜的视频在线观看| 久久h视频在线观看| 偷偷玩弄新婚人妻h视频| 夜色撩人久久7777| 熟女在线视频一区二区三区| av久久精品北条麻妃av观看| 亚洲推理片免费看网站| 韩国女主播精品视频网站| 国产普通话插插视频| 手机看片福利盒子日韩在线播放| 亚洲精品国偷自产在线观看蜜桃 | 在线视频这里只有精品自拍| 毛片一级完整版免费| 青青青aaaa免费| 伊人综合aⅴ在线网| wwwxxx一级黄色片| 狠狠的往里顶撞h百合| 亚洲av无乱一区二区三区性色| 久青青草视频手机在线免费观看| 大鸡巴操b视频在线| 国产欧美精品免费观看视频| gay gay男男瑟瑟在线网站| 中出中文字幕在线观看| 亚洲激情偷拍一区二区| 欧美中国日韩久久精品| 国产精品国产三级麻豆| 在线播放一区二区三区Av无码| 40道精品招牌菜特色| 蜜桃精品久久久一区二区| 午夜毛片不卡在线看| 熟女人妻在线观看视频| 美女被肏内射视频网站| 激情综合治理六月婷婷| 欧美激情电影免费在线| 亚洲av自拍偷拍综合| 熟女少妇激情五十路| 国产一区二区神马久久| 大香蕉日本伊人中文在线| 国产chinesehd精品麻豆| 75国产综合在线视频| 亚洲成人av在线一区二区| 成人av在线资源网站| 久久农村老妇乱69系列| 涩涩的视频在线观看视频| 美女骚逼日出水来了| 欧美精品中文字幕久久二区| 亚洲欧洲一区二区在线观看| 爆乳骚货内射骚货内射在线| 中文字幕无码日韩专区免费| 黄工厂精品视频在线观看| 狠狠的往里顶撞h百合| 老师啊太大了啊啊啊尻视频| 在线观看视频 你懂的| 亚洲精品午夜久久久久| 美女操逼免费短视频下载链接| 99精品视频在线观看婷婷| 91快播视频在线观看| 91香蕉成人app下载| 日韩中文字幕在线播放第二页| 色婷婷综合激情五月免费观看| 亚洲在线免费h观看网站| 四虎永久在线精品免费区二区| 最新黄色av网站在线观看| 丝袜美腿视频诱惑亚洲无| 国产精品久久综合久久| 婷婷综合亚洲爱久久| 欧美日韩熟女一区二区三区| 99re国产在线精品| 成人国产小视频在线观看| 天天干天天操天天插天天日| 水蜜桃国产一区二区三区| 国产福利小视频二区| 在线亚洲天堂色播av电影| 姐姐的朋友2在线观看中文字幕 | 岛国青草视频在线观看| 免费手机黄页网址大全| 午夜国产免费福利av| 国产精品亚洲在线观看| 3D动漫精品啪啪一区二区下载| 亚洲一区二区三区偷拍女厕91| 久久久精品欧洲亚洲av| 精品一区二区三区午夜| av一本二本在线观看| 少妇人妻久久久久视频黄片| 国产老熟女伦老熟妇ⅹ| 99久久成人日韩欧美精品| 免费看国产av网站| 日韩精品中文字幕播放| 中文字幕1卡1区2区3区| 午夜精品一区二区三区福利视频| 2012中文字幕在线高清| 亚洲欧美国产综合777| 成人资源在线观看免费官网| 97超碰国语国产97超碰| 四川五十路熟女av| 亚洲av日韩高清hd| 伊人开心婷婷国产av| 男生舔女生逼逼视频| 青青草原色片网站在线观看| free性日本少妇| 特大黑人巨大xxxx| 亚洲国产成人无码麻豆艾秋| 伊人日日日草夜夜草| 午夜免费体验区在线观看| 亚洲福利精品福利精品福利| 日美女屁股黄邑视频| 五色婷婷综合狠狠爱| 一区二区三区麻豆福利视频| 国产福利小视频大全| 精品视频国产在线观看| 成人性黑人一级av| 在线观看av亚洲情色| 精品av国产一区二区三区四区 | 欧美黑人巨大性xxxxx猛交| 国产激情av网站在线观看| 97精品人妻一区二区三区精品| 国产又大又黄免费观看| 欧美黑人性暴力猛交喷水| 少妇高潮一区二区三区| 91成人在线观看免费视频| 强行扒开双腿猛烈进入免费版| 色吉吉影音天天干天天操| 日韩无码国产精品强奸乱伦| 久久99久久99精品影院| 在线免费91激情四射 | 80电影天堂网官网| 熟女人妻在线中出观看完整版| 日本精品一区二区三区在线视频。 | 午夜毛片不卡免费观看视频| 人妻最新视频在线免费观看| 日日操夜夜撸天天干| 好太好爽好想要免费| 精品一线二线三线日本| 亚洲日本一区二区久久久精品| 女生自摸在线观看一区二区三区 | 日韩精品中文字幕在线| 日本午夜久久女同精女女| 亚洲护士一区二区三区| 中文字幕日韩无敌亚洲精品| 97精品人妻一区二区三区精品| 一区二区三区国产精选在线播放| 福利一二三在线视频观看| 精内国产乱码久久久久久| 福利午夜视频在线观看| 免费费一级特黄真人片| 国产aⅴ一线在线观看| 狠狠的往里顶撞h百合| 无套猛戳丰满少妇人妻| 日本少妇高清视频xxxxx| 国产欧美精品不卡在线| 黑人大几巴狂插日本少妇| 亚洲福利精品福利精品福利| 岛国av高清在线成人在线| 精品91高清在线观看| 成人乱码一区二区三区av| 亚洲精品亚洲人成在线导航| 沈阳熟妇28厘米大战黑人| 久久农村老妇乱69系列| 2021最新热播中文字幕| 一区二区三区久久中文字幕| 欧洲黄页网免费观看| 天天通天天透天天插| 色秀欧美视频第一页| 青青青爽视频在线播放| 日本熟女精品一区二区三区| 97瑟瑟超碰在线香蕉| 熟女妇女老妇一二三区| av中文字幕福利网| 2021天天色天天干| 99热99re在线播放| 欧美亚洲国产成人免费在线| av天堂加勒比在线| 端庄人妻堕落挣扎沉沦| 欧美激情电影免费在线| 特级欧美插插插插插bbbbb| 国产女人被做到高潮免费视频 | 亚洲1069综合男同| 亚洲视频在线视频看视频在线| 国产精品中文av在线播放| 福利国产视频在线观看| 久久麻豆亚洲精品av| 天天干天天操天天扣| 久久久91蜜桃精品ad| 午夜dv内射一区区| 国产日韩欧美视频在线导航| 欧美日韩中文字幕欧美| 护士小嫩嫩又紧又爽20p| 国产不卡av在线免费| japanese日本熟妇另类| 在线播放国产黄色av| 免费一级特黄特色大片在线观看 | 97欧洲一区二区精品免费 | 啊啊啊想要被插进去视频| 91国语爽死我了不卡| 青青草成人福利电影| 11久久久久久久久久久| 宅男噜噜噜666国产| 亚洲嫩模一区二区三区| 好男人视频在线免费观看网站| 人妻无码色噜噜狠狠狠狠色| 欧美精品 日韩国产| 亚洲一区二区三区在线高清| 80电影天堂网官网| 亚洲成人熟妇一区二区三区 | 91色网站免费在线观看| 天天日夜夜干天天操| 三上悠亚和黑人665番号| 国产精品久久久久国产三级试频| 国产精品sm调教视频| 日韩欧美在线观看不卡一区二区 | 香蕉av影视在线观看| 精品av久久久久久久| 国产精品午夜国产小视频| 东游记中文字幕版哪里可以看到| 大白屁股精品视频国产| 一本久久精品一区二区| 免费在线播放a级片| 亚洲国产欧美一区二区丝袜黑人| 成人30分钟免费视频| 少妇被强干到高潮视频在线观看 | jiujiure精品视频在线| 天天日天天做天天日天天做| 日韩成人综艺在线播放| 蜜桃视频入口久久久| 只有精品亚洲视频在线观看| 亚洲1卡2卡三卡4卡在线观看| 精品久久婷婷免费视频| 亚洲欧美激情国产综合久久久| 欧美精产国品一二三区| 日韩美在线观看视频黄| 免费费一级特黄真人片| 大香蕉福利在线观看| 操的小逼流水的文章| 国产一级精品综合av| 无码日韩人妻精品久久| 香蕉aⅴ一区二区三区| 天天日天天干天天要| 亚洲一区制服丝袜美腿| 男人和女人激情视频| 午夜毛片不卡免费观看视频| 欧美3p在线观看一区二区三区| 中文字幕最新久久久| 动漫av网站18禁| 亚洲男人在线天堂网| 清纯美女在线观看国产| 国产九色91在线视频| 国产高清在线观看1区2区| 午夜精品久久久久久99热| 综合精品久久久久97| 青青草原网站在线观看| 国产精彩对白一区二区三区| 欧美精品中文字幕久久二区| 色综合久久无码中文字幕波多| 老司机在线精品福利视频| 成人av亚洲一区二区| 美女张开腿让男生操在线看| 午夜毛片不卡免费观看视频| 91久久精品色伊人6882| 日本人妻欲求不满中文字幕| 午夜频道成人在线91| 91国内精品久久久久精品一| 韩国男女黄色在线观看| 97人妻总资源视频| 久久精品视频一区二区三区四区| 99re6热在线精品| 二区中出在线观看老师| 视频一区二区综合精品| 中文字幕网站你懂的| sejizz在线视频| 欧美精品一二三视频| 久久久麻豆精亚洲av麻花| 一区二区三区久久中文字幕| 五月天色婷婷在线观看视频免费| 国产1区,2区,3区| 亚洲嫩模一区二区三区| 亚洲成a人片777777| 黄片三级三级三级在线观看| 人人爱人人妻人人澡39| 粉嫩欧美美人妻小视频| 福利午夜视频在线观看| 亚洲伊人久久精品影院一美女洗澡| 欧美日韩人妻久久精品高清国产| 中文字幕之无码色多多| 摧残蹂躏av一二三区| 日本精品视频不卡一二三| 日本裸体熟妇区二区欧美| 狍和女人的王色毛片| 日本熟女精品一区二区三区| 91亚洲手机在线视频播放| 午夜激情高清在线观看| 白嫩白嫩美女极品国产在线观看| 午夜的视频在线观看| 日日日日日日日日夜夜夜夜夜夜| 精品日产卡一卡二卡国色天香 | 亚洲在线一区二区欧美| 2017亚洲男人天堂| 在线免费观看欧美小视频| 99国内小视频在现欢看| 成人亚洲国产综合精品| 成人av亚洲一区二区| brazzers欧熟精品系列| 中文字幕国产专区欧美激情 | 馒头大胆亚洲一区二区| 精品区一区二区三区四区人妻 | 成人免费公开视频无毒| 午夜影院在线观看视频羞羞羞| 亚洲国产美女一区二区三区软件| sspd152中文字幕在线| 38av一区二区三区| 国产视频一区二区午夜| 国产一区二区火爆视频| 欧美日韩人妻久久精品高清国产| 中文字幕一区二区自拍| 护士小嫩嫩又紧又爽20p| 美女福利写真在线观看视频| 在线播放 日韩 av| 久久久久只精品国产三级| 红桃av成人在线观看| www日韩毛片av| 成人国产激情自拍三区| 美女 午夜 在线视频| 大鸡八强奸视频在线观看| 少妇高潮无套内谢麻豆| 亚洲午夜福利中文乱码字幕| 熟女人妻在线观看视频| 久久久制服丝袜中文字幕| 不卡一区一区三区在线| 好太好爽好想要免费| 黄片大全在线观看观看| av无限看熟女人妻另类av| 老司机在线精品福利视频| 成人午夜电影在线观看 久久| 免费看美女脱光衣服的视频| 亚洲人妻视频在线网| 欧美黑人与人妻精品| 夜色17s精品人妻熟女| 天天射,天天操,天天说| 欧美久久久久久三级网| 国产精品日韩欧美一区二区| 老司机深夜免费福利视频在线观看| 都市激情校园春色狠狠| 在线免费视频 自拍| 免费69视频在线看| 中文字幕在线一区精品| 亚洲av午夜免费观看| 在线观看视频污一区| 91精品国产综合久久久蜜| 成人免费做爰高潮视频| 91国内精品久久久久精品一| 青青青青青手机视频| 午夜福利资源综合激情午夜福利资| 天天想要天天操天天干| 国产日韩精品一二三区久久久| 亚洲成高清a人片在线观看| 国产精品自偷自拍啪啪啪| 中文字日产幕乱六区蜜桃| 五月天久久激情视频| 激情图片日韩欧美人妻| 日本三极片中文字幕| 超碰97人人澡人人| 亚洲精品成人网久久久久久小说| 日日日日日日日日夜夜夜夜夜夜| 一个色综合男人天堂| 日韩欧美在线观看不卡一区二区 | 欧美亚洲免费视频观看| 欧美国品一二三产区区别| 成人动漫大肉棒插进去视频| 色天天天天射天天舔| 欧美日韩高清午夜蜜桃大香蕉| 北条麻妃av在线免费观看| 男大肉棒猛烈插女免费视频| 又粗又长 明星操逼小视频| 无码中文字幕波多野不卡 | 成熟熟女国产精品一区| 色吉吉影音天天干天天操| 3D动漫精品啪啪一区二区下载| 在线观看免费岛国av| 精品av久久久久久久| 不戴胸罩引我诱的隔壁的人妻| 中国无遮挡白丝袜二区精品| av欧美网站在线观看| 绯色av蜜臀vs少妇| 国产三级精品三级在线不卡| 美女av色播在线播放| 日日夜夜大香蕉伊人| 视频久久久久久久人妻| 日本阿v视频在线免费观看| av视网站在线观看| 亚洲一级 片内射视正片| 久青青草视频手机在线免费观看| 日本人妻少妇18—xx| 巨乳人妻日下部加奈被邻居中出| 中文字幕之无码色多多| 久草视频福利在线首页| 青青操免费日综合视频观看| 午夜精品一区二区三区城中村| 在线国产日韩欧美视频| 欧洲精品第一页欧洲精品亚洲| 超级碰碰在线视频免费观看| 亚洲男人的天堂a在线| 亚洲av自拍天堂网| 日曰摸日日碰夜夜爽歪歪| 欧美亚洲国产成人免费在线| 人妻最新视频在线免费观看| 中文字幕在线乱码一区二区| 激情五月婷婷免费视频| 欧洲亚洲欧美日韩综合| 亚洲视频乱码在线观看| 天美传媒mv视频在线观看| 男女第一次视频在线观看| 在线视频这里只有精品自拍| 国产综合精品久久久久蜜臀| 性色av一区二区三区久久久| 热久久只有这里有精品| 国产精品久久久久网| 在线观看欧美黄片一区二区三区| 中文字幕高清在线免费播放| 天天色天天操天天透| 日韩加勒比东京热二区| 中文字幕一区二区三区蜜月| 亚洲成人精品女人久久久| 大香蕉伊人中文字幕| 98精产国品一二三产区区别| 亚洲欧美一区二区三区电影| 日韩美女搞黄视频免费| 亚洲精品国偷自产在线观看蜜桃| 福利片区一区二体验区| 亚洲人一区二区中文字幕| 在线免费观看靠比视频的网站| 日韩av大胆在线观看| 91色九色porny| 99精品国产自在现线观看| 天天日天天添天天爽| 欧美日本aⅴ免费视频| 不卡一区一区三区在线| 亚洲国产最大av综合| 麻豆性色视频在线观看| 人妻无码中文字幕专区| 亚洲激情av一区二区| 亚洲av日韩精品久久久久久hd| 国产精品精品精品999| 亚洲国产在线精品国偷产拍 | 青青草国内在线视频精选| 日本少妇精品免费视频| 午夜在线精品偷拍一区二| 成人高潮aa毛片免费| av手机在线观播放网站| 国产日韩欧美美利坚蜜臀懂色| 免费观看国产综合视频| 亚洲国产在人线放午夜| 国产精品视频一区在线播放| 天天色天天爱天天爽| 人妻丰满熟妇综合网| 伊人情人综合成人久久网小说 | 可以在线观看的av中文字幕| 人人爱人人妻人人澡39| 免费福利av在线一区二区三区| av完全免费在线观看av| 自拍偷拍亚洲欧美在线视频| 丝袜肉丝一区二区三区四区在线看| 91福利在线视频免费观看| 国产精品大陆在线2019不卡| 偷拍自拍亚洲视频在线观看| 可以免费看的www视频你懂的| 扒开腿挺进肉嫩小18禁视频| 精品老妇女久久9g国产| 天天做天天干天天舔| 亚洲一级 片内射视正片| 一区二区三区美女毛片| 操的小逼流水的文章| 摧残蹂躏av一二三区| 精品久久久久久久久久中文蒉| 护士小嫩嫩又紧又爽20p| 亚洲精品国产久久久久久| 男人的网址你懂的亚洲欧洲av| 99热99re在线播放| 国产欧美精品一区二区高清| 青青擦在线视频国产在线| 欧美一区二区三区啪啪同性| 国产成人精品福利短视频| 天天日天天日天天射天天干| 青青青青青青青在线播放视频| 国产综合高清在线观看| 青青伊人一精品视频| 中文字幕中文字幕人妻| 亚洲高清自偷揄拍自拍| 人妻久久久精品69系列| 55夜色66夜色国产精品站| 中文字幕日韩人妻在线三区| 亚洲国际青青操综合网站| 在线 中文字幕 一区| 99久久久无码国产精品性出奶水| 三级av中文字幕在线观看| 风流唐伯虎电视剧在线观看 | 日韩成人综艺在线播放| 黑人大几巴狂插日本少妇| 人妻少妇av在线观看| 国产在线观看免费人成短视频| 成人蜜桃美臀九一一区二区三区| 99精品国产aⅴ在线观看| 91一区精品在线观看| 青青热久免费精品视频在线观看 | 亚洲中文字幕乱码区| 亚洲最大黄了色网站| av新中文天堂在线网址| 亚洲综合另类精品小说| 在线观看av观看av| 超黄超污网站在线观看| 97少妇精品在线观看| 在线观看一区二区三级| 欧美亚洲自偷自拍 在线| 人妻少妇精品久久久久久| 欧美 亚洲 另类综合| 久久久制服丝袜中文字幕| 日本一本午夜在线播放| 我想看操逼黄色大片| 国产三级影院在线观看| 欧美熟妇一区二区三区仙踪林| 国产麻豆国语对白露脸剧情| 狠狠鲁狠狠操天天晚上干干| yellow在线播放av啊啊啊| 中文字幕熟女人妻久久久| 美味人妻2在线播放| 毛片一级完整版免费| 成人伊人精品色xxxx视频| 天天日天天做天天日天天做| 成人亚洲国产综合精品| 涩涩的视频在线观看视频| 色婷婷综合激情五月免费观看| 欧美亚洲少妇福利视频| 天天干天天操天天插天天日| 少妇一区二区三区久久久| 51国产偷自视频在线播放| av中文字幕电影在线看| 日韩欧美国产一区不卡| 久久精品视频一区二区三区四区| 亚洲成人av一区久久| 久久久久久久亚洲午夜综合福利| 天天插天天色天天日| 亚洲熟色妇av日韩熟色妇在线| 日本男女操逼视频免费看| 国产午夜激情福利小视频在线| 大香蕉日本伊人中文在线| 一色桃子久久精品亚洲| 青青青国产免费视频| 91麻豆精品秘密入口在线观看| 五十路在线观看完整版| 亚洲精品av在线观看| 日本免费午夜视频网站| 国产免费高清视频视频| 插逼视频双插洞国产操逼插洞| 狍和女人的王色毛片| 91麻豆精品秘密入口在线观看| 国产一区成人在线观看视频 | 亚洲欧美综合另类13p| 中文字幕一区二区亚洲一区| 亚洲中文字字幕乱码| 中文字幕AV在线免费看 | 中文字幕日韩精品日本| 老师啊太大了啊啊啊尻视频| 狠狠操操操操操操操操操| 国产刺激激情美女网站| 天天干天天搞天天摸| 国产精品自偷自拍啪啪啪| 精品一区二区三区欧美| 自拍偷拍亚洲欧美在线视频| 欧美精产国品一二三产品价格| 视频在线亚洲一区二区| 亚洲推理片免费看网站| 国产精品久久久久久美女校花| av破解版在线观看| 91欧美在线免费观看| 啪啪啪操人视频在线播放| 免费十精品十国产网站| 国产麻豆精品人妻av| 老司机99精品视频在线观看| 黄色av网站免费在线| 亚洲成人激情视频免费观看了 | 4个黑人操素人视频网站精品91| 天天日天天做天天日天天做| 国产精品人妻熟女毛片av久| 中文字幕在线一区精品| 91极品大一女神正在播放| 九色精品视频在线播放| 久久精品久久精品亚洲人| 亚洲va欧美va人人爽3p| 综合一区二区三区蜜臀| 国产在线自在拍91国语自产精品 | 天天操天天操天天碰| 婷婷综合亚洲爱久久| 国产白袜脚足J棉袜在线观看| 成熟熟女国产精品一区| 蜜桃视频在线欧美一区| 91p0rny九色露脸熟女| 亚洲免费在线视频网站| 国产日韩av一区二区在线| 国产成人精品午夜福利训2021| 免费av岛国天堂网站| 青青草人人妻人人妻| 可以在线观看的av中文字幕| 喷水视频在线观看这里只有精品| 亚洲公开视频在线观看| 天天日天天天天天天天天天天| 国产精品久久久久国产三级试频| 成年人午夜黄片视频资源| 老司机午夜精品视频资源| 在线免费观看黄页视频| 色综合久久五月色婷婷综合| 男生舔女生逼逼视频| 中文乱理伦片在线观看| 精品视频中文字幕在线播放| 在线观看一区二区三级| 亚洲综合另类精品小说| 欧美特色aaa大片| 亚洲一区制服丝袜美腿| 97成人免费在线观看网站| 国产高清女主播在线| 国产日韩欧美美利坚蜜臀懂色| 好了av中文字幕在线| 天天日天天干天天干天天日| 国产 在线 免费 精品| aⅴ五十路av熟女中出| 欧美另类一区二区视频| 中文字幕AV在线免费看 | 亚洲 国产 成人 在线| 免费一级特黄特色大片在线观看| 九色视频在线观看免费| 亚洲熟女久久久36d| 91国偷自产一区二区三区精品| 亚洲一区av中文字幕在线观看| 国产普通话插插视频| 狠狠地躁夜夜躁日日躁| 日本黄色特一级视频| 免费岛国喷水视频在线观看| 日本一本午夜在线播放| 久久久久久性虐视频| 日本在线不卡免费视频| 在线观看免费视频色97| 精彩视频99免费在线| 91老熟女连续高潮对白| 91人妻精品一区二区久久| 在线国产日韩欧美视频| 午夜美女少妇福利视频| 日本男女操逼视频免费看| 欧美在线精品一区二区三区视频| 免费av岛国天堂网站| 99精品国产自在现线观看| 国产麻豆国语对白露脸剧情| av久久精品北条麻妃av观看| 亚洲一区二区三区偷拍女厕91| 免费十精品十国产网站| 日本丰满熟妇BBXBBXHD| 欧美日本aⅴ免费视频| 精品少妇一二三视频在线| 亚洲视频在线观看高清| 亚洲国产美女一区二区三区软件| 日本真人性生活视频免费看| 97国产在线av精品| 国产亚洲成人免费在线观看| 欧美精品免费aaaaaa| 久久久久久99国产精品| 在线制服丝袜中文字幕| 人妻丝袜榨强中文字幕| 毛片一级完整版免费| 一区二区三区四区视频| 大香蕉大香蕉在线看| 大香蕉大香蕉在线有码 av| 天天日天天干天天干天天日| 亚洲国产中文字幕啊啊啊不行了 | 亚洲一级av无码一级久久精品| 亚洲av色香蕉一区二区三区| 中文字幕人妻被公上司喝醉在线| 天堂中文字幕翔田av| 日本熟妇一区二区x x| 男人的天堂在线黄色| 人妻凌辱欧美丰满熟妇| 日本熟妇色熟妇在线观看| 黄片色呦呦视频免费看| 久久这里只有精品热视频| av天堂中文免费在线| 天天射,天天操,天天说| 五十路熟女av天堂| 欧美区一区二区三视频| 在线观看911精品国产| 中文字幕第三十八页久久| 亚洲欧美成人综合在线观看| 日本精品美女在线观看| 香港三日本三韩国三欧美三级| av老司机精品在线观看| 免费无码人妻日韩精品一区二区| 最近中文字幕国产在线| 任你操视频免费在线观看| 操人妻嗷嗷叫视频一区二区 | 狠狠操操操操操操操操操| 国产揄拍高清国内精品对白| 天堂女人av一区二区| 999热精品视频在线| 久久香蕉国产免费天天| 一级黄色片夫妻性生活| 中文字幕,亚洲人妻| 日本午夜久久女同精女女| 欧美视频一区免费在线| 午夜精品一区二区三区更新| 成人色综合中文字幕| 人人超碰国字幕观看97| 91免费黄片可看视频| 福利一二三在线视频观看| 日本在线一区二区不卡视频| 93人妻人人揉人人澡人人| 日韩在线中文字幕色| 国产九色91在线视频| 成人H精品动漫在线无码播放| 亚洲国产精品久久久久久6| 在线观看一区二区三级| 日韩不卡中文在线视频网站| 一级A一级a爰片免费免会员| 国产又粗又黄又硬又爽| 欧美中国日韩久久精品| 51国产成人精品视频| av老司机精品在线观看| 亚洲人人妻一区二区三区| 自拍偷拍vs一区二区三区| 大香蕉大香蕉在线看| 欧美区一区二区三视频| 亚洲av日韩精品久久久久久hd| 欧美老妇精品另类不卡片| 国产日韩精品一二三区久久久| 美日韩在线视频免费看| 免费手机黄页网址大全| 喷水视频在线观看这里只有精品| 成年人该看的视频黄免费| 亚洲激情av一区二区| 日韩欧美在线观看不卡一区二区 | 欧美男人大鸡吧插女人视频| 99re国产在线精品| 亚洲另类在线免费观看| 亚洲国产最大av综合| 国产精品自拍偷拍a| 1000部国产精品成人观看视频| 日本成人不卡一区二区| 伊人开心婷婷国产av| 国产福利小视频二区| 亚洲一区二区久久久人妻| 成年人的在线免费视频| 亚洲人妻视频在线网| av网站色偷偷婷婷网男人的天堂| 精品视频一区二区三区四区五区| 日本韩国在线观看一区二区| 亚洲 自拍 色综合图| 国产一区二区神马久久| 五月天中文字幕内射| 97瑟瑟超碰在线香蕉| 激情人妻校园春色亚洲欧美 | 国产福利在线视频一区| 看一级特黄a大片日本片黑人| 少妇人妻久久久久视频黄片| 欧美在线精品一区二区三区视频| 黄色视频成年人免费观看| 久久麻豆亚洲精品av| 成人乱码一区二区三区av| 欧美 亚洲 另类综合| 欧洲精品第一页欧洲精品亚洲| 亚洲最大黄了色网站| 欧美熟妇一区二区三区仙踪林| 一区二区在线视频中文字幕| 国产成人精品久久二区91| 天堂av在线最新版在线| 日韩亚国产欧美三级涩爱| 午夜国产免费福利av| 青青草在观免费国产精品| 日韩视频一区二区免费观看| 激情国产小视频在线| 成人sm视频在线观看| 视频啪啪啪免费观看| 免费黄高清无码国产| 内射久久久久综合网| 亚洲中文字字幕乱码| 国产视频网站国产视频| 偷青青国产精品青青在线观看| 亚洲成人国产综合一区| 亚洲欧美福利在线观看| 天天摸天天亲天天舔天天操天天爽| 五十路息与子猛烈交尾视频| 一区二区三区视频,福利一区二区| 被大鸡吧操的好舒服视频免费| 日韩不卡中文在线视频网站| 国产精品国色综合久久| 亚洲va国产va欧美va在线| 五十路丰满人妻熟妇| 一级黄色av在线观看| 亚洲欧洲av天堂综合| 绝顶痉挛大潮喷高潮无码| 青娱乐极品视频青青草| 一区二区三区在线视频福利| 日韩美女综合中文字幕pp| www,久久久,com| 性欧美激情久久久久久久| 日本福利午夜电影在线观看| 日本真人性生活视频免费看| 大香蕉大香蕉在线有码 av| 2020国产在线不卡视频| 中文字幕高清在线免费播放| 欧美精品久久久久久影院| 国产又色又刺激在线视频| 国产欧美精品不卡在线| 精品久久久久久久久久久a√国产 日本女大学生的黄色小视频 | 中文字幕人妻三级在线观看| 中文人妻AV久久人妻水| free性日本少妇| 2022国产精品视频| 午夜精品一区二区三区城中村| 91人妻精品久久久久久久网站| 一级黄片大鸡巴插入美女| 黑人乱偷人妻中文字幕| 一区二区麻豆传媒黄片| 久久久久久久亚洲午夜综合福利| 亚洲欧美激情国产综合久久久 | 天天摸天天干天天操科普| 天天日天天日天天擦| 91p0rny九色露脸熟女| 91 亚洲视频在线观看| 性色蜜臀av一区二区三区| 中文字幕免费在线免费| 天天操夜夜操天天操天天操| 午夜dv内射一区区| 在线视频免费观看网| 真实国产乱子伦一区二区| 精品人妻伦一二三区久| av手机在线免费观看日韩av| 男女啪啪啪啪啪的网站| 播放日本一区二区三区电影| 少妇露脸深喉口爆吞精| 强行扒开双腿猛烈进入免费版| 日韩欧美国产一区ab| 国产一级麻豆精品免费| 一色桃子人妻一区二区三区| 沈阳熟妇28厘米大战黑人| 中文字幕—97超碰网| av森泽佳奈在线观看| 亚洲av无码成人精品区辽| 白白操白白色在线免费视频 | avjpm亚洲伊人久久| 日韩一个色综合导航| 久久久超爽一二三av| 在线观看免费av网址大全| 一区二区三区四区视频| 精品成人午夜免费看| 青青草在观免费国产精品| 亚洲欧美久久久久久久久| 日本一道二三区视频久久| 动漫黑丝美女的鸡巴| 国产普通话插插视频| gogo国模私拍视频| 国产午夜福利av导航| 色哟哟国产精品入口| 久久综合老鸭窝色综合久久 | 国产视频一区在线观看| 欧美日韩熟女一区二区三区| 岛国一区二区三区视频在线| 精品老妇女久久9g国产| 无套猛戳丰满少妇人妻 | 人人爱人人妻人人澡39| 无忧传媒在线观看视频| 91久久综合男人天堂| 中文字幕在线乱码一区二区| 人妻无码中文字幕专区| 91福利在线视频免费观看| 国产密臀av一区二区三| 天天操夜夜操天天操天天操| 国产91嫩草久久成人在线视频| 国产精品三级三级三级| 欧美激情电影免费在线| 美女福利视频导航网站 | 岛国青草视频在线观看| 成人av中文字幕一区| 超碰97人人澡人人| gogo国模私拍视频| www日韩毛片av| 大陆胖女人与丈夫操b国语高清 | 国产实拍勾搭女技师av在线| 久久精品国产23696| 天天综合天天综合天天网| 人妻丝袜诱惑我操她视频| 六月婷婷激情一区二区三区| 午夜在线一区二区免费| 中文字幕亚洲中文字幕| 日本熟妇喷水xxx| 亚洲国产在线精品国偷产拍| 特一级特级黄色网片| 97a片免费在线观看| 成人亚洲精品国产精品 | 黑人巨大的吊bdsm| 三级黄色亚洲成人av| 精品国产亚洲av一淫| 和邻居少妇愉情中文字幕| 国产高清女主播在线| 亚洲综合图片20p| 国产精品探花熟女在线观看| 99re6热在线精品| 青青青青爽手机在线| 精品久久久久久久久久久99| 孕妇奶水仑乱A级毛片免费看| 午夜大尺度无码福利视频 | 夜女神免费福利视频| 骚逼被大屌狂草视频免费看| 国产亚洲欧美另类在线观看| 欧美成人综合视频一区二区 | 亚洲高清国产一区二区三区| 熟女人妻一区二区精品视频| 大屁股肉感人妻中文字幕在线| 真实国模和老外性视频| 国产女人被做到高潮免费视频 | 视频在线亚洲一区二区| 久久精品36亚洲精品束缚| 99精品免费久久久久久久久a| 97欧洲一区二区精品免费 | 欧洲日韩亚洲一区二区三区| 亚洲精品色在线观看视频| 91人妻精品一区二区在线看| 91成人精品亚洲国产| 美女小视频网站在线| 天天色天天操天天透| 久久h视频在线观看| 精品国产乱码一区二区三区乱| 少妇高潮一区二区三区| 成年人中文字幕在线观看| 欧美一区二区三区激情啪啪啪| 午夜dv内射一区区| 国产精品亚洲在线观看| 家庭女教师中文字幕在线播放| 免费av岛国天堂网站| 亚洲av天堂在线播放| 日本熟妇一区二区x x| 女蜜桃臀紧身瑜伽裤| 夜夜嗨av一区二区三区中文字幕| 亚洲老熟妇日本老妇| 久久久久久久久久性潮| av一本二本在线观看| 操人妻嗷嗷叫视频一区二区| 午夜dv内射一区区| 精品国产成人亚洲午夜| 绝色少妇高潮3在线观看| 天天日天天敢天天干| 国产精品人妻66p| 婷婷五月亚洲综合在线| 日本高清成人一区二区三区| 适合午夜一个人看的视频| 93人妻人人揉人人澡人人| 色在线观看视频免费的| 天天干狠狠干天天操| 日韩精品中文字幕福利| 天天操天天射天天操天天天| 天天做天天干天天操天天射| 91桃色成人网络在线观看| 国产麻豆剧传媒精品国产av蜜桃| 国产极品精品免费视频| 天天操天天插天天色| 亚洲人妻国产精品综合| 2025年人妻中文字幕乱码在线 | 这里有精品成人国产99| av网址国产在线观看| 天天日天天鲁天天操| 最近中文2019年在线看| 久久精品亚洲国产av香蕉| 天天做天天干天天舔| 久久丁香婷婷六月天| 精品一区二区三区三区88| 亚洲激情av一区二区| 国产视频网站国产视频| 日本a级视频老女人| 视频 一区二区在线观看| 麻豆精品成人免费视频| 天天操天天弄天天射| 欧美色呦呦最新网址| 亚洲一区二区三区在线高清| jiuse91九色视频| 91亚洲精品干熟女蜜桃频道| 国产精品午夜国产小视频| 亚洲无线观看国产高清在线| 日本www中文字幕| 5528327男人天堂| 欧美另类z0z变态| 成人av电影免费版| 99精品视频之69精品视频| 国产精品自拍视频大全| 熟女人妻在线中出观看完整版| 成人乱码一区二区三区av| 久久久精品国产亚洲AV一| 中文字幕av男人天堂| 日本后入视频在线观看| 91九色porny国产蝌蚪视频| 超鹏97历史在线观看| 18禁美女黄网站色大片下载| 六月婷婷激情一区二区三区| 熟女人妻三十路四十路人妻斩| 在线免费91激情四射 | 自拍偷拍vs一区二区三区| 国产视频在线视频播放| 午夜大尺度无码福利视频| 人人妻人人爱人人草| 亚洲一级美女啪啪啪| 北条麻妃av在线免费观看| 丰满少妇翘臀后进式| 国产女孩喷水在线观看| 精品黑人巨大在线一区| a v欧美一区=区三区| 91国内精品久久久久精品一| 久久精品国产23696| 97人妻人人澡爽人人精品| 国产日韩欧美视频在线导航| av无限看熟女人妻另类av| 亚洲人妻30pwc| 欧美xxx成人在线| 欧美日本在线视频一区| 天堂女人av一区二区| 天天干天天日天天干天天操| 51国产成人精品视频| 97人妻人人澡爽人人精品| 国产日韩欧美美利坚蜜臀懂色| 一级A一级a爰片免费免会员| 青青青激情在线观看视频| 大肉大捧一进一出好爽在线视频| 欧美天堂av无线av欧美| 狠狠躁狠狠爱网站视频 | 欧美麻豆av在线播放| 一区二区三区美女毛片| 亚洲熟女女同志女同| 久草视频 久草视频2| 国产美女午夜福利久久| 亚洲精品无码久久久久不卡| 1024久久国产精品| 成年人黄视频在线观看| 天天操天天插天天色| 特一级特级黄色网片| 欧美日本在线观看一区二区| 国产亚洲视频在线观看| 久久机热/这里只有| 经典国语激情内射视频| 人人在线视频一区二区| 欧美精品黑人性xxxx| 亚洲欧美在线视频第一页| 欧美一级片免费在线成人观看| 久久久极品久久蜜桃| 偷拍自拍亚洲美腿丝袜| 又粗又硬又猛又爽又黄的| 亚洲一区二区三区久久受| 非洲黑人一级特黄片| 亚洲高清一区二区三区视频在线| 亚洲图片欧美校园春色| 一色桃子久久精品亚洲| av中文字幕电影在线看| 欧美80老妇人性视频| 40道精品招牌菜特色| 人妻爱爱 中文字幕| caoporn蜜桃视频| 亚洲av极品精品在线观看| 午夜精品一区二区三区城中村| 大黑人性xxxxbbbb| av日韩在线观看大全| 青青青青青青草国产| 99热国产精品666| 亚洲图片偷拍自拍区| 人人妻人人澡欧美91精品| 国产伦精品一区二区三区竹菊| 青娱乐极品视频青青草| 国产午夜福利av导航| 亚洲卡1卡2卡三卡四老狼| 黑人乱偷人妻中文字幕| 在线观看亚洲人成免费网址| 国产黄色大片在线免费播放| 美女被肏内射视频网站| 精品一线二线三线日本| 老司机福利精品免费视频一区二区 | 日本免费视频午夜福利视频| 午夜在线精品偷拍一区二| 午夜精品福利91av| 91精品国产麻豆国产| 天天插天天色天天日| 成人乱码一区二区三区av| 精品av久久久久久久| 中文字幕在线观看极品视频| 亚洲成人av一区在线| 无套猛戳丰满少妇人妻| 久久国产精品精品美女| 红桃av成人在线观看| 激情综合治理六月婷婷| 中文字幕一区二区自拍| 日本性感美女三级视频| 老鸭窝日韩精品视频观看| 久久久麻豆精亚洲av麻花| 中文字幕AV在线免费看 | 黄色黄色黄片78在线| 亚洲一区制服丝袜美腿| 97精品综合久久在线| 国产精品久久9999| 超级碰碰在线视频免费观看| 亚洲人一区二区中文字幕| 一个人免费在线观看ww视频| 国产久久久精品毛片| 亚洲视频乱码在线观看| 婷婷久久久综合中文字幕| 久久久精品欧洲亚洲av| 黄色成年网站午夜在线观看| 大鸡巴后入爆操大屁股美女| 99一区二区在线观看| 在线免费观看欧美小视频| 女同互舔一区二区三区| 免费成人av中文字幕| 国产真实灌醉下药美女av福利| 中文字幕高清资源站| 亚国产成人精品久久久| 欧美在线一二三视频| 91老熟女连续高潮对白| 亚洲av日韩高清hd| 好了av中文字幕在线| 亚洲精品成人网久久久久久小说| 亚洲av日韩精品久久久久久hd| 操操网操操伊剧情片中文字幕网| 大陆胖女人与丈夫操b国语高清| av破解版在线观看| 国产一区二区火爆视频| 很黄很污很色的午夜网站在线观看| 深田咏美亚洲一区二区| 激情综合治理六月婷婷| 99国产精品窥熟女精品| 国产美女一区在线观看| 香蕉aⅴ一区二区三区| 99热99re在线播放| 色av色婷婷人妻久久久精品高清| 女生被男生插的视频网站| 亚洲 自拍 色综合图| 青娱乐蜜桃臀av色| 亚洲的电影一区二区三区| 精品成人啪啪18免费蜜臀| 精品一区二区三区在线观看| 国产精品黄片免费在线观看| 97青青青手机在线视频| 天堂av在线最新版在线| 99精品久久久久久久91蜜桃| 丝袜美腿视频诱惑亚洲无| av手机在线观播放网站| 女人精品内射国产99| 亚洲国际青青操综合网站| 蜜臀av久久久久蜜臀av麻豆| 99久久久无码国产精品性出奶水| 美女 午夜 在线视频| 精品视频国产在线观看| 久久www免费人成一看片| 91精品视频在线观看免费| 亚洲美女高潮喷浆视频| 国产男女视频在线播放| 开心 色 六月 婷婷| 日本丰满熟妇大屁股久久| 亚洲熟妇久久无码精品| 少妇高潮一区二区三区| 中文字日产幕乱六区蜜桃| 少妇人妻久久久久视频黄片| 中文字幕日本人妻中出| 香蕉aⅴ一区二区三区| 在线观看视频污一区| 天天操天天干天天日狠狠插 | 亚洲中文精品人人免费| 天天操天天爽天天干| 天天干天天啪天天舔| 99热99re在线播放| 瑟瑟视频在线观看免费视频| 青青青青视频在线播放| 国产精品久久综合久久| 亚洲av日韩av网站| 日本成人不卡一区二区| aiss午夜免费视频| 欧美爆乳肉感大码在线观看| 精品suv一区二区69| 亚洲男人的天堂a在线| 男人操女人的逼免费视频| 99久久中文字幕一本人| 日韩精品二区一区久久| 熟女人妻三十路四十路人妻斩| 亚洲av日韩高清hd| 国产视频网站国产视频| 熟女俱乐部一二三区| 亚洲久久午夜av一区二区| 亚洲另类伦春色综合小| 国产黄色a级三级三级三级| 少妇系列一区二区三区视频| 少妇一区二区三区久久久| 日美女屁股黄邑视频| 久久久制服丝袜中文字幕| 日本熟女50视频免费| 国产九色91在线观看精品| 国产午夜福利av导航| 亚洲伊人久久精品影院一美女洗澡| 精产国品久久一二三产区区别 | 日本高清成人一区二区三区 | 午夜免费体验区在线观看| 欧美成人综合视频一区二区| 97人人模人人爽人人喊| 骚货自慰被发现爆操| 最新国产精品网址在线观看| 快插进小逼里大鸡吧视频| 国产成人精品亚洲男人的天堂| 日本性感美女写真视频| 97欧洲一区二区精品免费| 大骚逼91抽插出水视频| 欧美精品一二三视频| 香蕉91一区二区三区| 欧美日本在线观看一区二区| 在线观看免费视频色97| 亚洲成人免费看电影| 精内国产乱码久久久久久| 日韩av大胆在线观看| 瑟瑟视频在线观看免费视频| 国产在线自在拍91国语自产精品| 亚洲国产成人无码麻豆艾秋| 大学生A级毛片免费视频| 久久精品视频一区二区三区四区| 国产一级精品综合av| 首之国产AV医生和护士小芳| 亚洲精品午夜久久久久| 男大肉棒猛烈插女免费视频| 涩爱综合久久五月蜜臀| 日本美女成人在线视频| 婷婷色中文亚洲网68| 1769国产精品视频免费观看| 91精品免费久久久久久| 粉嫩欧美美人妻小视频| 亚洲精品麻豆免费在线观看| 成年人啪啪视频在线观看| 淫秽激情视频免费观看| 班长撕开乳罩揉我胸好爽| 自拍偷拍日韩欧美亚洲| 国产精品黄页网站视频| 91色秘乱一区二区三区| 老司机免费视频网站在线看| 中文字幕一区二 区二三区四区| 国产又粗又猛又爽又黄的视频在线| 亚洲图库另类图片区| 精品av国产一区二区三区四区| 国产精品久久久久久美女校花| 91精品国产观看免费| av在线资源中文字幕| sejizz在线视频| 黄网十四区丁香社区激情五月天| 在线视频这里只有精品自拍| 亚洲va天堂va国产va久| 人人妻人人人操人人人爽| 五月婷婷在线观看视频免费| 特一级特级黄色网片| 在线观看av观看av| 亚洲成人三级在线播放| 美女骚逼日出水来了| 美女小视频网站在线| 亚洲午夜福利中文乱码字幕| 91欧美在线免费观看| 天天摸天天亲天天舔天天操天天爽| 伊人综合免费在线视频| 超级福利视频在线观看| 午夜在线观看岛国av,com| 男人操女人逼逼视频网站| 天天插天天色天天日| 夜女神免费福利视频| 久碰精品少妇中文字幕av| 午夜精品九一唐人麻豆嫩草成人| 精品一区二区三四区| 在线国产中文字幕视频| aⅴ五十路av熟女中出| 亚洲av无码成人精品区辽| 国产一线二线三线的区别在哪| 啪啪啪啪啪啪啪啪啪啪黄色| 57pao国产一区二区| 国产露脸对白在线观看| 喷水视频在线观看这里只有精品| 春色激情网欧美成人| 在线播放一区二区三区Av无码| 国产麻豆乱子伦午夜视频观看| 欧美亚洲中文字幕一区二区三区|