精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美xxxx14xxxxx性爽| 日本精品视频一区二区| 99在线视频播放| 尤物视频在线观看国产| 国产精品免费不| 欧美日韩在线精品一区二区三区激情| 视频一区二区视频| 少妇人妻一区二区| 秋霞电影网一区二区| 另类专区欧美制服同性| 大尺度做爰床戏呻吟舒畅| 91精品影视| 亚洲综合久久久| 日本不卡免费新一二三区| 国产精品亚洲欧美在线播放| 亚洲美女91| 精品国内亚洲在观看18黄| 国产美女视频免费观看下载软件| 成人国产一区二区三区精品麻豆| 亚洲综合激情小说| 日韩av电影免费观看| 亚洲高清视频在线播放| 日本成人在线不卡视频| 久久久欧美一区二区| 日韩一区二区三区四区视频| 欧美大片网址| 欧美一级免费大片| 日本美女高潮视频| аⅴ资源天堂资源库在线| 国产精品国模大尺度视频| 久久久影院一区二区三区| 国产绳艺sm调教室论坛| 日韩中文字幕91| 欧美亚洲一级片| 中文字幕佐山爱一区二区免费| 国产日本欧美在线观看| 激情视频网站在线观看| 激情另类综合| 久99九色视频在线观看| 国产在线观看免费视频软件| 免费观看不卡av| 亚洲国产欧美精品| 精产国品一区二区三区| 人人精品久久| 欧美日韩五月天| 91人人澡人人爽人人精品| 三妻四妾完整版在线观看电视剧 | 91久久久在线| 一本色道久久综合精品婷婷| 日本成人中文字幕| 国产精品久久久久久久久影视| 日日骚av一区二区| 亚洲综合电影一区二区三区| 91成人在线视频| 国产成人亚洲精品自产在线| 亚洲免费播放| 欧美一区二区三区艳史| 视频一区二区三区四区五区| 亚洲深夜av| 日韩中文首页| 欧美调教femdomvk| 免费看a级黄色片| 黄色综合网址| 欧洲在线/亚洲| 免费看污污网站| 国产美女久久| 欧美一区二区三区人| 伊人成人免费视频| 一区二区三区免费在线看| 亚洲成人激情在线| 91玉足脚交白嫩脚丫| 亚洲bt欧美bt精品777| 亚洲精选在线观看| 国产全是老熟女太爽了| 日韩av片子| 久久国产加勒比精品无码| xxxx日本少妇| 一区二区三区四区五区精品视频| 欧美一级片免费在线| 日本免费精品视频| 久久99国内精品| 高清国产在线一区| 天堂中文在线资| 日本一区二区高清| 国产资源第一页| 丝袜诱惑一区二区| 精品污污网站免费看| 手机在线观看日韩av| 欧美三级午夜理伦三级在线观看| 亚洲人成毛片在线播放| 91狠狠综合久久久| 亚洲激情一区| 国产精品日韩欧美大师| jlzzjlzz亚洲女人18| 91丨九色丨蝌蚪富婆spa| 日日夜夜精品网站| 国内小视频在线看| 欧美在线一二三四区| 色婷婷狠狠18禁久久| 亚洲综合福利| 欧美多人爱爱视频网站| 国产黄网在线观看| 国产jizzjizz一区二区| 日本精品视频一区| 在线观看av免费| 色www精品视频在线观看| 在线视频一二区| 全国精品免费看| 欧美成人亚洲成人| 中文字幕第四页| 国产精品91一区二区| 欧美一区二区三区电影在线观看| av香蕉成人| 在线观看免费亚洲| 五月天激情小说| 天天超碰亚洲| 国产精品高潮粉嫩av| 好吊视频一区二区三区| 国产精品久99| 久久精品午夜福利| 国产精品videossex| 日韩中文字在线| 日本中文字幕在线| 成人午夜精品在线| 欧美 国产 精品| 久久亚洲精品人成综合网| 日韩精品中文字幕在线播放| 美女福利视频在线观看| 奇米一区二区三区av| 精品久久中出| 男女视频在线| 欧美一区二区三区啪啪| 国产毛片欧美毛片久久久| 国产视频一区三区| 国产精品一区在线观看| 超鹏97在线| 91麻豆精品国产91久久久久| 色欲狠狠躁天天躁无码中文字幕 | 久久久久久99久久久精品网站| 久久久99精品视频| 日韩护士脚交太爽了| 国产亚洲精品91在线| 西西44rtwww国产精品| 成人激情动漫在线观看| 污污污污污污www网站免费| 在线欧美激情| 欧美成人高清视频| 97国产成人无码精品久久久| 国产精品视频一二三区 | 天堂久久午夜av| 亚洲性猛交xxxxwww| 国产成人精品777777| 久久亚洲一区二区三区明星换脸 | 翔田千里88av中文字幕| 久久99精品视频| 亚洲免费av网| 国产精品一区免费在线| 久久成人综合视频| 国产视频第一页| 亚洲成人av电影| 国产黑丝一区二区| 亚洲一区欧美二区| 欧美在线日韩精品| 亚洲成人一区在线观看| 中文字幕欧美日韩va免费视频| 日本中文字幕在线观看视频| 久久精品亚洲国产奇米99| 女人另类性混交zo| 久久伦理在线| 96精品久久久久中文字幕| 女子免费在线观看视频www| 精品欧美乱码久久久久久| 国产网站在线看| 2014亚洲片线观看视频免费| 白嫩少妇丰满一区二区| 日韩成人免费| 亚洲影院色在线观看免费| 久久av色综合| 亚洲精选中文字幕| 国产又粗又黄又爽| 一区二区三区视频在线看| 亚洲天堂美女视频| 日韩不卡一二三区| 美女在线免费视频| 欧美深夜视频| 国产精品视频99| 人妖欧美1区| 亚洲欧美一区二区三区在线| 中文字幕在线观看精品| 亚洲黄色免费网站| www.av欧美| 国内成人免费视频| 免费 成 人 黄 色| 日韩欧美一区二区三区在线视频 | 亚洲精品综合网| 一本大道av一区二区在线播放| 手机看片日韩av| 岛国av在线一区| 男人搞女人网站| 国产精品成人一区二区网站软件| 免费在线一区二区| 久久爱www.| 热草久综合在线| 性欧美高清come| 亚洲日本成人女熟在线观看| 国产精品久久久久久无人区 | 久久久午夜精品理论片中文字幕| 亚洲成人福利在线| av不卡在线看| 中文字幕超清在线免费观看| 国产成人精品三级高清久久91| 91日韩在线播放| 高清成人在线| 性欧美xxxx| 成年人黄视频在线观看| 亚洲欧美成人在线| 国产91免费在线观看| 欧美三级乱人伦电影| 中文字幕在线字幕中文| 亚洲人成影院在线观看| 国产成人精品无码免费看夜聊软件| 国产一区二区三区在线观看免费| 久久9精品区-无套内射无码| 欧美日韩精品一本二本三本 | 亚洲一区亚洲二区| 久久av影院| 国产精品7m视频| rebdb初裸写真在线观看| 久久最新资源网| 99免在线观看免费视频高清| 日韩h在线观看| 国模无码一区二区三区| 6080亚洲精品一区二区| 姑娘第5集在线观看免费好剧| 精品高清美女精品国产区| 强乱中文字幕av一区乱码| 日韩一区中文字幕| 99久久精品久久亚洲精品| 久久久久久久久免费| 亚洲av成人片色在线观看高潮 | 国产精品永久| 丁香花在线影院观看在线播放 | 欧美国产日韩免费| 国产精品久久麻豆| 日韩专区中文字幕| p色视频免费在线观看| 亚洲毛片在线观看.| 天堂av在线7| 日韩精品免费在线| 亚州精品国产精品乱码不99按摩| 精品国产乱码久久久久久浪潮| 99精品在线看| 日韩一区二区三区精品视频| 国产高清在线观看视频| 91精品国产aⅴ一区二区| 国产精品老熟女视频一区二区| 欧美色视频一区| 91精品视频免费在线观看| 欧美精品在线视频| 国产精品-色哟哟| 欧美一三区三区四区免费在线看| 97国产成人无码精品久久久| 91麻豆精品国产91久久久使用方法 | av大片在线看| www亚洲欧美| 日本性爱视频在线观看| 久久久久免费精品国产| 国产伦理精品| 国产精品av电影| 亚洲精品大片| 97久久精品午夜一区二区| 中文在线综合| 精品免费二区三区三区高中清不卡 | 日韩精品每日更新| xxww在线观看| 国产成人激情av| 中文字幕av观看| 欧美国产日产图区| 极品久久久久久| 五月天一区二区三区| 在线观看 亚洲| 4438x成人网最大色成网站| 午夜精品久久久久久久爽| 亚洲电影免费观看高清| 久久经典视频| 欧美成人久久久| 狠狠躁少妇一区二区三区| 国产成人亚洲综合91精品| 电影91久久久| 欧美一区二区影视| 91精品久久久久久久蜜月| 国产精品久久久久久久乖乖| 久久国产日本精品| 久久久九九九热| 99国内精品久久| 国产美女高潮视频| 午夜精品成人在线| 亚洲性在线观看| 日韩av在线导航| 毛片在线不卡| 91av成人在线| 国产一区二区三区免费在线| 麻豆成人小视频| 欧美第一精品| 黄色高清无遮挡| 国产91高潮流白浆在线麻豆| 日本一卡二卡在线播放| 同产精品九九九| 国产精品久久久久久久久久久久久久久久久久 | 午夜精品一区二区三区国产| 日韩少妇内射免费播放| 蜜桃av一区二区| av网页在线观看| 亚洲精品免费在线播放| 日批视频免费观看| 日韩精品免费在线播放| 青青草原国产在线| 国产精品欧美一区二区三区奶水| 黑人久久a级毛片免费观看| 在线国产精品网| 老司机免费视频久久| 中文字幕99页| 一区二区在线观看av| 亚洲无码精品在线观看| 亚洲午夜女主播在线直播| 九色porny自拍视频在线播放| 91免费观看| 中文视频一区| 欧美特黄aaa| 欧美激情一区二区三区四区| 青青国产在线观看| 亚洲第一男人av| 欧美人与性动交α欧美精品图片| 国产在线观看一区二区三区| 郴州新闻综合频道在线直播| 97在线免费公开视频| 成人黄色网址在线观看| 麻豆changesxxx国产| 欧美一区二区视频免费观看| 日本天堂在线观看| 国产女同一区二区| re久久精品视频| 成年人网站大全| 久久免费看少妇高潮| 五月天激情国产综合婷婷婷| 亚洲国产精品热久久| www.超碰在线| 九九九九九精品| 丝袜美腿亚洲综合| 手机看片福利视频| 91高清视频免费看| 成年人视频网站在线| 国产精品一区久久| 国产精品成人a在线观看| 欧美国产日韩另类| 亚洲欧洲制服丝袜| 国产福利第一视频| 欧美日韩国产999| 国产美女撒尿一区二区| 国产视频九色蝌蚪| 久久色成人在线| 天天干,天天干| 日韩有码片在线观看| 四虎影视精品永久在线观看| 国产奶头好大揉着好爽视频| 国产精品一区二区三区乱码 | 欧美日韩国产色视频| 天堂中文在线视频| 国产精品久久久久秋霞鲁丝| 99久久99久久精品国产片桃花| 永久看看免费大片| 午夜天堂影视香蕉久久| 免费a在线观看| 国产精选久久久久久| 一区二区影院| 污污污www精品国产网站| 日本韩国一区二区| 久久黄色美女电影| 国产精品日韩高清| 日韩专区一卡二卡| 亚洲欧美精品aaaaaa片| 亚洲国语精品自产拍在线观看| 欧美成a人片在线观看久| 一级黄色免费在线观看| 成人小视频免费观看| 波多野结衣 久久| 久久精品美女视频网站| 国产精品玖玖玖在线资源| 91视频免费版污| 亚洲午夜在线电影| 国产黄色片在线观看| 91福利视频导航| 老鸭窝毛片一区二区三区| 午夜爱爱毛片xxxx视频免费看| 日韩av网址在线观看| 色狠狠一区二区三区| 北条麻妃在线视频观看| 亚洲视频资源在线| 经典三级在线| 91成人免费观看|