精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL中Lock Tables和Unlock Tables淺析

數據庫 MySQL
在MySQL中提供了鎖定表(lock tables)和解鎖表(unlock tables)的語法功能,ORACLE與SQL Server數據庫當中沒有這種語法。

[[384586]]

本文轉載自微信公眾號「DBA閑思雜想錄」,作者瀟湘隱者。轉載本文請聯系DBA閑思雜想錄公眾號。  

在MySQL中提供了鎖定表(lock tables)和解鎖表(unlock tables)的語法功能,ORACLE與SQL Server數據庫當中沒有這種語法。相信剛接觸MySQL的人,都想詳細、深入的了解一下這個功能.下面就盡量全面的解析、總結一下MySQL中lock tables與unlock tables的功能,如有不足或不正確的地方,歡迎指點一二。

鎖定表的語法:

  1. LOCK TABLES 
  2. tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} 
  3. [, tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}] ... 

LOCAL修飾符表示可以允許在其他會話中對在當前會話中獲取了READ鎖的的表執行插入。但是當保持鎖時,若使用Server外的會話來操縱數據庫則不能使用READ LOCAL。另外,對于InnoDB表,READ LOCAL與READ相同。

  • The LOCAL modifier enables nonconflicting INSERT statements (concurrent inserts) by other sessions to execute while the lock is held. (See Section 8.11.3, “Concurrent Inserts”.) However, READ LOCAL cannot be used if you are going to manipulate the database using processes external to the server while you hold the lock. For InnoDB tables, READ LOCAL is the same as READ.

修飾符LOW_PRIORITY用于之前版本的MySQL,它會影響鎖定行為,但是從MySQL 5.6.5以后,這個修飾符已經被棄用。如果使用它則會產生警告。

  1. [LOW_PRIORITY] WRITE lock: 
  2.  
  3. The session that holds the lock can read and write the table
  4.  
  5. Only the session that holds the lock can access the tableNo other session can access it until the lock is released. 
  6.  
  7. Lock requests for the table by other sessions block while the WRITE lock is held. 
  8.  
  9. The LOW_PRIORITY modifier has no effect. In previous versions of MySQL, it affected locking behavior, but this is no longer trueAs of MySQL 5.6.5, it is deprecated and its use produces a warning. Use WRITE without LOW_PRIORITY instead

解鎖表的語法:

UNLOCK TABLES

LOCK TABLES為當前會話鎖定表。UNLOCK TABLES釋放被當前會話持有的任何鎖。官方文檔“13.3.5 LOCK TABLES and UNLOCK TABLES Syntax”已經對LOCK TALES與UNLOCK TABLES做了不少介紹,下面我們通過一些測試例子來深入的理解一下鎖表與解鎖表的相關知識點。我們先準備一下測試環境用的表和數據。

  1. mysql> create table test( id intname varchar(12)); 
  2. Query OK, 0 rows affected (0.07 sec) 
  3.  
  4. mysql> insert into test 
  5.     -> select 10001, 'kerry'   union all 
  6.     -> select 10002, 'richard' union all 
  7.     -> select 10003, 'jimmy' ; 
  8. Query OK, 3 rows affected (0.05 sec) 
  9. Records: 3  Duplicates: 0  Warnings: 0 
  10.  
  11. mysql>  

當前會話(會話ID為61)持有test表的READ鎖后,那么當前會話只可以讀該表,而不能往表中寫入數據,否則就會報“Table 'test' was locked with a READ lock and can't be updated”這樣的錯誤。

注意:如果使用LOCK TABLE WRITE鎖定表后,則可以更新數據。詳見后面介紹

  1. mysql> select connection_id(); 
  2. +-----------------+ 
  3. | connection_id() | 
  4. +-----------------+ 
  5. |              61 | 
  6. +-----------------+ 
  7. 1 row in set (0.00 sec) 
  8.  
  9. mysql> show open tables where in_use >=1; 
  10. Empty set (0.00 sec) 
  11.  
  12. mysql> lock tables test read
  13. Query OK, 0 rows affected (0.00 sec) 
  14.  
  15. mysql> show open tables where in_use >=1; 
  16. +----------+-------+--------+-------------+ 
  17. Database | Table | In_use | Name_locked | 
  18. +----------+-------+--------+-------------+ 
  19. | MyDB     | test  |      1 |           0 | 
  20. +----------+-------+--------+-------------+ 
  21. 1 row in set (0.01 sec) 
  22.  
  23. mysql> select * from test; 
  24. +-------+---------+ 
  25. | id    | name    | 
  26. +-------+---------+ 
  27. | 10001 | kerry   | 
  28. | 10002 | richard | 
  29. | 10003 | jimmy   | 
  30. +-------+---------+ 
  31. rows in set (0.00 sec) 
  32.  
  33. mysql> insert into test 
  34.     -> values(10004, 'ken'); 
  35. ERROR 1099 (HY000): Table 'test' was locked with a READ lock and can't be updated 
  36. mysql>  

 

其它會話也能查詢表test,但是不能修改表,如果執行DML操作的話,則會一直處于被阻塞狀態(Waiting for table metadata lock)。

另外,我們測試一下修飾符LOCAL的用途,如下所示:

  1. mysql> create table test2( id int , name varchar(12)) engine=MyISAM; 
  2. Query OK, 0 rows affected (0.05 sec) 
  3.  
  4. mysql> insert into test2 
  5.     -> select 1001, 'test'
  6. Query OK, 1 row affected (0.00 sec) 
  7. Records: 1  Duplicates: 0  Warnings: 0 
  8. mysql> select connection_id(); 
  9. +-----------------+ 
  10. | connection_id() | 
  11. +-----------------+ 
  12. |              66 | 
  13. +-----------------+ 
  14. 1 row in set (0.00 sec) 
  15.  
  16. mysql> lock tables test2 read local
  17. Query OK, 0 rows affected (0.00 sec) 
  18.  
  19. mysql> select * from test2; 
  20. +------+------+ 
  21. | id   | name | 
  22. +------+------+ 
  23. | 1001 | test | 
  24. +------+------+ 
  25. 1 row in set (0.00 sec) 
  26.  
  27. mysql> insert into test2 
  28.     -> select 1002, 'kkk'
  29. ERROR 1099 (HY000): Table 'test2' was locked with a READ lock and can't be updated 
  30. mysql>  

但是在其它會話當中,你可以看到表test2可以被插入。當然前提是表的存儲引擎不能是innodb引擎,否則使用修飾符LOCAL和不用LOCAL是一樣的,其它會話無法對表寫入。

  1. mysql> select connection_id(); 
  2. +-----------------+ 
  3. | connection_id() | 
  4. +-----------------+ 
  5. |              65 | 
  6. +-----------------+ 
  7. 1 row in set (0.00 sec) 
  8.  
  9. mysql> select * from test2; 
  10. +------+------+ 
  11. | id   | name | 
  12. +------+------+ 
  13. | 1001 | test | 
  14. +------+------+ 
  15. 1 row in set (0.00 sec) 
  16.  
  17. mysql> insert into test2 
  18.     -> select 1002, 'kkk'
  19. Query OK, 1 row affected (0.00 sec) 
  20. Records: 1  Duplicates: 0  Warnings: 0 

那么其他會話是否也能讀此表呢? 其它會話能否也能鎖定該表(LOCK TABLES READ LOCAL)?其它會話是否也能鎖定寫(LOCK TABLE WRITE)呢?。關于這些疑問,其它會話也能讀此表,其它表也能鎖定該表(LOCK TABLES READ LOCAL),但是不能LOCK TABLE WRITE。

對于MyISAM表,現在用的比較少,我們還是用InnoDB類型的表來實驗一下,在其中一個會話使用lock table鎖定表test,

  1. mysql> select connection_id(); 
  2. +-----------------+ 
  3. | connection_id() | 
  4. +-----------------+ 
  5. |              61 | 
  6. +-----------------+ 
  7. 1 row in set (0.00 sec) 
  8.  
  9. mysql> lock table test read
  10. Query OK, 0 rows affected (0.00 sec) 
  11.  
  12. mysql> show open tables where in_use >=1; 
  13. +----------+-------+--------+-------------+ 
  14. Database | Table | In_use | Name_locked | 
  15. +----------+-------+--------+-------------+ 
  16. | MyDB     | test  |      1 |           0 | 

然后在會話62中進行下面測試:

  1. mysql> select connection_id(); 
  2. +-----------------+ 
  3. | connection_id() | 
  4. +-----------------+ 
  5. |              62 | 
  6. +-----------------+ 
  7. 1 row in set (0.01 sec) 
  8.  
  9. mysql> select * from test; 
  10. +-------+---------+ 
  11. | id    | name    | 
  12. +-------+---------+ 
  13. | 10001 | kerry   | 
  14. | 10002 | richard | 
  15. | 10003 | jimmy   | 
  16. +-------+---------+ 
  17. rows in set (0.00 sec) 
  18.  
  19. mysql> lock tables test read
  20. Query OK, 0 rows affected (0.00 sec) 
  21.  
  22. mysql> show open tables where in_use >=1; 
  23. +----------+-------+--------+-------------+ 
  24. Database | Table | In_use | Name_locked | 
  25. +----------+-------+--------+-------------+ 
  26. | MyDB     | test  |      2 |           0 | 
  27. +----------+-------+--------+-------------+ 
  28. 1 row in set (0.00 sec) 
  29.  
  30. mysql> unlock tables; 
  31. Query OK, 0 rows affected (0.00 sec) 
  32.  
  33. mysql> show open tables where in_use >=1; 
  34. +----------+-------+--------+-------------+ 
  35. Database | Table | In_use | Name_locked | 
  36. +----------+-------+--------+-------------+ 
  37. | MyDB     | test  |      1 |           0 | 
  38. +----------+-------+--------+-------------+ 
  39. 1 row in set (0.00 sec) 
  40.  
  41. mysql> lock tables test write; 

 

如上測試所示,如果一個會話在一個表上獲得一個READ鎖后,所有其他會話只能從表中讀。不能往表中寫,其它會話也可在該表上獲取一個READ鎖,此時你會在show open tables里面看到in_use的值增加。其實LOCK TABLES READ是一個表鎖,而且是共享鎖。但是當一個會話獲取一個表上的READ鎖后,其它會話就不能獲取該表的WRITE鎖了,此時就會被阻塞,直到持有READ鎖的會話釋放READ鎖。

 

該會話(會話61)中則可以繼續獲取WRITE鎖。當該會話獲取WRITE鎖后,其它會話則無法獲取READ鎖了

  1. mysql> lock table test write; 
  2. Query OK, 0 rows affected (0.00 sec) 

另外需要注意的是,當前會話如果鎖定了其中一個表,那么是無法查詢其它表的。否則會報“ERROR 1100 (HY000): Table 'worklog' was not locked with LOCK TABLES”錯誤。

 

那么我們再來看看WRITE鎖吧。測試前,先在上面兩個會話中執行 unlock tables命令。然后獲得表TEST上的一個WRITE鎖,如下所示,當前會話可以讀寫表TEST

  1. mysql> unlock tables; 
  2. Query OK, 0 rows affected (0.00 sec) 
  3.  
  4. mysql> select connection_id(); 
  5. +-----------------+ 
  6. | connection_id() | 
  7. +-----------------+ 
  8. |              61 | 
  9. +-----------------+ 
  10. 1 row in set (0.00 sec) 
  11.  
  12. mysql> show open tables where in_use >=1; 
  13. Empty set (0.00 sec) 
  14.  
  15. mysql> lock tables test write; 
  16. Query OK, 0 rows affected (0.00 sec) 
  17.  
  18. mysql> select * from test; 
  19. +-------+---------+ 
  20. | id    | name    | 
  21. +-------+---------+ 
  22. | 10001 | kerry   | 
  23. | 10002 | richard | 
  24. | 10003 | jimmy   | 
  25. +-------+---------+ 
  26. rows in set (0.00 sec) 
  27.  
  28. mysql> update test set name='ken' where id=10003; 
  29. Query OK, 1 row affected (0.01 sec) 
  30. Rows matched: 1  Changed: 1  Warnings: 0 
  31.  
  32. mysql>  

其它會話無法讀寫表TEST,都會被阻塞,當然也無法獲取表TEST的READ鎖或WRITE鎖。也就是說當一個會話獲得一個表上的一個WRITE鎖后,那么只有持鎖的會話才能READ或WRITE表,其他會話都會被阻止。

  1. mysql> unlock tables; 
  2. Query OK, 0 rows affected (0.00 sec) 
  3.  
  4. mysql>  
  5. mysql>  
  6. mysql> show open tables where in_use >=1; 
  7. +----------+-------+--------+-------------+ 
  8. Database | Table | In_use | Name_locked | 
  9. +----------+-------+--------+-------------+ 
  10. | MyDB     | test  |      1 |           0 | 
  11. +----------+-------+--------+-------------+ 
  12. 1 row in set (0.00 sec) 
  13.  
  14. mysql> select * from test; 

  1. mysql> select connection_id(); 
  2. +-----------------+ 
  3. | connection_id() | 
  4. +-----------------+ 
  5. |              63 | 
  6. +-----------------+ 
  7. 1 row in set (0.00 sec) 
  8.  
  9. mysql> show processlist; 
  10. +----+------+-----------+------+---------+------+---------------------------------+--------------------+ 
  11. | Id | User | Host      | db   | Command | Time | State                           | Info               | 
  12. +----+------+-----------+------+---------+------+---------------------------------+--------------------+ 
  13. | 61 | root | localhost | MyDB | Sleep   |   86 |                                 | NULL               | 
  14. | 62 | root | localhost | MyDB | Query   |   40 | Waiting for table metadata lock | select * from test | 
  15. | 63 | root | localhost | MyDB | Query   |    0 | init                            | show processlist   | 
  16. | 64 | root | localhost | MyDB | Sleep   | 2551 |                                 | NULL               | 
  17. +----+------+-----------+------+---------+------+---------------------------------+--------------------+ 
  18. rows in set (0.00 sec) 

UNLOCK TABLES釋放被當前會話持有的任何鎖,但是當會話發出另外一個LOCK TABLES時,或當服務器的連接被關閉時,當前會話鎖定的所有表會隱式被解鎖。下面我們也可以測試看看

  1. mysql> lock tables test read
  2. Query OK, 0 rows affected (0.00 sec) 
  3.  
  4. mysql> show open tables where in_use >=1; 
  5. +----------+-------+--------+-------------+ 
  6. Database | Table | In_use | Name_locked | 
  7. +----------+-------+--------+-------------+ 
  8. | MyDB     | test  |      1 |           0 | 
  9. +----------+-------+--------+-------------+ 
  10. 1 row in set (0.00 sec) 
  11.  
  12. mysql> lock tables worklog read
  13. Query OK, 0 rows affected (0.00 sec) 
  14.  
  15. mysql> show open tables where in_use >=1; 
  16. +----------+---------+--------+-------------+ 
  17. Database | Table   | In_use | Name_locked | 
  18. +----------+---------+--------+-------------+ 
  19. | MyDB     | worklog |      1 |           0 | 
  20. +----------+---------+--------+-------------+ 
  21. 1 row in set (0.00 sec) 
  22.  
  23. mysql>  

 

那么我們如何在當前會話鎖定多個表呢?如下所示:

  1. mysql> show open tables where in_use >=1; 
  2. Empty set (0.00 sec) 
  3.  
  4. mysql> lock tables test read, worklog read
  5. Query OK, 0 rows affected (0.00 sec) 
  6.  
  7. mysql> show open tables where in_use >=1; 
  8. +----------+---------+--------+-------------+ 
  9. Database | Table   | In_use | Name_locked | 
  10. +----------+---------+--------+-------------+ 
  11. | MyDB     | worklog |      1 |           0 | 
  12. | MyDB     | test    |      1 |           0 | 
  13. +----------+---------+--------+-------------+ 
  14. rows in set (0.00 sec) 
  15.  
  16. mysql>  

另外,還有一些細節問題,LOCK TABLES是否可以為視圖、觸發器、臨時表加鎖呢?

  1. mysql> create table test2( id int, sex bit); 
  2. Query OK, 0 rows affected (0.06 sec) 
  3.  
  4. mysql> insert into test2 
  5.     -> select 10001, 1 union all 
  6.     -> select 10002, 0 union all 
  7.     -> select 10003, 1; 
  8. Query OK, 3 rows affected (0.02 sec) 
  9. Records: 3  Duplicates: 0  Warnings: 0 
  10. mysql> create view v_test 
  11.     -> as 
  12.     -> select t1.id, t1.name, t2.sex 
  13.     -> from test t1 left join test2 t2 on t1.id =t2.id; 
  14. Query OK, 0 rows affected (0.01 sec) 
  15. mysql> lock tables v_test read
  16. Query OK, 0 rows affected (0.00 sec) 
  17.  
  18. mysql> show open tables where in_use >=1; 
  19. +----------+-------+--------+-------------+ 
  20. Database | Table | In_use | Name_locked | 
  21. +----------+-------+--------+-------------+ 
  22. | MyDB     | test2 |      1 |           0 | 
  23. | MyDB     | test  |      1 |           0 | 
  24. +----------+-------+--------+-------------+ 
  25. rows in set (0.00 sec) 
  26.  
  27. mysql>  

如上測試所示,對于VIEW加鎖,LOCK TABLES語句會為VIEW中使用的所有基表加鎖。對觸發器使用LOCK TABLE,那么就會鎖定觸發器中所包含的全部表(any tables used in triggers are also locked implicitly)

  1. mysql> unlock tables; 
  2. Query OK, 0 rows affected (0.00 sec) 
  3.  
  4. mysql> create temporary table tmp like test; 
  5. Query OK, 0 rows affected (0.04 sec) 
  6.  
  7. mysql> show open tables where in_use >=1; 
  8. Empty set (0.00 sec) 
  9.  
  10. mysql> select database(); 
  11. +------------+ 
  12. database() | 
  13. +------------+ 
  14. | MyDB       | 
  15. +------------+ 
  16. 1 row in set (0.00 sec) 
  17.  
  18. mysql> select * from tmp; 
  19. Empty set (0.00 sec) 
  20.  
  21. mysql> insert into tmp 
  22.     -> select 1001, 'kerry' ; 
  23. Query OK, 1 row affected (0.01 sec) 
  24. Records: 1  Duplicates: 0  Warnings: 0 
  25.  
  26. mysql>  

LOCK TABLES 與 UNLOCK TABLES只能為自己獲取鎖和釋放鎖,不能為其他會話獲取鎖,也不能釋放由其他會話保持的鎖。一個對象獲取鎖,需具備該對象上的SELECT權限和LOCK TABLES權限。LOCK TABLES語句為當前會話顯式的獲取表鎖。最后,關于LOCK TABLES與事務當中鎖有那些異同,可以參考官方文檔:

LOCK TABLES and UNLOCK TABLES interact with the use of transactions as follows:

 

  • LOCK TABLES is not transaction-safe and implicitly commits any active transaction before attempting to lock the tables.
  • ·UNLOCK TABLES implicitly commits any active transaction, but only if LOCK TABLES has been used to acquire table locks. For example, in the following set of statements,UNLOCK TABLES releases the global read lock but does not commit the transaction because no table locks are in effect:

 

責任編輯:武曉燕 來源: DBA閑思雜想錄
相關推薦

2021-01-28 23:26:55

MySQL

2009-06-16 10:36:00

Google Fusi應用實例

2022-05-26 21:05:23

MySQL腳本數據庫

2011-03-15 16:47:08

Tables_privcolumns_pri

2009-06-16 21:59:25

云計算

2020-09-23 10:03:21

谷歌Android工具

2009-06-16 09:44:10

Fusion Tabl云計算數據庫Google

2009-06-16 09:41:36

Fusion Tabl云計算數據庫

2010-05-24 10:45:52

子命令Svn lock

2025-04-24 10:56:01

MySQLInnoDB數據庫鎖

2024-06-12 14:03:31

MySQLInnoDB

2025-08-11 09:08:41

2009-06-04 09:47:48

MySQL隱藏控件TMPDIR

2019-09-03 11:23:13

MySQL技術磁盤

2023-06-27 08:28:40

MySQLInnoDB

2009-12-24 17:26:00

ADO創建表

2009-10-29 09:48:12

DAO.NET Dat

2009-05-13 11:13:07

MySQL定位性能故障

2011-06-09 18:05:00

QT MySql

2009-09-14 19:58:47

DataSet和Dat
點贊
收藏

51CTO技術棧公眾號

亚洲新中文字幕| 狠狠久久亚洲欧美专区| 成人深夜直播免费观看| 欧美爱爱小视频| ccyy激情综合| 色视频欧美一区二区三区| 亚洲图片都市激情| 欧美天堂在线视频| 免费在线观看不卡| 欧美精品激情blacked18| 91视频免费观看网站| av成人在线网站| 日韩欧美亚洲国产一区| 青青在线免费视频| 先锋av资源站| 国内精品免费在线观看| 欧美一区视频在线| 美女福利视频在线观看| 国产99久久久国产精品成人免费 | 国产日韩欧美亚洲| 999热视频在线观看| 无码视频在线观看| 亚洲高清资源| 久久久国产一区| 久久久久久久久久久久久久久| 亚洲不卡视频| 5566中文字幕一区二区电影| 国产欧美高清在线| а_天堂中文在线| 成人免费在线播放视频| 日本精品二区| 四虎影院在线域名免费观看| 风流少妇一区二区| 91视频免费在线观看| 一级特黄免费视频| 亚洲欧美久久久| 国内精品视频久久| 麻豆chinese极品少妇| 久久中文视频| 亚洲欧美日韩直播| 国产国语性生话播放| av在线亚洲色图| 日韩欧美一卡二卡| 亚洲一二三不卡| 亚洲成人毛片| 欧美精品日韩综合在线| 亚洲 欧美 另类人妖| 手机看片久久| 色屁屁一区二区| 男人天堂网视频| 日韩电影毛片| 日韩欧美亚洲范冰冰与中字| 男人日女人bb视频| 亚洲天堂导航| 色天使色偷偷av一区二区| 各处沟厕大尺度偷拍女厕嘘嘘| 日本不卡1234视频| 欧美日韩国产中文字幕| 奇米精品一区二区三区| 亚洲风情在线资源| 色偷偷成人一区二区三区91| 少妇人妻互换不带套| av高清一区| 欧美在线三级电影| 色婷婷.com| 精品中文字幕一区二区三区四区 | 色婷婷激情五月| 97久久超碰国产精品| 久久综合九色综合网站| 国产小视频在线| 国产精品天美传媒沈樵| 在线观看成人一级片| 成年视频在线观看| 亚洲伊人伊色伊影伊综合网| 国产一区二区视频播放| 欧洲av不卡| 欧美福利视频一区| 久久久精品人妻一区二区三区| 豆花视频一区二区| 日韩成人在线电影网| 精品欧美一区二区久久久| 欧美激情欧美| 久久久久久久久久久亚洲| 日韩av大片在线观看| 日日摸夜夜添夜夜添精品视频| 国产精品视频资源| 精品人妻久久久久一区二区三区| 丁香网亚洲国际| 美女主播视频一区| 日本黄色片在线观看| 一区二区三区欧美久久| 欧美亚洲国产成人| 欧美视频在线视频精品| 日韩精品资源二区在线| 午夜理伦三级做爰电影| 一区二区三区毛片免费| 欧美一级电影在线| 一级黄色片在线| 高清不卡一二三区| 欧洲精品国产| 麻豆av在线播放| 91国偷自产一区二区开放时间| 国内av免费观看| 国产乱码精品一区二区三区四区 | 久久男人天堂| 欧美乱熟臀69xxxxxx| 国产二级一片内射视频播放 | 中文幕av一区二区三区佐山爱| 精品久久久三级丝袜| 内射毛片内射国产夫妻| 一本久久综合| 91九色视频在线观看| 欧美孕妇孕交| 亚洲综合一区二区精品导航| 另类小说色综合| 亚洲第一福利社区| 蜜月aⅴ免费一区二区三区| 国产成人一级片| 国产成人一区在线| av动漫免费观看| 粉嫩一区二区三区| 亚洲黄色有码视频| 欧美性猛交xxxxx少妇| 美女视频第一区二区三区免费观看网站| 99re资源| 国产激情在线视频| 欧美性生交片4| 给我看免费高清在线观看| 精品动漫3d一区二区三区免费版| 成人免费福利视频| 日本在线观看视频| 欧洲生活片亚洲生活在线观看| 亚洲国产精品无码久久久久高潮| 亚洲精品午夜av福利久久蜜桃| 国产精品久久久久久久天堂| 久久久久久久影视| 欧美性xxxx| 人人妻人人澡人人爽人人精品 | 亚洲**2019国产| 国产日韩精品suv| 18成人在线观看| 岛国毛片在线播放| 色无极亚洲影院| 国产精品香蕉av| 国产高清视频在线播放| 色哟哟日韩精品| 一区二区三区四区免费| 亚久久调教视频| 欧美性天天影院| 欧美成人资源| 在线播放精品一区二区三区| 波多野结衣小视频| 中文字幕中文字幕一区| 免费看涩涩视频| 999久久久国产精品| 国产欧美日韩免费| 黄色免费网站在线观看| 4438成人网| 国产一级av毛片| 成人av网址在线| 1024精品视频| 激情五月综合网| 成人精品一区二区三区电影黑人| 国产激情在线视频| 亚洲第一免费网站| 日韩一区二区视频在线| 国产亚洲欧洲一区高清在线观看| 午夜激情福利在线| 欧美成人milf| 99re视频在线播放| 美女视频在线免费| 亚洲一区二区国产| 国产又粗又猛又爽又黄的| 亚洲另类一区二区| 国产精品久久久久久久无码| 久久综合九色| 国产成人精品免费看在线播放| 欧美影院精品| 26uuu亚洲国产精品| 精品99又大又爽又硬少妇毛片| 欧美精选在线播放| 国产亚洲精品成人| 国产亚洲综合性久久久影院| 亚洲精品第三页| 欧美成熟视频| 欧美一级片免费观看| 高清一区二区中文字幕| 97在线免费视频| 日本高清视频在线播放| 精品国产91久久久久久久妲己| 国产精品777777| 亚洲欧美一区二区三区久本道91| 午夜男人的天堂| 喷水一区二区三区| 欧美一级片免费播放| av在线不卡免费观看| wwwxx欧美| h1515四虎成人| 97高清免费视频| 米奇精品一区二区三区| 日韩电影第一页| 国产av无码专区亚洲av| 一本色道a无线码一区v| 欧美精品xxxxx| 中文一区一区三区高中清不卡| 五月天丁香社区| 久久爱www久久做| 大陆极品少妇内射aaaaa| 天天色天天射综合网| 欧美日韩电影一区二区| 日韩不卡在线视频| 国产精品免费观看在线| 日本不卡网站| 欧美国产高跟鞋裸体秀xxxhd| av资源种子在线观看| 亚洲精品美女久久久| 精品国产伦一区二区三| 欧美日韩视频在线观看一区二区三区| 国产成人在线观看网站| 亚洲精品高清在线| 日韩在线视频免费看| 久久久.com| 亚洲第一页av| 不卡一区在线观看| 成人三级做爰av| 久久国产精品一区二区| 爱情岛论坛vip永久入口| 亚洲欧美久久久| 成年人午夜视频在线观看| 午夜精品久久| 免费cad大片在线观看| 久久激情电影| 深夜福利成人| 国产一区日韩| 日本不卡高清视频一区| 亚洲区小说区图片区qvod| 精品1区2区| 久久国产精品免费精品3p| 国产经典一区二区三区| 日韩影片在线观看| 99三级在线| 99久久人爽人人添人人澡| 91影院未满十八岁禁止入内| 在线观看欧美| 91在线免费观看网站| 国产一区二区三区| 97超级碰碰| 成人av影音| 久久久久久国产精品mv| 人人精品视频| 欧美性bbwbbwbbwhd| 国产亚洲精品美女久久久久久久久久| 玛丽玛丽电影原版免费观看1977| 蜜桃一区二区三区| 日本精品一区二区| 日韩大片在线播放| 国产又大又长又粗又黄| 自由日本语亚洲人高潮| 日韩久久久久久久久久久久| 黄页网站一区| www.中文字幕在线| 肉色丝袜一区二区| 欧美激情国内自拍| 高清在线成人网| 中文字幕在线免费看线人| 久久久高清一区二区三区| 一区二区三区伦理片| 国产精品色呦呦| 国产天堂av在线| 亚洲第一久久影院| 人人爽人人爽人人片av| 欧美日韩一区国产| av网站在线观看免费| 欧美精品一区二区三区一线天视频| 日本精品一区二区在线观看| 精品无码久久久久久国产| 91精品专区| 欧美另类xxx| 亚洲精品国产精品国产| 成人免费网视频| 激情亚洲另类图片区小说区| 欧洲视频一区二区三区| 欧美va天堂在线| 黑人糟蹋人妻hd中文字幕| 久久99久久精品| 亚洲天堂资源在线| 国产精品三级视频| 中文字幕第28页| 欧美日韩国产综合视频在线观看 | 超薄肉色丝袜脚交一区二区| 亚洲综合社区网| 欧美激情在线精品一区二区三区| 欧美少妇一区二区三区| 久久久人人人| 性高潮久久久久久| 日本一区二区三区免费乱视频| 99精品久久久久| 91国产丝袜在线播放| 亚洲精品一区二区三区区别| 国产亚洲精品久久久优势| av文字幕在线观看| 国产成人中文字幕| swag国产精品一区二区| 亚洲欧美日韩不卡一区二区三区| 亚洲黄色免费| 三级黄色片播放| 国产视频一区在线播放| 日本午夜精品理论片a级app发布| 欧美日本一区二区在线观看| 无码精品视频一区二区三区| 久久国产精品偷| 色天使综合视频| 精品一区二区三区视频日产| 欧美国产综合| 国产福利在线免费| 久久精品亚洲一区二区三区浴池| 五月天婷婷丁香| 欧美一区二视频| 成年人视频在线免费观看| 51色欧美片视频在线观看| 成人免费在线电影网| 麻豆md0077饥渴少妇| 日本不卡的三区四区五区| 亚洲av无码国产精品久久| 亚洲一区二区三区小说| a级片免费视频| 深夜成人在线观看| 成人啊v在线| 日韩精品不卡| 久久精品人人做人人爽电影蜜月| 中文视频在线观看| 亚洲国产精品视频| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 精品av综合导航| 秋霞在线视频| 不卡一卡2卡3卡4卡精品在| 亚洲一级毛片| 亚洲女人在线观看| 亚洲三级小视频| 91午夜交换视频| 久久精视频免费在线久久完整在线看| 久久天天久久| 伊人久久婷婷色综合98网| 久久激情五月激情| 五月天免费网站| 91麻豆精品国产91久久久久久 | 亚洲高清免费视频| 国精产品一品二品国精品69xx | 日本视频免费在线| 亚洲精品国产品国语在线| 国产直播在线| 鲁片一区二区三区| 老司机免费视频久久| 精品国产av无码| 欧美三片在线视频观看| av网站在线免费观看| 国产欧美日韩亚洲精品| 外国成人免费视频| 国产精品熟妇一区二区三区四区| 亚洲五码中文字幕| 亚州av在线播放| 国产精品福利观看| 欧美肥老太太性生活| 欧美色图校园春色| 亚洲福利一区二区三区| 日韩av高清在线| 国产精品爽爽爽| 国内揄拍国内精品久久| 制服丝袜第二页| 欧美日韩国产综合草草| av小次郎在线| 免费看污久久久| 免费观看久久久4p| 国产女片a归国片aa| 日韩成人在线观看| 久久亚洲国产精品尤物| 国产免费裸体视频| 国产欧美日韩在线| 国产女人爽到高潮a毛片| 国产69精品久久久| 欧美日韩一二三四| 久久久久久久穴| 在线观看亚洲精品| 亚洲性图自拍| 日本一区视频在线| 国产自产v一区二区三区c| 欧美三级韩国三级日本三斤在线观看 | 亚洲欧洲色图| 三级黄色片免费看| 欧美性猛xxx| av免费在线观| 欧美精品成人一区二区在线观看 | 国内精品卡一卡二卡三| 日韩欧美一区二区久久婷婷| 在线观看精品| 白白操在线视频| 中文字幕第一区综合| 黄色小视频免费在线观看| 国产精品免费久久久久影院| 99精品视频免费观看视频|