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

国产伦精品一区二区三区视频我| 黄页网站在线看| 欧洲一区av| 麻豆91精品视频| 国语自产精品视频在免费| 人妻少妇精品视频一区二区三区| 激情小说亚洲| 亚洲第一av色| 中文字幕在线观看一区二区三区| 亚洲黄色片视频| 日韩电影免费一区| 欧美精品久久久久久久免费观看 | 成人欧美一区二区三区的电影| 亚洲国产精品精华液ab| 国产精品久久精品国产| 在线观看亚洲黄色| 欧美日韩日本国产亚洲在线 | 91在线免费看片| 欧美一级淫片免费视频黄| 伊人久久大香线蕉综合四虎小说| 日韩av中文字幕在线播放| 久久久精品高清| 午夜无码国产理论在线| 亚洲一卡二卡三卡四卡 | 久久久久国产精品无码免费看| se01亚洲视频| 欧美日韩国产中字| 欧美日韩dvd| 亚洲欧美视频一区二区| 91香蕉视频mp4| 成人欧美一区二区三区视频| 在线播放一级片| 免费日韩视频| 国内精品久久久久久中文字幕 | 91精品人妻一区二区三区四区| 欧美日韩五码| 欧美性猛交xxxx黑人猛交| 男人的天堂avav| av观看在线| 中文字幕一区二区在线观看| 日韩欧美三级电影| 手机亚洲第一页| 97se亚洲国产综合在线| 成人欧美一区二区三区在线观看 | 97视频久久久| 在线观看男女av免费网址| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久免费的精品国产v∧| 国产精品国产三级国产专区53| 国产一区二区三区在线观看| 美女网站色91| 国产日韩欧美一二三区| 中文字幕视频在线播放| 男女男精品网站| 国产欧美精品va在线观看| 婷婷激情五月综合| 三级欧美韩日大片在线看| 欧美最近摘花xxxx摘花| 天天干天天干天天| 天使萌一区二区三区免费观看| 欧洲精品在线视频| 九九精品免费视频| 久久午夜av| 国产精品日韩电影| 91国产精品一区| 精品一区二区三区日韩| 亚洲精品免费在线视频| 成人1区2区3区| aaa欧美日韩| 玛丽玛丽电影原版免费观看1977| 青青免费在线视频| 中文字幕欧美日韩一区| 在线观看精品视频| 人妖欧美1区| 午夜精品久久一牛影视| 免费日韩视频在线观看| 97欧美成人| 欧美一区二区在线免费播放| 少妇伦子伦精品无吗| 欧美日韩一区二区三区四区不卡| 亚洲男人天堂九九视频| 亚洲色图欧美色| 一区二区不卡| 91精品国产高清久久久久久91 | 欧美日韩国产a| 亚洲一区二区偷拍| 国产极品模特精品一二| 亚洲人成77777在线观看网| 国产日韩精品中文字无码| 亚洲国产精品91| 97视频免费看| 一级黄色免费片| 成人av在线播放网址| 欧美日韩在线精品一区二区三区| 米奇777四色精品人人爽| 亚洲午夜精品在线| 91在线视频观看免费| 精品入口麻豆88视频| 日韩电视剧免费观看网站| 国产精品无码无卡无需播放器| 68国产成人综合久久精品| 97精品一区二区视频在线观看| 久久久久精彩视频| 成人性生交大片免费看视频在线| 日本电影一区二区三区| 性欧美ⅴideo另类hd| 色婷婷国产精品| 国模大尺度视频| 精品国产一区二区三区香蕉沈先生| 最近2019中文字幕第三页视频| 青草影院在线观看| 日韩精品成人一区二区三区| 99re在线国产| 中国日本在线视频中文字幕| 懂色av中文一区二区三区天美| www.久久久久久久久久久| 日韩欧美四区| 欧美国产亚洲视频| 国产乱码精品一区二区三区精东 | www.xx日本| 国产日韩专区| 成人三级在线| 免费在线观看黄色网| 色综合久久88色综合天天免费| 亚洲精品鲁一鲁一区二区三区| 日本不卡高清| 国产不卡在线观看| 五月天婷婷社区| 亚洲制服丝袜av| 伊人国产精品视频| 日韩www.| 国产精品一区二区久久久| 天堂av在线7| 天天av天天翘天天综合网| 特黄特黄一级片| 91精品成人| 成人国产在线激情| 91caoporn在线| 在线视频中文字幕一区二区| 狠狠人妻久久久久久综合蜜桃| 国内自拍视频一区二区三区 | 成人高潮片免费视频| 一区精品在线播放| 午夜免费看视频| 欧美日韩中文一区二区| 国产精品大陆在线观看| 国家队第一季免费高清在线观看| 精品国产91乱高清在线观看 | 国产欧美一区二区精品性色超碰 | 国产区一区二| 精品国内产的精品视频在线观看| 亚洲一级黄色大片| 国产精品久久网站| 欧美成人手机在线视频| 亚洲综合婷婷| 波多野结衣一区二区三区在线观看| 最爽无遮挡行房视频在线| 欧美一区二区三区婷婷月色 | 福利二区91精品bt7086| 特级西西人体wwwww| 性色av一区二区怡红| 日韩电影免费观看在| 一二区成人影院电影网| 日韩中文字幕在线视频播放| 国产精选久久久| 亚洲午夜一区二区| 无码人妻精品一区二区三区温州 | jizzzz日本| 国产精品久久久久久麻豆一区软件 | 欧美激情视频在线观看| 亚洲精品18p| 狠狠做深爱婷婷久久综合一区| 熟女俱乐部一区二区| 奇米综合一区二区三区精品视频| 一区二区三区四区欧美日韩| 麻豆国产一区| 97精品久久久| 91社区在线观看| 日韩西西人体444www| 日韩高清精品免费观看| 久久精品免视看| 亚洲精品mv在线观看| 99精品99| 亚洲午夜精品久久久中文影院av| 国产日本亚洲| 欧美做爰性生交视频| 免费av网站在线观看| 亚洲成人网av| 中文字幕一区二区三区四区免费看 | 久久久成人av毛片免费观看| 久久精品在线视频| 天堂中文网在线| 欧美日韩一区二区三区四区五区| 亚洲国产成人精品综合99| 91在线云播放| 女人高潮一级片| 日韩亚洲国产精品| 一区二区在线观| 久久aimee| 国产人妖伪娘一区91| av蜜臀在线| 北条麻妃一区二区三区中文字幕| 二区三区在线视频| 欧美中文字幕亚洲一区二区va在线| 2021亚洲天堂| 国产精品网站导航| 亚洲精品乱码久久久久久不卡| 精品一区二区免费看| 中文字幕无码精品亚洲35| 久久精品一区二区不卡| 欧美精品中文字幕一区二区| 亚洲电影一区| 国产精品自拍视频| 女厕盗摄一区二区三区| 裸体女人亚洲精品一区| 成人资源www网在线最新版| 精品久久久三级丝袜| 中文字幕日韩三级| 色欧美88888久久久久久影院| 免费一级黄色大片| 中文字幕国产一区二区| 国产精品无码毛片| 不卡的电视剧免费网站有什么| 在线播放免费视频| 久久99蜜桃精品| 欧美性猛交xxx乱久交| 精品电影一区| 中国 免费 av| 久久美女视频| 少妇特黄a一区二区三区| 亚洲欧洲免费| 久久波多野结衣| 欧美激情网址| 国产亚洲精品自在久久| 91蜜桃臀久久一区二区| 91九色蝌蚪嫩草| 国产一区精品二区| 成人黄色av播放免费| 日本精品在线一区| 国产91精品网站| 日韩不卡免费高清视频| 欧美中文字幕在线播放| 在线视频cao| 日本高清不卡在线| 免费观看欧美大片| 欧美怡红院视频一区二区三区| 国产高潮在线| 538国产精品视频一区二区| 擼擼色在线看观看免费| 97免费在线视频| 三级在线看中文字幕完整版| 韩国日本不卡在线| 成人影院在线视频| 青青草一区二区| 日韩欧美看国产| 国产精品久久久久久av福利软件| 免费污视频在线一区| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | www.欧美亚洲| 一本色道综合久久欧美日韩精品| 337p粉嫩大胆噜噜噜噜噜91av| 超碰97人人干| 国产女同性恋一区二区| 三级黄色录像视频| 一区二区三区在线观看动漫| 久久久久无码国产精品不卡| 亚洲成人免费看| 狠狠人妻久久久久久| 欧美伊人久久久久久午夜久久久久| 波多野结衣爱爱| 欧美日本在线播放| www.国产视频| 日韩电影在线观看中文字幕| 川上优的av在线一区二区| 久久精品成人欧美大片| 免费在线国产视频| 日本欧美在线视频| 日日夜夜精品| 国产亚洲精品美女久久久m| 国产不卡av一区二区| 综合久久国产| 中日韩男男gay无套| 日本人视频jizz页码69| 国产精品一卡二卡在线观看| 国产熟女高潮一区二区三区| 日本一区免费视频| 麻豆一区产品精品蜜桃的特点| 狠狠综合久久av一区二区小说| 怡红院成永久免费人全部视频| 日韩午夜在线影院| 六十路在线观看| 成人97在线观看视频| 欧美在线极品| 91亚洲人电影| 日韩高清电影免费| 欧美三级午夜理伦三级老人| 亚洲欧美久久久| 久久精品无码一区二区三区毛片| 久久美女高清视频| 欧美成人手机视频| 在线国产亚洲欧美| 人妻视频一区二区三区| 色天天综合狠狠色| 日韩理论视频| 国产精品国产亚洲精品看不卡15| 青青草综合网| 久久国产乱子伦免费精品| 国产精品一区二区91| 免费一级特黄3大片视频| 午夜欧美大尺度福利影院在线看| 一区二区视频网| 日韩成人在线视频观看| 性网站在线观看| 成人写真福利网| 欧美理论电影大全| 免费av观看网址| 国产高清精品在线| 我要看一级黄色录像| 色婷婷综合久久久久中文 | 99亚偷拍自图区亚洲| 国产第一页浮力| 欧美性色aⅴ视频一区日韩精品| 四季av日韩精品一区| 免费成人高清视频| 伊人久久大香| 亚洲国产欧美一区二区三区不卡| 国产精品呻吟| 久久一区二区电影| 亚洲成人激情自拍| 亚洲精品久久久久avwww潮水| 久久五月情影视| 高清在线一区二区| 国产高潮呻吟久久久| 久久精品国产99国产精品| 国产美女免费网站| 日本高清无吗v一区| 日韩黄色影片| 2025国产精品视频| 久久97精品| 99热在线这里只有精品| 99久久久久久99| 国产又黄又爽又色| 日韩成人av在线播放| 午夜伦理福利在线| 久久久久久九九| 久久久夜夜夜| 国产精品免费无码| 欧美日韩一区二区三区高清| 在线观看a视频| 国产日韩欧美在线观看| 天天综合亚洲| 少妇性l交大片7724com| 一区二区三区资源| 欧美特级特黄aaaaaa在线看| 久久久久久国产| 亚洲视频分类| 好男人www社区| 中文字幕一区二区三区四区| 国产精品久久久久精| 欧美久久精品一级黑人c片| 日韩精品成人| 国产精品久久中文字幕| 91美女在线视频| 成人免费一级片| 久久最新资源网| av成人综合| 久久精品99国产| 国产精品美女久久久久久| 国产精品九九九九| 久久久久久久久久久免费| 日日天天久久| 人人干人人干人人| 玉米视频成人免费看| 熟妇高潮一区二区高潮| 国产精品久久9| 伊人久久大香线| 精品人妻一区二区三区香蕉| 欧美揉bbbbb揉bbbbb| 青春草视频在线观看| 欧美精品一区二区三区在线四季| 蓝色福利精品导航| 久久久久久久中文字幕| 亚洲老头同性xxxxx| av成人在线网站| 99福利在线观看| |精品福利一区二区三区| 人妻精品一区二区三区| 国产欧美va欧美va香蕉在线| 一区精品久久| 国精产品视频一二二区| 亚洲精品一区二区三区影院| 国产黄色精品| 你懂的av在线| 最新日韩av在线| 欧美欧美欧美| 国产v亚洲v天堂无码| 奇米777欧美一区二区| 日韩激情在线播放| 日韩网站在线观看| 西瓜成人精品人成网站|