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

MySQL不會丟失數據的秘密,就藏在它的7種日志里

數據庫 MySQL
我們要知道MySQL的服務器層是不管理事務的,事務是由存儲引擎實現的,而MySQL中支持事務的存儲引擎又屬InnoDB使用的最為廣泛,所以后續文中提到的存儲引擎都以InnoDB為主。

[[374524]]

本文轉載自微信公眾號「程序員內點事」,作者程序員內點事。轉載本文請聯系程序員內點事公眾號。

進入正題前先簡單看看MySQL的邏輯架構,相信我用的著。

MySQL邏輯架構 

MySQL的邏輯架構大致可以分為三層:

  • 第一層:處理客戶端連接、授權認證,安全校驗等。
  • 第二層:服務器server層,負責對SQL解釋、分析、優化、執行操作引擎等。
  • 第三層:存儲引擎,負責MySQL中數據的存儲和提取。

我們要知道MySQL的服務器層是不管理事務的,事務是由存儲引擎實現的,而MySQL中支持事務的存儲引擎又屬InnoDB使用的最為廣泛,所以后續文中提到的存儲引擎都以InnoDB為主。

MySQL數據更新流程 

記住! 記住! 記住! 上邊這張圖,她是MySQL更新數據的基礎流程,其中包括redo log、bin log、undo log三種日志間的大致關系,好了閑話少說直奔主題。

redo log(重做日志)

redo log屬于MySQL存儲引擎InnoDB的事務日志。

MySQL的數據是存放在磁盤中的,每次讀寫數據都需做磁盤IO操作,如果并發場景下性能就會很差。為此MySQL提供了一個優化手段,引入緩存Buffer Pool。這個緩存中包含了磁盤中部分數據頁(page)的映射,以此來緩解數據庫的磁盤壓力。

當從數據庫讀數據時,首先從緩存中讀取,如果緩存中沒有,則從磁盤讀取后放入緩存;當向數據庫寫入數據時,先向緩存寫入,此時緩存中的數據頁數據變更,這個數據頁稱為臟頁,Buffer Pool中修改完數據后會按照設定的更新策略,定期刷到磁盤中,這個過程稱為刷臟頁。

MySQL宕機

如果刷臟頁還未完成,可MySQL由于某些原因宕機重啟,此時Buffer Pool中修改的數據還沒有及時的刷到磁盤中,就會導致數據丟失,無法保證事務的持久性。

為了解決這個問題引入了redo log,redo Log如其名側重于重做!它記錄的是數據庫中每個頁的修改,而不是某一行或某幾行修改成怎樣,可以用來恢復提交后的物理數據頁,且只能恢復到最后一次提交的位置。

redo log用到了WAL(Write-Ahead Logging)技術,這個技術的核心就在于修改記錄前,一定要先寫日志,并保證日志先落盤,才能算事務提交完成。

有了redo log再修改數據時,InnoDB引擎會把更新記錄先寫在redo log中,在修改Buffer Pool中的數據,當提交事務時,調用fsync把redo log刷入磁盤。至于緩存中更新的數據文件何時刷入磁盤,則由后臺線程異步處理。

注意:此時redo log的事務狀態是prepare,還未真正提交成功,要等bin log日志寫入磁盤完成才會變更為commit,事務才算真正提交完成。

這樣一來即使刷臟頁之前MySQL意外宕機也沒關系,只要在重啟時解析redo log中的更改記錄進行重放,重新刷盤即可。

大小固定

redo log采用固定大小,循環寫入的格式,當redo log寫滿之后,重新從頭開始如此循環寫,形成一個環狀。

那為什么要如此設計呢?

因為redo log記錄的是數據頁上的修改,如果Buffer Pool中數據頁已經刷磁盤后,那這些記錄就失效了,新日志會將這些失效的記錄進行覆蓋擦除。

 

上圖中的write pos表示redo log當前記錄的日志序列號LSN(log sequence number),寫入還未刷盤,循環往后遞增;check point表示redo log中的修改記錄已刷入磁盤后的LSN,循環往后遞增,這個LSN之前的數據已經全落盤。

write pos到check point之間的部分是redo log空余的部分(綠色),用來記錄新的日志;check point到write pos之間是redo log已經記錄的數據頁修改數據,此時數據頁還未刷回磁盤的部分。當write pos追上check point時,會先推動check point向前移動,空出位置(刷盤)再記錄新的日志。

注意:redo log日志滿了,在擦除之前,需要確保這些要被擦除記錄對應在內存中的數據頁都已經刷到磁盤中了。擦除舊記錄騰出新空間這段期間,是不能再接收新的更新請求的,此刻MySQL的性能會下降。所以在并發量大的情況下,合理調整redo log的文件大小非常重要。

crash-safe

因為redo log的存在使得Innodb引擎具有了crash-safe的能力,即MySQL宕機重啟,系統會自動去檢查redo log,將修改還未寫入磁盤的數據從redo log恢復到MySQL中。

MySQL啟動時,不管上次是正常關閉還是異常關閉,總是會進行恢復操作。會先檢查數據頁中的LSN,如果這個 LSN 小于 redo log 中的LSN,即write pos位置,說明在redo log上記錄著數據頁上尚未完成的操作,接著就會從最近的一個check point出發,開始同步數據。

簡單理解,比如:redo log的LSN是500,數據頁的LSN是300,表明重啟前有部分數據未完全刷入到磁盤中,那么系統則將redo log中LSN序號300到500的記錄進行重放刷盤。

 

undo log(回滾日志)

undo log也是屬于MySQL存儲引擎InnoDB的事務日志。

undo log屬于邏輯日志,如其名主要起到回滾的作用,它是保證事務原子性的關鍵。記錄的是數據修改前的狀態,在數據修改的流程中,同時會記錄一條與當前操作相反的邏輯日志到undo log中。

我們舉個栗子:假如更新ID=1記錄的name字段,name原始數據為小富,現改name為程序員內點事

事務執行update X set name = 程序員內點事 where id =1語句時,先會在undo log中記錄一條相反邏輯的update X set name = 小富 where id =1記錄,這樣當某些原因導致服務異常事務失敗,就可以借助undo log將數據回滾到事務執行前的狀態,保證事務的完整性。

 

那可能有人會問:同一個事物內的一條記錄被多次修改,那是不是每次都要把數據修改前的狀態都寫入undo log呢?

答案是不會的!

undo log只負責記錄事務開始前要修改數據的原始版本,當我們再次對這行數據進行修改,所產生的修改記錄會寫入到redo log,undo log負責完成回滾,redo log負責完成前滾。

回滾

未提交的事務,即事務未執行commit。但該事務內修改的臟頁中,可能有一部分臟塊已經刷盤。如果此時數據庫實例宕機重啟,就需要用回滾來將先前那部分已經刷盤的臟塊從磁盤上撤銷。

前滾

未完全提交的事務,即事務已經執行commit,但該事務內修改的臟頁中只有一部分數據被刷盤,另外一部分還在buffer pool緩存上,如果此時數據庫實例宕機重啟,就需要用前滾來完成未完全提交的事務。將先前那部分由于宕機在內存上的未來得及刷盤數據,從redo log中恢復出來并刷入磁盤。

數據庫實例恢復時,先做前滾,后做回滾。

如果你仔細看過了上邊的 MySQL數據更新流程圖 就會發現,undo log、redo log、bin log三種日志都是在刷臟頁之前就已經刷到磁盤了的,相互協作最大限度保證了用戶提交的數據不丟失。

bin log(歸檔日志)

bin log是一種數據庫Server層(和什么引擎無關),以二進制形式存儲在磁盤中的邏輯日志。bin log記錄了數據庫所有DDL和DML操作(不包含 SELECT 和 SHOW等命令,因為這類操作對數據本身并沒有修改)。

默認情況下,二進制日志功能是關閉的。可以通過以下命令查看二進制日志是否開啟:

  1. mysql> SHOW VARIABLES LIKE 'log_bin'
  2. +---------------+-------+ 
  3. | Variable_name | Value | 
  4. +---------------+-------+ 
  5. | log_bin       | OFF   | 
  6. +---------------+-------+ 

bin log也被叫做歸檔日志,因為它不會像redo log那樣循環寫擦除之前的記錄,而是會一直記錄日志。一個bin log日志文件默認最大容量1G(也可以通過max_binlog_size參數修改),單個日志超過最大值,則會新創建一個文件繼續寫。

  1. mysql> show binary logs; 
  2. +-----------------+-----------+ 
  3. | Log_name        | File_size | 
  4. +-----------------+-----------+ 
  5. | mysq-bin.000001 |      8687 | 
  6. | mysq-bin.000002 |      1445 | 
  7. | mysq-bin.000003 |      3966 | 
  8. | mysq-bin.000004 |       177 | 
  9. | mysq-bin.000005 |      6405 | 
  10. | mysq-bin.000006 |       177 | 
  11. | mysq-bin.000007 |       154 | 
  12. | mysq-bin.000008 |       154 | 

bin log日志的內容格式其實就是執行SQL命令的反向邏輯,這點和undo log有點類似。一般來說開啟bin log都會給日志文件設置過期時間(expire_logs_days參數,默認永久保存),要不然日志的體量會非常龐大。

  1. mysql> show variables like 'expire_logs_days'
  2. +------------------+-------+ 
  3. | Variable_name    | Value | 
  4. +------------------+-------+ 
  5. | expire_logs_days | 0     | 
  6. +------------------+-------+ 
  7. 1 row in set 
  8.  
  9. mysql> SET GLOBAL expire_logs_days=30; 
  10. Query OK, 0 rows affected 

bin log主要應用于MySQL主從模式(master-slave)中,主從節點間的數據同步;以及基于時間點的數據還原。

主從同步

通過下圖MySQL的主從復制過程,來了解下bin log在主從模式下的應用。

 

  • 用戶在主庫master執行DDL和DML操作,修改記錄順序寫入bin log;
  • 從庫slave的I/O線程連接上Master,并請求讀取指定位置position的日志內容;
  • Master收到從庫slave請求后,將指定位置position之后的日志內容,和主庫bin log文件的名稱以及在日志中的位置推送給從庫;
  • slave的I/O線程接收到數據后,將接收到的日志內容依次寫入到relay log文件最末端,并將讀取到的主庫bin log文件名和位置position記錄到master-info文件中,以便在下一次讀取用;
  • slave的SQL線程檢測到relay log中內容更新后,讀取日志并解析成可執行的SQL語句,這樣就實現了主從庫的數據一致;

基于時間點還原

我們看到bin log也可以做數據的恢復,而redo log也可以,那它們有什么區別?

  • 層次不同:redo log 是InnoDB存儲引擎實現的,bin log 是MySQL的服務器層實現的,但MySQL數據庫中的任何存儲引擎對于數據庫的更改都會產生bin log。
  • 作用不同:redo log 用于碰撞恢復(crash recovery),保證MySQL宕機也不會影響持久性;bin log 用于時間點恢復(point-in-time recovery),保證服務器可以基于時間點恢復數據和主從復制。
  • 內容不同:redo log 是物理日志,內容基于磁盤的頁Page;bin log的內容是二進制,可以根據binlog_format參數自行設置。
  • 寫入方式不同:redo log 采用循環寫的方式記錄;binlog 通過追加的方式記錄,當文件大小大于給定值后,后續的日志會記錄到新的文件上。
  • 刷盤時機不同:bin log在事務提交時寫入;redo log 在事務開始時即開始寫入。

bin log 與 redo log 功能并不沖突而是起到相輔相成的作用,需要二者同時記錄,才能保證當數據庫發生宕機重啟時,數據不會丟失。

relay log(中繼日志)

relay log日志文件具有與bin log日志文件相同的格式,從上邊MySQL主從復制的流程可以看出,relay log起到一個中轉的作用,slave先從主庫master讀取二進制日志數據,寫入從庫本地,后續再異步由SQL線程讀取解析relay log為對應的SQL命令執行。

slow query log

慢查詢日志(slow query log): 用來記錄在 MySQL 中執行時間超過指定時間的查詢語句,在 SQL 優化過程中會經常使用到。通過慢查詢日志,我們可以查找出哪些查詢語句的執行效率低,耗時嚴重。

出于性能方面的考慮,一般只有在排查慢SQL、調試參數時才會開啟,默認情況下,慢查詢日志功能是關閉的。可以通過以下命令查看是否開啟慢查詢日志:

  1. mysql> SHOW VARIABLES LIKE 'slow_query%'
  2. +---------------------+--------------------------------------------------------+ 
  3. | Variable_name       | Value                                                  | 
  4. +---------------------+--------------------------------------------------------+ 
  5. | slow_query_log      | OFF                                                    | 
  6. | slow_query_log_file | /usr/local/mysql/data/iZ2zebfzaequ90bdlz820sZ-slow.log | 
  7. +---------------------+--------------------------------------------------------+ 

通過如下命令開啟慢查詢日志后,我發現 iZ2zebfzaequ90bdlz820sZ-slow.log 日志文件里并沒有內容啊,可能因為我執行的 SQL 都比較簡單沒有超過指定時間。

  1. mysql>  SET GLOBAL slow_query_log=ON
  2. Query OK, 0 rows affected 

上邊提到超過 指定時間 的查詢語句才算是慢查詢,那么這個時間閾值又是多少嘞?我們通過 long_query_time 參數來查看一下,發現默認是 10 秒。

  1. mysql> SHOW VARIABLES LIKE 'long_query_time'
  2. +-----------------+-----------+ 
  3. | Variable_name   | Value     | 
  4. +-----------------+-----------+ 
  5. | long_query_time | 10.000000 | 
  6. +-----------------+-----------+ 

這里我們將 long_query_time 參數改小為 0.001秒再次執行查詢SQL,看看慢查詢日志里是否有變化。

  1. mysql> SET GLOBAL long_query_time=0.001; 
  2. Query OK, 0 rows affected 

果然再執行 SQL 的時,執行時間大于 0.001秒,發現慢查詢日志開始記錄了。

慢查詢日志 

general query log

一般查詢日志(general query log):用來記錄用戶的所有操作,包括客戶端何時連接了服務器、客戶端發送的所有SQL以及其他事件,比如 MySQL 服務啟動和關閉等等。MySQL服務器會按照它接收到語句的先后順序寫入日志文件。

由于一般查詢日志記錄的內容過于詳細,開啟后 Log 文件的體量會非常龐大,所以出于對性能的考慮,默認情況下,該日志功能是關閉的,通常會在排查故障需獲得詳細日志的時候才會臨時開啟。

我們可以通過以下命令查看一般查詢日志是否開啟,命令如下:

  1. mysql> show variables like 'general_log'
  2. +---------------+-------+ 
  3. | Variable_name | Value | 
  4. +---------------+-------+ 
  5. | general_log   | OFF   | 
  6. +---------------+-------+ 

下邊開啟一般查詢日志并查看日志存放的位置。

  1. mysql> SET GLOBAL general_log=on
  2. Query OK, 0 rows affected 
  3. mysql> show variables like 'general_log_file'
  4. +------------------+---------------------------------------------------+ 
  5. | Variable_name    | Value                                             | 
  6. +------------------+---------------------------------------------------+ 
  7. | general_log_file | /usr/local/mysql/data/iZ2zebfzaequ90bdlz820sZ.log | 
  8. +------------------+---------------------------------------------------+ 

執行一條查詢 SQL 看看日志內容的變化。

  1. mysql> select * from t_config; 
  2. +---------------------+------------+---------------------+---------------------+ 
  3. | id                  | remark     | create_time         | last_modify_time    | 
  4. +---------------------+------------+---------------------+---------------------+ 
  5. | 1325741604307734530 | 我是廣播表 | 2020-11-09 18:06:44 | 2020-11-09 18:06:44 | 
  6. +---------------------+------------+---------------------+---------------------+ 

我們看到日志內容詳細的記錄了所有執行的命令、SQL、SQL的解析過程、數據庫設置等等。

一般查詢日志 

error log

錯誤日志(error log): 應該是 MySQL 中最好理解的一種日志,主要記錄 MySQL 服務器每次啟動和停止的時間以及診斷和出錯信息。

默認情況下,該日志功能是開啟的,通過如下命令查找錯誤日志文件的存放路徑。

  1. mysql> SHOW VARIABLES LIKE 'log_error'
  2. +---------------+----------------------------------------------------------------+ 
  3. | Variable_name | Value                                                          | 
  4. +---------------+----------------------------------------------------------------+ 
  5. | log_error     | /usr/local/mysql/data/LAPTOP-UHQ6V8KP.err | 
  6. +---------------+----------------------------------------------------------------+ 

注意:錯誤日志中記錄的可并非全是錯誤信息,像 MySQL 如何啟動 InnoDB 的表空間文件、如何初始化自己的存儲引擎,初始化 buffer pool 等等,這些也記錄在錯誤日志文件中。

 

總結 

MySQL作為我們工作中最常接觸的中間件,熟練使用只算是入門,如果要在簡歷寫上一筆精通,還需要深入了解其內部工作原理,而這7種日志也只是深入學習過程中的一個起點,學無止境,兄嘚干就完了!

責任編輯:武曉燕 來源: 程序員內點事
相關推薦

2009-12-09 09:08:44

Windows 7系統彩蛋

2019-08-02 10:25:37

薪資服務器技術

2022-04-19 16:44:19

MySQLbuffer數據庫

2021-07-09 10:29:50

云計算云計算環境云應用

2013-07-19 11:12:28

虛擬化數據丟失

2013-04-19 09:47:30

虛擬化數據

2013-05-13 09:25:58

虛擬化數據丟失

2011-05-18 14:33:20

MySQL

2009-07-25 22:03:28

2021-02-06 11:45:35

加密貨幣競爭穩定幣

2013-01-07 17:11:24

2020-10-12 08:23:56

CPU程序代碼

2016-11-27 19:21:05

2010-10-13 15:33:38

MySQL日志

2010-01-12 09:30:03

Windows 7快捷模式

2022-10-20 07:57:32

高層模塊設計代碼

2020-05-29 11:36:32

協議通信網絡
點贊
收藏

51CTO技術棧公眾號

级毛片内射视频| 日产精品久久久一区二区| 少妇影院在线观看| 国产精品jk白丝蜜臀av小说| 亚洲一区二区三区小说| 欧美人与性禽动交精品| 国产精品视频无码| 国产v日韩v欧美v| 91亚洲精品乱码久久久久久蜜桃| 国产精品pans私拍| 青青草原在线免费观看| 日韩精品丝袜美腿| 欧美美女一区二区在线观看| 日本人体一区二区| www.在线视频.com| 成人午夜视频福利| 国产精品主播视频| 亚洲一区欧美在线| 中文字幕一区二区三三| 日韩经典一区二区三区| 欧美日韩精品区别| 亚洲最大网站| 一区二区三区日韩精品| 日韩国产一区久久| 人妻一区二区三区| 欧美a级理论片| 91精品91久久久久久| 日韩一级片大全| 国产伦精品一区二区三区千人斩| 欧美一区二区网站| 国产又粗又长又大的视频| 超碰在线公开| 一区二区在线观看免费视频播放| 日韩和欧美的一区二区| 亚洲日本中文字幕在线| 国产福利一区二区| 成人综合国产精品| 亚洲天堂男人网| 日韩电影在线观看电影| 欧美一区二区三区……| 国产精品第72页| 欧美黄色aaaa| 91.com在线观看| 国产精品99久久免费黑人人妻| 七七成人影院| 亚洲激情图片一区| 偷拍盗摄高潮叫床对白清晰| www.在线视频.com| 国产欧美日韩中文久久| 免费精品视频一区二区三区| 色窝窝无码一区二区三区| 高清国产一区二区| 操人视频欧美| 亚洲精品97久久中文字幕无码 | 国产精品九色蝌蚪自拍| 午夜欧美性电影| av大片在线播放| 国产日韩欧美精品综合| 亚洲图片小说在线| 欧美性videos| 亚洲精品中文字幕乱码三区| 亚洲AV无码成人精品一区| 久久99精品久久久久久野外| 亚洲少妇最新在线视频| 欧美性受xxxx黑人猛交88| caoporn免费在线| 亚洲自拍欧美精品| 黄色成人在线看| sis001欧美| 欧美在线制服丝袜| 超碰超碰在线观看| 国产美女精品视频免费播放软件 | 午夜视频在线网站| 精品91福利视频| 日韩免费观看高清完整版| 人妻 丝袜美腿 中文字幕| 国产成人一二| 亚洲欧美在线一区二区| 手机看片国产日韩| 综合天堂av久久久久久久| 久久久这里只有精品视频| 亚洲国产成人精品激情在线| 久久精品日韩欧美| 国产日产欧美a一级在线| 国产免费视频一区二区三区| 成人午夜视频福利| 日韩精品一区二区三区色偷偷 | 国产精品理论片在线观看| 男人的天堂成人| 国产在线精彩视频| 欧美日韩免费一区二区三区视频| www.黄色网| 国产精品美女久久久久久不卡| 色悠悠久久久久| 黄色片视频网站| 久久99精品久久久久久动态图| 成人综合av网| 一级毛片视频在线| 一区二区三区精品在线观看| 国产一级不卡毛片| 日韩亚洲精品在线观看| 亚洲情综合五月天| 麻豆一区产品精品蜜桃的特点| 亚洲在线日韩| 91免费观看| 成年人在线观看网站| 亚洲一区二区高清| 五月婷婷六月合| 欧美综合自拍| 毛片精品免费在线观看| 国产一级淫片a视频免费观看| 激情综合色播五月| 日本免费高清一区二区| 日韩激情美女| 欧美日韩电影在线| 美女久久久久久久久久| 欧美精品91| 国产精品亚洲自拍| 九九在线视频| 天天做天天摸天天爽国产一区| 亚洲一二区在线观看| 国产一区二区三区四区五区传媒| 欧美激情久久久久| 一级欧美一级日韩| 久久精品人人爽人人爽| 国产女大学生av| 日韩欧美久久| 精品国产美女在线| 久久午夜鲁丝片| 91在线高清观看| av在线观看地址| 欧美日韩午夜电影网| 日韩在线视频播放| 91视频在线视频| 久久久三级国产网站| 欧美视频在线免费播放| 9l视频自拍九色9l视频成人| 欧美人与性动交a欧美精品| 亚洲天堂视频网| 国产精品久久久久久久蜜臀| 欧美黑人又粗又大又爽免费| 亚洲丝袜啪啪| 欧美一级淫片videoshd| 污视频网站免费观看| 午夜久久福利影院| 亚洲一区二区三区四区五区六区| 精品91视频| 精品产品国产在线不卡| aa视频在线观看| 亚洲精品黄网在线观看| 国产成人在线播放视频| 99re热这里只有精品免费视频| 免费在线观看视频a| 精品无人区一区二区| 久久久这里只有精品视频| 免费观看黄一级视频| 亚洲香肠在线观看| 国产二级一片内射视频播放| 99精品视频免费观看视频| 精品国产一区二区三区久久久久久| brazzers在线观看| 日韩精品视频免费在线观看| 久久精品无码av| 欧美极品xxx| 国产精品久久久久久9999| 亚洲乱码免费伦视频| 国产成人免费电影| 成人教育av| 中文字幕日韩av| 99久久久久久久| 图片区小说区国产精品视频| 泷泽萝拉在线播放| 麻豆传媒一区二区三区| 91传媒免费视频| 欧美黄色网视频| 国产精品欧美激情| www免费视频观看在线| 精品国产乱码久久久久久久| 西西44rtwww国产精品| 国产日韩欧美一区二区三区乱码| 国产欧美激情视频| 在线视频免费在线观看一区二区| 区一区二区三区中文字幕| 9999精品视频| 4k岛国日韩精品**专区| 91大神在线网站| 日韩欧美亚洲国产精品字幕久久久| 日本午夜精品理论片a级app发布| 国产三级一区二区| 久久久久无码精品| 欧美一区=区| 麻豆一区二区三区在线观看| 欧美天堂影院| 成人精品视频久久久久| 国产传媒在线| 日韩视频免费大全中文字幕| 香蕉人妻av久久久久天天| 欧美日本免费一区二区三区| 国产对白videos麻豆高潮| 国产欧美日韩久久| fc2成人免费视频| 久久精品国产亚洲高清剧情介绍 | 日韩成人免费在线| 99国产精品白浆在线观看免费| 九九在线高清精品视频| 91欧美日韩一区| 欧美gv在线观看| 久久久国产91| 国产中文字幕在线| 精品国产sm最大网站免费看| 中文字幕在线播放日韩| 五月开心婷婷久久| 青青草手机在线视频| 国产欧美日韩在线观看| 亚洲av成人无码一二三在线观看| 国产一区中文字幕| 黄色av免费在线播放| 99re国产精品| 国产精品8888| 91综合视频| 日本成人黄色| 伊人成综合网yiren22| 成人在线视频网址| 中文成人在线| 国产精品综合网站| 新片速递亚洲合集欧美合集| 97人洗澡人人免费公开视频碰碰碰| 巨大荫蒂视频欧美另类大| 在线观看亚洲区| 每日更新av在线播放| 亚洲第一福利视频| 性中国xxx极品hd| 欧美一二三在线| 国产精品伊人久久| 欧美精品xxxxbbbb| ,一级淫片a看免费| 欧美日韩国产乱码电影| www.五月婷婷.com| 91成人看片片| www.日韩一区| 欧美亚洲综合久久| www.亚洲激情| 精品视频在线视频| 中文字幕在线2018| 欧美日韩亚洲高清一区二区| 亚洲av无码不卡| 欧美亚洲丝袜传媒另类| 五月激情丁香网| 欧美午夜片在线看| 最近中文字幕在线观看| 精品视频全国免费看| 中文字幕一级片| 欧美日韩国产小视频| 一区二区不卡视频在线观看| 欧美精品高清视频| 性生交大片免费看女人按摩| 精品国产污网站| 天堂网在线播放| 亚洲精品自拍第一页| 人成免费电影一二三区在线观看| 亚洲欧美另类自拍| 草草影院在线观看| 久久久精品免费| 国内小视频在线看| 51精品在线观看| 久久亚洲精品爱爱| 成人黄色影片在线| 中文字幕日韩高清在线| 久久国产精品亚洲va麻豆| 久久91精品| 天天爱天天做天天操| 亚洲精品护士| 韩国日本美国免费毛片| 久久精品国产秦先生| 免费看91视频| 91麻豆高清视频| 熟女少妇a性色生活片毛片| 一区二区三区四区在线| 久久久久久久久久影院| 欧美嫩在线观看| 丰满人妻一区二区三区免费| 亚洲欧美日韩精品久久| 看黄网站在线观看| 91sao在线观看国产| 成人免费黄色| 国产精品日韩欧美一区二区| 九九视频精品全部免费播放| 国产卡一卡二在线| 亚洲欧美视频| 97超碰人人看| 国产午夜一区二区三区| 粉嫩av性色av蜜臀av网站| 同产精品九九九| 国产一区二区小视频| 亚洲大胆人体在线| 日本成人网址| 欧美在线性视频| 亚洲欧美专区| 欧美亚洲国产免费| 欧美日韩四区| 在线观看免费污视频| 97国产精品videossex| 天天操夜夜操av| 一本色道久久综合亚洲91 | 日韩成人黄色av| 大地资源网3页在线观看| 日韩av免费看网站| 开心色怡人综合网站| 一区二区精彩视频| 日产精品久久久一区二区| 亚洲黄页一区| 日韩欧美理论片| 欧美激情一区在线| 日本在线小视频| 日韩午夜激情视频| 麻豆网在线观看| 国产成人精品视频在线| 久久久久97| 欧美在线观看视频免费| 久久精品二区亚洲w码| 国产ts在线播放| 精品国产鲁一鲁一区二区张丽| 99国产在线播放| 怡红院精品视频| 国产高清不卡| 国新精品乱码一区二区三区18| 亚洲九九视频| 天堂av2020| 国产精品成人一区二区三区夜夜夜| 久久精品无码av| 亚洲欧美制服另类日韩| 一本大道色婷婷在线| 国产精选在线观看91| 欧美欧美天天天天操| 国产欧美精品一二三| 国产精品久久久久影院| 一区二区视频在线免费观看| 一本色道久久88综合日韩精品| 国产免费不卡| 女女同性女同一区二区三区91| 99av国产精品欲麻豆| 欧美肉大捧一进一出免费视频| 亚洲制服丝袜av| 亚洲奶汁xxxx哺乳期| 欧美激情喷水视频| 51精品国产| 欧美精品自拍视频| 不卡av免费在线观看| 1级黄色大片儿| 亚洲精品久久久久中文字幕二区| 大菠萝精品导航| 麻豆精品视频| 丝袜亚洲另类欧美综合| 欧美 日韩 国产 成人 在线观看 | 国产一区二区网| www.av在线.com| 亚洲欧美中文字幕在线一区| 亚洲一二三四| 日韩欧美国产二区| 老司机免费视频一区二区三区| www.xx日本| 欧美一区二区三区在线电影| 少妇av在线| 极品尤物一区二区三区| 久久亚洲色图| 人与动物性xxxx| 精品区一区二区| 美女搞黄视频在线观看| 日韩久久久久久久久久久久久| 日本女优在线视频一区二区 | 日韩黄色大片网站| 日韩 国产 一区| 亚洲成人免费视| 国产视频网站在线| 成人精品一区二区三区电影免费| 欧美激情视频一区二区三区免费| 美女搡bbb又爽又猛又黄www| 一本久久精品一区二区| 免费在线观看黄色| 国产欧美亚洲日本| 日韩成人精品在线观看| 波多野结衣家庭教师| 亚洲国产精品成人av| 日韩国产网站| 亚洲中文字幕无码一区二区三区| 91香蕉视频污在线| 中文字幕视频二区| 91精品国产免费久久久久久 | 国产原创popny丨九色| 日本一区二区综合亚洲| 国产黄色大片网站| 日本在线观看天堂男亚洲| 图片小说视频色综合| 中文在线永久免费观看| 欧美女孩性生活视频| 午夜伦理福利在线| 潘金莲一级淫片aaaaa免费看| 久久亚洲捆绑美女| 国产成人精品毛片| 国产精品视频26uuu|