日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

超详细图解!【MySQL进阶篇】MySQL架构原理

發(fā)布時間:2023/12/4 数据库 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超详细图解!【MySQL进阶篇】MySQL架构原理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MySQL體系架構

MySQL Server架構自頂向下大致可以分網(wǎng)絡連接層服務層存儲引擎層系統(tǒng)文件層

一、網(wǎng)絡連接層

客戶端連接器(Client Connectors):提供與MySQL服務器建立的支持。目前幾乎支持所有主流
的服務端編程技術,例如常見的 Java、C、Python、.NET等,它們通過各自API技術與MySQL建立
連接。

二、服務層(MySQL Server)

服務層是MySQL Server的核心,主要包含系統(tǒng)管理和控制工具連接池SQL接口解析器查詢優(yōu)
****化器
緩存六個部分。

  • **連接池(Connection Pool):**負責存儲和管理客戶端與數(shù)據(jù)庫的連接,一個線程負責管理一個
    連接。

  • **系統(tǒng)管理和控制工具(Management Services & Utilities):**例如備份恢復、安全管理、集群
    管理等

  • **SQL接口(SQL Interface):**用于接受客戶端發(fā)送的各種SQL命令,并且返回用戶需要查詢的結
    果。比如DML、DDL、存儲過程、視圖、觸發(fā)器等。

  • **解析器(Parser):**負責將請求的SQL解析生成一個"解析樹"。然后根據(jù)一些MySQL規(guī)則進一步
    檢查解析樹是否合法。

  • **查詢優(yōu)化器(Optimizer):**當“解析樹”通過解析器語法檢查后,將交由優(yōu)化器將其轉化成執(zhí)行計
    劃,然后與存儲引擎交互。

select uid,name from user where gender=1;
選取–》投影–》聯(lián)接 策略
1)select先根據(jù)where語句進行選取,并不是查詢出全部數(shù)據(jù)再過濾
2)select查詢根據(jù)uid和name進行屬性投影,并不是取出所有字段
3)將前面選取和投影聯(lián)接起來最終生成查詢結果

緩存(Cache&Buffer): 緩存機制是由一系列小緩存組成的。比如表緩存,記錄緩存,權限緩
存,引擎緩存等。如果查詢緩存有命中的查詢結果,查詢語句就可以直接去查詢緩存中取數(shù)據(jù)。

三、存儲引擎層(Pluggable Storage Engines)

存儲引擎負責MySQL中數(shù)據(jù)的存儲與提取,與底層系統(tǒng)文件進行交互。MySQL存儲引擎是插件式的,
服務器中的查詢執(zhí)行引擎通過接口與存儲引擎進行通信,接口屏蔽了不同存儲引擎之間的差異 。現(xiàn)在有
很多種存儲引擎,各有各的特點,最常見的是MyISAM和InnoDB。

四、系統(tǒng)文件層(File System)

該層負責將數(shù)據(jù)庫的數(shù)據(jù)和日志存儲在文件系統(tǒng)之上,并完成與存儲引擎的交互,是文件的物理存儲
層。主要包含日志文件,數(shù)據(jù)文件,配置文件,pid 文件,socket 文件等。

  • 日志文件

  • 錯誤日志(Error log)

? 默認開啟,show variables like ‘%log_error%’

  • 通用查詢日志(General query log)
    記錄一般查詢語句,show variables like ‘%general%’;
  • 二進制日志(binary log)

記錄了對MySQL數(shù)據(jù)庫執(zhí)行的更改操作,并且記錄了語句的發(fā)生時間、執(zhí)行時長;但是它不
記錄select、show等不修改數(shù)據(jù)庫的SQL。主要用于數(shù)據(jù)庫恢復和主從復制。

show variables like ‘%log_bin%’; //是否開啟
show variables like ‘%binlog%’; //參數(shù)查看
show binary logs;//查看日志文件

  • 慢查詢日志(Slow query log)
    記錄所有執(zhí)行時間超時的查詢SQL,默認是10秒。
    show variables like ‘%slow_query%’; //是否開啟
    show variables like ‘%long_query_time%’; //時長

  • 配置文件
    用于存放MySQL所有的配置信息文件,比如my.cnf、my.ini等。

  • 數(shù)據(jù)文件

  • db.opt 文件:記錄這個庫的默認使用的字符集和校驗規(guī)則。

  • frm 文件:存儲與表相關的元數(shù)據(jù)(meta)信息,包括表結構的定義信息等,每一張表都會
    有一個frm 文件。

  • MYD 文件:MyISAM 存儲引擎專用,存放 MyISAM 表的數(shù)據(jù)(data),每一張表都會有一個
    .MYD 文件。

  • MYI 文件:MyISAM 存儲引擎專用,存放 MyISAM 表的索引相關信息,每一張 MyISAM 表對
    應一個 .MYI 文件。

  • ibd文件和 IBDATA 文件:存放 InnoDB 的數(shù)據(jù)文件(包括索引)。InnoDB 存儲引擎有兩種
    表空間方式:獨享表空間和共享表空間。獨享表空間使用 .ibd 文件來存放數(shù)據(jù),且每一張
    InnoDB 表對應一個 .ibd 文件。共享表空間使用 .ibdata 文件,所有表共同使用一個(或多
    個,自行配置).ibdata 文件。

  • ibdata1 文件:系統(tǒng)表空間數(shù)據(jù)文件,存儲表元數(shù)據(jù)、Undo日志等 。

  • ib_logfile0、ib_logfile1 文件:Redo log 日志文件。

  • pid 文件
    pid 文件是 mysqld 應用程序在 Unix/Linux 環(huán)境下的一個進程文件,和許多其他 Unix/Linux 服務
    端程序一樣,它存放著自己的進程 id。

  • socket 文件
    socket 文件也是在 Unix/Linux 環(huán)境下才有的,用戶在 Unix/Linux 環(huán)境下客戶端連接可以不通過
    TCP/IP 網(wǎng)絡而直接使用 Unix Socket 來連接 MySQL。

MySQL運行機制

①建立連接(Connectors&Connection Pool),通過客戶端/服務器通信協(xié)議與MySQL建立連
接。MySQL 客戶端與服務端的通信方式是 “ 半雙工 ”。對于每一個 MySQL 的連接,時刻都有一個
線程狀態(tài)來標識這個連接正在做什么。
通訊機制:

  • 全雙工:能同時發(fā)送和接收數(shù)據(jù),例如平時打電話。

  • 半雙工:指的某一時刻,要么發(fā)送數(shù)據(jù),要么接收數(shù)據(jù),不能同時。例如早期對講機

  • 單工:只能發(fā)送數(shù)據(jù)或只能接收數(shù)據(jù)。例如單行道

線程狀態(tài):
show processlist; //查看用戶正在運行的線程信息,root用戶能查看所有線程,其他用戶只能看自
己的

  • id:線程ID,可以使用kill xx;

  • user:啟動這個線程的用戶

  • Host:發(fā)送請求的客戶端的IP和端口號

  • db:當前命令在哪個庫執(zhí)行

  • Command:該線程正在執(zhí)行的操作命令

  • Create DB:正在創(chuàng)建庫操作

  • Drop DB:正在刪除庫操作

  • Execute:正在執(zhí)行一個PreparedStatement

  • Close Stmt:正在關閉一個PreparedStatement

  • Query:正在執(zhí)行一個語句

  • Sleep:正在等待客戶端發(fā)送語句

  • Quit:正在退出

  • Shutdown:正在關閉服務器

  • Time:表示該線程處于當前狀態(tài)的時間,單位是秒

  • State:線程狀態(tài)

  • Updating:正在搜索匹配記錄,進行修改

  • Sleeping:正在等待客戶端發(fā)送新請求

  • Starting:正在執(zhí)行請求處理

  • Checking table:正在檢查數(shù)據(jù)表

  • Closing table : 正在將表中數(shù)據(jù)刷新到磁盤中

  • Locked:被其他查詢鎖住了記錄

  • Sending Data:正在處理Select查詢,同時將結果發(fā)送給客戶端

  • Info:一般記錄線程執(zhí)行的語句,默認顯示前100個字符。想查看完整的使用show full
    processlist;

②查詢緩存(Cache&Buffer),這是MySQL的一個可優(yōu)化查詢的地方,如果開啟了查詢緩存且在
查詢緩存過程中查詢到完全相同的SQL語句,則將查詢結果直接返回給客戶端;如果沒有開啟查詢
緩存或者沒有查詢到完全相同的 SQL 語句則會由解析器進行語法語義解析,并生成“解析樹”。
③解析器(Parser)將客戶端發(fā)送的SQL進行語法解析,生成"解析樹"。預處理器根據(jù)一些MySQL
規(guī)則進一步檢查“解析樹”是否合法,例如這里將檢查數(shù)據(jù)表和數(shù)據(jù)列是否存在,還會解析名字和別
名,看看它們是否有歧義,最后生成新的“解析樹”。
④查詢優(yōu)化器(Optimizer)根據(jù)“解析樹”生成最優(yōu)的執(zhí)行計劃。MySQL使用很多優(yōu)化策略生成最
優(yōu)的執(zhí)行計劃,可以分為兩類:靜態(tài)優(yōu)化(編譯時優(yōu)化)、動態(tài)優(yōu)化(運行時優(yōu)化)。

  • 等價變換策略

  • 5=5 and a>5 改成 a > 5

  • a < b and a=5 改成b>5 and a=5

  • 基于聯(lián)合索引,調整條件位置等

  • 優(yōu)化count、min、max等函數(shù)

  • InnoDB引擎min函數(shù)只需要找索引最左邊

  • InnoDB引擎max函數(shù)只需要找索引最右邊

  • MyISAM引擎count(*),不需要計算,直接返回

  • 提前終止查詢

  • 使用了limit查詢,獲取limit所需的數(shù)據(jù),就不在繼續(xù)遍歷后面數(shù)據(jù)

  • in的優(yōu)化

  • MySQL對in查詢,會先進行排序,再采用二分法查找數(shù)據(jù)。比如where id in (2,1,3),變
    成 in (1,2,3)

⑤查詢執(zhí)行引擎負責執(zhí)行 SQL 語句,此時查詢執(zhí)行引擎會根據(jù) SQL 語句中表的存儲引擎類型,以
及對應的API接口與底層存儲引擎緩存或者物理文件的交互,得到查詢結果并返回給客戶端。若開
啟用查詢緩存,這時會將SQL 語句和結果完整地保存到查詢緩存(Cache&Buffer)中,以后若有
相同的 SQL 語句執(zhí)行則直接返回結果。

  • 如果開啟了查詢緩存,先將查詢結果做緩存操作
  • 返回結果過多,采用增量模式返回

MySQL存儲引擎

存儲引擎在MySQL的體系架構中位于第三層,負責MySQL中的數(shù)據(jù)的存儲和提取,是與文件打交道的
子系統(tǒng),它是根據(jù)MySQL提供的文件訪問層抽象接口定制的一種文件訪問機制,這種機制就叫作存儲引
擎。
使用show engines命令,就可以查看當前數(shù)據(jù)庫支持的引擎信息。

在5.5版本之前默認采用MyISAM存儲引擎,從5.5開始采用InnoDB存儲引擎。

  • InnoDB:支持事務,具有提交,回滾和崩潰恢復能力,事務安全

  • MyISAM:不支持事務和外鍵,訪問速度快

  • Memory:利用內存創(chuàng)建表,訪問速度非常快,因為數(shù)據(jù)在內存,而且默認使用Hash索引,但是
    一旦關閉,數(shù)據(jù)就會丟失

  • Archive:歸檔類型引擎,僅能支持insert和select語句

  • Csv:以CSV文件進行數(shù)據(jù)存儲,由于文件限制,所有列必須強制指定not null,另外CSV引擎也不
    支持索引和分區(qū),適合做數(shù)據(jù)交換的中間表

  • BlackHole: 黑洞,只進不出,進來消失,所有插入數(shù)據(jù)都不會保存

  • Federated:可以訪問遠端MySQL數(shù)據(jù)庫中的表。一個本地表,不保存數(shù)據(jù),訪問遠程表內容

  • MRG_MyISAM:一組MyISAM表的組合,這些MyISAM表必須結構相同,Merge表本身沒有數(shù)據(jù),
    對Merge操作可以對一組MyISAM表進行操作。

InnoDB和MyISAM對比

InnoDB和MyISAM是使用MySQL時最常用的兩種引擎類型,我們重點來看下兩者區(qū)別。

  • 事務和外鍵
    InnoDB支持事務和外鍵,具有安全性和完整性,適合大量insert或update操作
    MyISAM不支持事務和外鍵,它提供高速存儲和檢索,適合大量的select查詢操作

  • 鎖機制
    InnoDB支持行級鎖,鎖定指定記錄。基于索引來加鎖實現(xiàn)。
    MyISAM支持表級鎖,鎖定整張表。

  • 索引結構
    InnoDB使用聚集索引(聚簇索引),索引和記錄在一起存儲,既緩存索引,也緩存記錄。
    MyISAM使用非聚集索引(非聚簇索引),索引和記錄分開。

  • 并發(fā)處理能力
    MyISAM使用表鎖,會導致寫操作并發(fā)率低,讀之間并不阻塞,讀寫阻塞。
    InnoDB讀寫阻塞可以與隔離級別有關,可以采用多版本并發(fā)控制(MVCC)來支持高并發(fā)

  • 存儲文件
    InnoDB表對應兩個文件,一個.frm表結構文件,一個.ibd數(shù)據(jù)文件。InnoDB表最大支持64TB;
    MyISAM表對應三個文件,一個.frm表結構文件,一個MYD表數(shù)據(jù)文件,一個.MYI索引文件。從
    MySQL5.0開始默認限制是256TB。

  • 適用場景

    MyISAM

  • 不需要事務支持(不支持)

  • 并發(fā)相對較低(鎖定機制問題)

  • 數(shù)據(jù)修改相對較少,以讀為主

  • 數(shù)據(jù)一致性要求不高

InnoDB

  • 需要事務支持(具有較好的事務特性)

  • 行級鎖定對高并發(fā)有很好的適應能力

  • 數(shù)據(jù)更新較為頻繁的場景

  • 數(shù)據(jù)一致性要求較高

  • 硬件設備內存較大,可以利用InnoDB較好的緩存能力來提高內存利用率,減少磁盤IO

總結

  • 兩種引擎該如何選擇?

  • 是否需要事務?有,InnoDB

  • 是否存在并發(fā)修改?有,InnoDB

  • 是否追求快速查詢,且數(shù)據(jù)修改少?是,MyISAM

  • 在絕大多數(shù)情況下,推薦使用InnoDB

  • 擴展資料:各個存儲引擎特性對比

InnoDB存儲結構

從MySQL 5.5版本開始默認使用InnoDB作為引擎,它擅長處理事務,具有自動崩潰恢復的特性,在日
常開發(fā)中使用非常廣泛。下面是官方的InnoDB引擎架構圖,主要分為內存結構和磁盤結構兩大部分。

一、InnoDB內存結構

內存結構主要包括Buffer PoolChange BufferAdaptive Hash IndexLog Buffer四大組件。

  • Buffer Pool:緩沖池,簡稱BP。BP以Page頁為單位,默認大小16K,BP的底層采用鏈表數(shù)
    據(jù)結構管理Page。在InnoDB訪問表記錄和索引時會在Page頁中緩存,以后使用可以減少磁
    盤IO操作,提升效率。

  • Page管理機制

Page根據(jù)狀態(tài)可以分為三種類型:

  • free page : 空閑page,未被使用

  • clean page:被使用page,數(shù)據(jù)沒有被修改過

  • dirty page:臟頁,被使用page,數(shù)據(jù)被修改過,頁中數(shù)據(jù)和磁盤的數(shù)據(jù)產(chǎn)生了不
    一致

針對上述三種page類型,InnoDB通過三種鏈表結構來維護和管理

  • free list :表示空閑緩沖區(qū),管理free page

  • flush list:表示需要刷新到磁盤的緩沖區(qū),管理dirty page,內部page按修改時間
    排序。臟頁即存在于flush鏈表,也在LRU鏈表中,但是兩種互不影響,LRU鏈表負
    責管理page的可用性和釋放,而flush鏈表負責管理臟頁的刷盤操作。

  • lru list:表示正在使用的緩沖區(qū),管理clean page和dirty page,緩沖區(qū)以
    midpoint為基點,前面鏈表稱為new列表區(qū),存放經(jīng)常訪問的數(shù)據(jù),占63%;后
    面的鏈表稱為old列表區(qū),存放使用較少數(shù)據(jù),占37%。

  • 改進型LRU算法維護
    普通LRU:末尾淘汰法,新數(shù)據(jù)從鏈表頭部加入,釋放空間時從末尾淘汰
    改性LRU:鏈表分為new和old兩個部分,加入元素時并不是從表頭插入,而是從中間
    midpoint位置插入,如果數(shù)據(jù)很快被訪問,那么page就會向new列表頭部移動,如果
    數(shù)據(jù)沒有被訪問,會逐步向old尾部移動,等待淘汰。
    每當有新的page數(shù)據(jù)讀取到buffer pool時,InnoDb引擎會判斷是否有空閑頁,是否足
    夠,如果有就將free page從free list列表刪除,放入到LRU列表中。沒有空閑頁,就會
    根據(jù)LRU算法淘汰LRU鏈表默認的頁,將內存空間釋放分配給新的頁。

  • Buffer Pool配置參數(shù)
    show variables like ‘%innodb_page_size%’; //查看page頁大小
    show variables like ‘%innodb_old%’; //查看lru list中old列表參數(shù)
    show variables like ‘%innodb_buffer%’; //查看buffer pool參數(shù)
    建議:將innodb_buffer_pool_size設置為總內存大小的60%-80%,
    innodb_buffer_pool_instances可以設置為多個,這樣可以避免緩存爭奪。

  • Change Buffer:寫緩沖區(qū),簡稱CB。在進行DML操作時,如果BP沒有其相應的Page數(shù)據(jù),
    并不會立刻將磁盤頁加載到緩沖池,而是在CB記錄緩沖變更,等未來數(shù)據(jù)被讀取時,再將數(shù)
    據(jù)合并恢復到BP中。
    ChangeBuffer占用BufferPool空間,默認占25%,最大允許占50%,可以根據(jù)讀寫業(yè)務量來
    進行調整。參數(shù)innodb_change_buffer_max_size;
    當更新一條記錄時,該記錄在BufferPool存在,直接在BufferPool修改,一次內存操作。如
    果該記錄在BufferPool不存在(沒有命中),會直接在ChangeBuffer進行一次內存操作,不
    用再去磁盤查詢數(shù)據(jù),避免一次磁盤IO。當下次查詢記錄時,會先進性磁盤讀取,然后再從
    ChangeBuffer中讀取信息合并,最終載入BufferPool中。
    寫緩沖區(qū),僅適用于非唯一普通索引頁,為什么?
    如果在索引設置唯一性,在進行修改時,InnoDB必須要做唯一性校驗,因此必須查詢磁盤,
    做一次IO操作。會直接將記錄查詢到BufferPool中,然后在緩沖池修改,不會在ChangeBuffer操作。

  • Adaptive Hash Index:自適應哈希索引,用于優(yōu)化對BP數(shù)據(jù)的查詢。InnoDB存儲引擎會監(jiān)
    控對表索引的查找,如果觀察到建立哈希索引可以帶來速度的提升,則建立哈希索引,所以
    稱之為自適應。InnoDB存儲引擎會自動根據(jù)訪問的頻率和模式來為某些頁建立哈希索引。

  • Log Buffer:日志緩沖區(qū),用來保存要寫入磁盤上log文件(Redo/Undo)的數(shù)據(jù),日志緩沖
    區(qū)的內容定期刷新到磁盤log文件中。日志緩沖區(qū)滿時會自動將其刷新到磁盤,當遇到BLOB
    或多行更新的大事務操作時,增加日志緩沖區(qū)可以節(jié)省磁盤I/O。
    LogBuffer主要是用于記錄InnoDB引擎日志,在DML操作時會產(chǎn)生Redo和Undo日志。
    LogBuffer空間滿了,會自動寫入磁盤。可以通過將innodb_log_buffer_size參數(shù)調大,減少
    磁盤IO頻率。

innodb_flush_log_at_trx_commit參數(shù)控制日志刷新行為,默認為1

  • 0 : 每隔1秒寫日志文件和刷盤操作(寫日志文件LogBuffer–>OS cache,刷盤OS
    cache–>磁盤文件),最多丟失1秒數(shù)據(jù)

  • 1:事務提交,立刻寫日志文件和刷盤,數(shù)據(jù)不丟失,但是會頻繁IO操作

  • 2:事務提交,立刻寫日志文件,每隔1秒鐘進行刷盤操作

二、InnoDB磁盤結構

InnoDB磁盤主要包含Tablespaces,InnoDB Data Dictionary,Doublewrite Buffer、Redo Log
和Undo Logs。

  • 表空間(Tablespaces):用于存儲表結構和數(shù)據(jù)。表空間又分為系統(tǒng)表空間、獨立表空間、
    通用表空間、臨時表空間、Undo表空間等多種類型;

  • 系統(tǒng)表空間(The System Tablespace)
    包含InnoDB數(shù)據(jù)字典,Doublewrite Buffer,Change Buffer,Undo Logs的存儲區(qū)
    域。系統(tǒng)表空間也默認包含任何用戶在系統(tǒng)表空間創(chuàng)建的表數(shù)據(jù)和索引數(shù)據(jù)。系統(tǒng)表空
    間是一個共享的表空間因為它是被多個表共享的。該空間的數(shù)據(jù)文件通過參數(shù)
    innodb_data_file_path控制,默認值是ibdata1:12M:autoextend(文件名為ibdata1、
    12MB、自動擴展)。

  • 獨立表空間(File-Per-Table Tablespaces)
    默認開啟,獨立表空間是一個單表表空間,該表創(chuàng)建于自己的數(shù)據(jù)文件中,而非創(chuàng)建于
    系統(tǒng)表空間中。當innodb_file_per_table選項開啟時,表將被創(chuàng)建于表空間中。否則,
    innodb將被創(chuàng)建于系統(tǒng)表空間中。每個表文件表空間由一個.ibd數(shù)據(jù)文件代表,該文件
    默認被創(chuàng)建于數(shù)據(jù)庫目錄中。表空間的表文件支持動態(tài)(dynamic)和壓縮(commpressed)行格式。

  • 通用表空間(General Tablespaces)

通用表空間為通過create tablespace語法創(chuàng)建的共享表空間。通用表空間可以創(chuàng)建于mysql數(shù)據(jù)目錄外的其他表空間,其可以容納多張表,且其支持所有的行格式。

SQL`CREATE TABLESPACE ts1 ADD DATAFILE ts1.ibd Engine=InnoDB; //創(chuàng)建表空間ts1 CREATE TABLE t1 (c1 INT PRIMARY KEY) TABLESPACE ts1; //將表添加到ts1表空間`
  • 撤銷表空間(Undo Tablespaces)
    撤銷表空間由一個或多個包含Undo日志文件組成。在MySQL 5.7版本之前Undo占用的
    是System Tablespace共享區(qū),從5.7開始將Undo從System Tablespace分離了出來。
    InnoDB使用的undo表空間由innodb_undo_tablespaces配置選項控制,默認為0。參
    數(shù)值為0表示使用系統(tǒng)表空間ibdata1;大于0表示使用undo表空間undo_001、
    undo_002等。

  • 臨時表空間(Temporary Tablespaces)
    分為session temporary tablespaces 和global temporary tablespace兩種。session
    temporary tablespaces 存儲的是用戶創(chuàng)建的臨時表和磁盤內部的臨時表。global
    temporary tablespace儲存用戶臨時表的回滾段(rollback segments )。mysql服務
    器正常關閉或異常終止時,臨時表空間將被移除,每次啟動時會被重新創(chuàng)建。

  • 數(shù)據(jù)字典(InnoDB Data Dictionary)
    InnoDB數(shù)據(jù)字典由內部系統(tǒng)表組成,這些表包含用于查找表、索引和表字段等對象的元數(shù)
    據(jù)。元數(shù)據(jù)物理上位于InnoDB系統(tǒng)表空間中。由于歷史原因,數(shù)據(jù)字典元數(shù)據(jù)在一定程度上
    與InnoDB表元數(shù)據(jù)文件(.frm文件)中存儲的信息重疊。

  • 雙寫緩沖區(qū)(Doublewrite Buffer)
    位于系統(tǒng)表空間,是一個存儲區(qū)域。在BufferPage的page頁刷新到磁盤真正的位置前,會先
    將數(shù)據(jù)存在Doublewrite 緩沖區(qū)。如果在page頁寫入過程中出現(xiàn)操作系統(tǒng)、存儲子系統(tǒng)或
    mysqld進程崩潰,InnoDB可以在崩潰恢復期間從Doublewrite 緩沖區(qū)中找到頁面的一個好
    備份。在大多數(shù)情況下,默認情況下啟用雙寫緩沖區(qū),要禁用Doublewrite 緩沖區(qū),可以將
    innodb_doublewrite設置為0。使用Doublewrite 緩沖區(qū)時建議將innodb_flush_method設
    置為O_DIRECT。

MySQL的innodb_flush_method這個參數(shù)控制著innodb數(shù)據(jù)文件及redo log的打開、
刷寫模式。有三個值:fdatasync(默認),O_DSYNC,O_DIRECT。設置O_DIRECT表示
數(shù)據(jù)文件寫入操作會通知操作系統(tǒng)不要緩存數(shù)據(jù),也不要用預讀,直接從Innodb
Buffer寫到磁盤文件。
默認的fdatasync意思是先寫入操作系統(tǒng)緩存,然后再調用fsync()函數(shù)去異步刷數(shù)據(jù)文
件與redo log的緩存信息。

  • 重做日志(Redo Log)
    重做日志是一種基于磁盤的數(shù)據(jù)結構,用于在崩潰恢復期間更正不完整事務寫入的數(shù)據(jù)。
    MySQL以循環(huán)方式寫入重做日志文件,記錄InnoDB中所有對Buffer Pool修改的日志。當出
    現(xiàn)實例故障(像斷電),導致數(shù)據(jù)未能更新到數(shù)據(jù)文件,則數(shù)據(jù)庫重啟時須redo,重新把數(shù)
    據(jù)更新到數(shù)據(jù)文件。讀寫事務在執(zhí)行的過程中,都會不斷的產(chǎn)生redo log。默認情況下,重
    做日志在磁盤上由兩個名為ib_logfile0和ib_logfile1的文件物理表示。
  • 撤銷日志(Undo Logs)
    撤消日志是在事務開始之前保存的被修改數(shù)據(jù)的備份,用于例外情況時回滾事務。撤消日志
    屬于邏輯日志,根據(jù)每行記錄進行記錄。撤消日志存在于系統(tǒng)表空間、撤消表空間和臨時表
    空間中。

三、新版本結構演變

  • MySQL 5.7 版本

  • 將 Undo日志表空間從共享表空間 ibdata 文件中分離出來,可以在安裝 MySQL 時由用
    戶自行指定文件大小和數(shù)量。

  • 增加了 temporary 臨時表空間,里面存儲著臨時表或臨時查詢結果集的數(shù)據(jù)。

  • Buffer Pool 大小可以動態(tài)修改,無需重啟數(shù)據(jù)庫實例。

  • MySQL 8.0 版本

  • 將InnoDB表的數(shù)據(jù)字典和Undo都從共享表空間ibdata中徹底分離出來了,以前需要
    ibdata中數(shù)據(jù)字典與獨立表空間ibd文件中數(shù)據(jù)字典一致才行,8.0版本就不需要了。

  • temporary 臨時表空間也可以配置多個物理文件,而且均為 InnoDB 存儲引擎并能創(chuàng)建
    索引,這樣加快了處理的速度。

  • 用戶可以像 Oracle 數(shù)據(jù)庫那樣設置一些表空間,每個表空間對應多個物理文件,每個
    表空間可以給多個表使用,但一個表只能存儲在一個表空間中。

  • 將Doublewrite Buffer從共享表空間ibdata中也分離出來了。

InnoDB線程模型

  • IO Thread
    在InnoDB中使用了大量的AIO(Async IO)來做讀寫處理,這樣可以極大提高數(shù)據(jù)庫的性能。在
    InnoDB1.0版本之前共有4個IO Thread,分別是write,read,insert buffer和log thread,后來
    版本將read thread和write thread分別增大到了4個,一共有10個了。

  • read thread : 負責讀取操作,將數(shù)據(jù)從磁盤加載到緩存page頁。4個

  • write thread:負責寫操作,將緩存臟頁刷新到磁盤。4個

  • log thread:負責將日志緩沖區(qū)內容刷新到磁盤。1個

  • insert buffer thread :負責將寫緩沖內容刷新到磁盤。1個

  • Purge Thread
    事務提交之后,其使用的undo日志將不再需要,因此需要Purge Thread回收已經(jīng)分配的undo
    頁。
    show variables like '%innodb_purge_threads%';

  • Page Cleaner Thread
    作用是將臟數(shù)據(jù)刷新到磁盤,臟數(shù)據(jù)刷盤后相應的redo log也就可以覆蓋,即可以同步數(shù)據(jù),又能
    達到redo log循環(huán)使用的目的。會調用write thread線程處理。
    show variables like '%innodb_page_cleaners%';

  • Master Thread
    Master thread是InnoDB的主線程,負責調度其他各線程,優(yōu)先級最高。作用是將緩沖池中的數(shù)
    據(jù)異步刷新到磁盤 ,保證數(shù)據(jù)的一致性。包含:臟頁的刷新(page cleaner thread)、undo頁
    回收(purge thread)、redo日志刷新(log thread)、合并寫緩沖等。內部有兩個主處理,分別
    是每隔1秒和10秒處理。

每1秒的操作:

  • 刷新日志緩沖區(qū),刷到磁盤

  • 合并寫緩沖區(qū)數(shù)據(jù),根據(jù)IO讀寫壓力來決定是否操作

  • 刷新臟頁數(shù)據(jù)到磁盤,根據(jù)臟頁比例達到75%才操作(innodb_max_dirty_pages_pct,
    innodb_io_capacity)

每10秒的操作:

  • 刷新臟頁數(shù)據(jù)到磁盤

  • 合并寫緩沖區(qū)數(shù)據(jù)

  • 刷新日志緩沖區(qū)

  • 刪除無用的undo頁

InnoDB數(shù)據(jù)文件【參考文獻】

一、InnoDB文件存儲結構

InnoDB數(shù)據(jù)文件存儲結構:
分為一個ibd數(shù)據(jù)文件–>Segment(段)–>Extent(區(qū))–>Page(頁)–>Row(行)

  • Tablesapce
    表空間,用于存儲多個ibd數(shù)據(jù)文件,用于存儲表的記錄和索引。一個文件包含多個段。

  • Segment
    段,用于管理多個Extent,分為數(shù)據(jù)段(Leaf node segment)、索引段(Non-leaf node
    segment)、回滾段(Rollback segment)。一個表至少會有兩個segment,一個管理數(shù)
    據(jù),一個管理索引。每多創(chuàng)建一個索引,會多兩個segment。

  • Extent
    區(qū),一個區(qū)固定包含64個連續(xù)的頁,大小為1M。當表空間不足,需要分配新的頁資源,不會
    一頁一頁分,直接分配一個區(qū)。

  • Page
    頁,用于存儲多個Row行記錄,大小為16K。包含很多種頁類型,比如數(shù)據(jù)頁,undo頁,系
    統(tǒng)頁,事務數(shù)據(jù)頁,大的BLOB對象頁。

  • Row
    行,包含了記錄的字段值,事務ID(Trx id)、滾動指針(Roll pointer)、字段指針(Field
    pointers)等信息。
    Page是文件最基本的單位,無論何種類型的page,都是由page header,page trailer和page
    body組成。如下圖所示,

二、InnoDB文件存儲格式

通過 SHOW TABLE STATUS 命令

一般情況下,如果row_format為REDUNDANT、COMPACT,文件格式為Antelope;如果
row_format為DYNAMIC和COMPRESSED,文件格式為Barracuda。
通過 information_schema 查看指定表的文件格式
select * from information_schema.innodb_sys_tables;

三、File文件格式(File-Format)

在早期的InnoDB版本中,文件格式只有一種,隨著InnoDB引擎的發(fā)展,出現(xiàn)了新文件格式,用于
支持新的功能。目前InnoDB只支持兩種文件格式:Antelope 和 Barracuda。

  • Antelope: 先前未命名的,最原始的InnoDB文件格式,它支持兩種行格式:COMPACT和
    REDUNDANT,MySQL 5.6及其以前版本默認格式為Antelope。
  • Barracuda: 新的文件格式。它支持InnoDB的所有行格式,包括新的行格式:COMPRESSED
    和 DYNAMIC。
    通過innodb_file_format 配置參數(shù)可以設置InnoDB文件格式,之前默認值為Antelope,5.7版本
    開始改為Barracuda。

四、Row行格式(Row_format)

表的行格式?jīng)Q定了它的行是如何物理存儲的,這反過來又會影響查詢和DML操作的性能。如果在
單個page頁中容納更多行,查詢和索引查找可以更快地工作,緩沖池中所需的內存更少,寫入更
新時所需的I/O更少。
InnoDB存儲引擎支持四種行格式:REDUNDANT、COMPACT、DYNAMIC和COMPRESSED。

DYNAMIC和COMPRESSED新格式引入的功能有:數(shù)據(jù)壓縮、增強型長列數(shù)據(jù)的頁外存儲和大索引
前綴。
每個表的數(shù)據(jù)分成若干頁來存儲,每個頁中采用B樹結構存儲;
如果某些字段信息過長,無法存儲在B樹節(jié)點中,這時候會被單獨分配空間,此時被稱為溢出頁,
該字段被稱為頁外列。

  • REDUNDANT 行格式
    使用REDUNDANT行格式,表會將變長列值的前768字節(jié)存儲在B樹節(jié)點的索引記錄中,其余
    的存儲在溢出頁上。對于大于等于786字節(jié)的固定長度字段InnoDB會轉換為變長字段,以便
    能夠在頁外存儲。

  • COMPACT 行格式
    與REDUNDANT行格式相比,COMPACT行格式減少了約20%的行存儲空間,但代價是增加了
    某些操作的CPU使用量。如果系統(tǒng)負載是受緩存命中率和磁盤速度限制,那么COMPACT格式
    可能更快。如果系統(tǒng)負載受到CPU速度的限制,那么COMPACT格式可能會慢一些。

  • DYNAMIC 行格式
    使用DYNAMIC行格式,InnoDB會將表中長可變長度的列值完全存儲在頁外,而索引記錄只
    包含指向溢出頁的20字節(jié)指針。大于或等于768字節(jié)的固定長度字段編碼為可變長度字段。
    DYNAMIC行格式支持大索引前綴,最多可以為3072字節(jié),可通過innodb_large_prefix參數(shù)
    控制。【參考文獻】

  • COMPRESSED 行格式
    COMPRESSED行格式提供與DYNAMIC行格式相同的存儲特性和功能,但增加了對表和索引
    數(shù)據(jù)壓縮的支持。

在創(chuàng)建表和索引時,文件格式都被用于每個InnoDB表數(shù)據(jù)文件(其名稱與*.ibd匹配)。修改文件
格式的方法是重新創(chuàng)建表及其索引,最簡單方法是對要修改的每個表使用以下命令:

SQL`ALTER TABLE 表名 ROW_FORMAT=格式類型;

Undo Log

Undo Log介紹
Undo:意為撤銷或取消,以撤銷操作為目的,返回指定某個狀態(tài)的操作。
Undo Log:數(shù)據(jù)庫事務開始之前,會將要修改的記錄存放到 Undo 日志里,當事務回滾時或者數(shù)
據(jù)庫崩潰時,可以利用 Undo 日志,撤銷未提交事務對數(shù)據(jù)庫產(chǎn)生的影響。
Undo Log產(chǎn)生和銷毀:Undo Log在事務開始前產(chǎn)生;事務在提交時,并不會立刻刪除undo
log,innodb會將該事務對應的undo log放入到刪除列表中,后面會通過后臺線程purge thread進
行回收處理。Undo Log屬于邏輯日志,記錄一個變化過程。例如執(zhí)行一個delete,undolog會記
錄一個insert;執(zhí)行一個update,undolog會記錄一個相反的update。
Undo Log存儲:undo log采用段的方式管理和記錄。在innodb數(shù)據(jù)文件中包含一種rollback
segment回滾段,內部包含1024個undo log segment。可以通過下面一組參數(shù)來控制Undo log存
儲。
show variables like '%innodb_undo%';

Undo Log作用
實現(xiàn)事務的原子性
Undo Log 是為了實現(xiàn)事務的原子性而出現(xiàn)的產(chǎn)物。事務處理過程中,如果出現(xiàn)了錯誤或者用戶執(zhí)
行了 ROLLBACK 語句,MySQL 可以利用 Undo Log 中的備份將數(shù)據(jù)恢復到事務開始之前的狀態(tài)。
實現(xiàn)多版本并發(fā)控制(MVCC)
Undo Log 在 MySQL InnoDB 存儲引擎中用來實現(xiàn)多版本并發(fā)控制。事務未提交之前,Undo Log
保存了未提交之前的版本數(shù)據(jù),Undo Log 中的數(shù)據(jù)可作為數(shù)據(jù)舊版本快照供其他并發(fā)事務進行快
照讀。

事務A手動開啟事務,執(zhí)行更新操作,首先會把更新命中的數(shù)據(jù)備份到 Undo Buffer 中。
事務B手動開啟事務,執(zhí)行查詢操作,會讀取 Undo 日志數(shù)據(jù)返回,進行快照讀

Redo Log和Binlog

Redo Log日志

Redo Log介紹
Redo:顧名思義就是重做。以恢復操作為目的,在數(shù)據(jù)庫發(fā)生意外時重現(xiàn)操作。
Redo Log:指事務中修改的任何數(shù)據(jù),將最新的數(shù)據(jù)備份存儲的位置(Redo Log),被稱為重做
日志。
Redo Log 的生成和釋放:隨著事務操作的執(zhí)行,就會生成Redo Log,在事務提交時會將產(chǎn)生
Redo Log寫入Log Buffer,并不是隨著事務的提交就立刻寫入磁盤文件。等事務操作的臟頁寫入
到磁盤之后,Redo Log 的使命也就完成了,Redo Log占用的空間就可以重用(被覆蓋寫入)。
Redo Log工作原理
Redo Log 是為了實現(xiàn)事務的持久性而出現(xiàn)的產(chǎn)物。防止在發(fā)生故障的時間點,尚有臟頁未寫入表
的 IBD 文件中,在重啟 MySQL 服務的時候,根據(jù) Redo Log 進行重做,從而達到事務的未入磁盤
數(shù)據(jù)進行持久化這一特性。

Redo Log寫入機制
Redo Log 文件內容是以順序循環(huán)的方式寫入文件,寫滿時則回溯到第一個文件,進行覆蓋寫。

如圖所示:

  • write pos 是當前記錄的位置,一邊寫一邊后移,寫到最后一個文件末尾后就回到 0 號文件開
    頭;
  • checkpoint 是當前要擦除的位置,也是往后推移并且循環(huán)的,擦除記錄前要把記錄更新到數(shù)
    據(jù)文件;

write pos 和 checkpoint 之間還空著的部分,可以用來記錄新的操作。如果 write pos 追上
checkpoint,表示寫滿,這時候不能再執(zhí)行新的更新,得停下來先擦掉一些記錄,把 checkpoint
推進一下。
Redo Log相關配置參數(shù)
每個InnoDB存儲引擎至少有1個重做日志文件組(group),每個文件組至少有2個重做日志文
件,默認為ib_logfile0和ib_logfile1。可以通過下面一組參數(shù)控制Redo Log存儲:

show variables like '%innodb_log%';
Redo Buffer 持久化到 Redo Log 的策略,可通過 Innodb_flush_log_at_trx_commit 設置:

  • 0:每秒提交 Redo buffer ->OS cache -> flush cache to disk,可能丟失一秒內的事務數(shù)
    據(jù)。由后臺Master線程每隔 1秒執(zhí)行一次操作。

  • 1(默認值):每次事務提交執(zhí)行 Redo Buffer -> OS cache -> flush cache to disk,最安
    全,性能最差的方式。

  • 2:每次事務提交執(zhí)行 Redo Buffer -> OS cache,然后由后臺Master線程再每隔1秒執(zhí)行OS
    cache -> flush cache to disk 的操作。
    一般建議選擇取值2,因為 MySQL 掛了數(shù)據(jù)沒有損失,整個服務器掛了才會損失1秒的事務提交數(shù)
    據(jù)

Binlog日志

Binlog記錄模式
Redo Log 是屬于InnoDB引擎所特有的日志,而MySQL Server也有自己的日志,即 Binary
log(二進制日志),簡稱Binlog。Binlog是記錄所有數(shù)據(jù)庫表結構變更以及表數(shù)據(jù)修改的二進制
日志,不會記錄SELECT和SHOW這類操作。Binlog日志是以事件形式記錄,還包含語句所執(zhí)行的
消耗時間。開啟Binlog日志有以下兩個最重要的使用場景。

  • 主從復制:在主庫中開啟Binlog功能,這樣主庫就可以把Binlog傳遞給從庫,從庫拿到
    Binlog后實現(xiàn)數(shù)據(jù)恢復達到主從數(shù)據(jù)一致性。
  • 數(shù)據(jù)恢復:通過mysqlbinlog工具來恢復數(shù)據(jù)。

Binlog文件名默認為“主機名_binlog-序列號”格式,例如oak_binlog-000001,也可以在配置文件
中指定名稱。文件記錄模式有STATEMENT、ROW和MIXED三種,具體含義如下。

  • ROW(row-based replication, RBR):日志中會記錄每一行數(shù)據(jù)被修改的情況,然后在
    slave端對相同的數(shù)據(jù)進行修改。
    優(yōu)點:能清楚記錄每一個行數(shù)據(jù)的修改細節(jié),能完全實現(xiàn)主從數(shù)據(jù)同步和數(shù)據(jù)的恢復。
    缺點:批量操作,會產(chǎn)生大量的日志,尤其是alter table會讓日志暴漲。

  • STATMENT(statement-based replication, SBR):每一條被修改數(shù)據(jù)的SQL都會記錄到
    master的Binlog中,slave在復制的時候SQL進程會解析成和原來master端執(zhí)行過的相同的
    SQL再次執(zhí)行。簡稱SQL語句復制。
    優(yōu)點:日志量小,減少磁盤IO,提升存儲和恢復速度【參考文獻】
    缺點:在某些情況下會導致主從數(shù)據(jù)不一致,比如last_insert_id()、now()等函數(shù)。

  • MIXED(mixed-based replication, MBR):以上兩種模式的混合使用,一般會使用
    STATEMENT模式保存binlog,對于STATEMENT模式無法復制的操作使用ROW模式保存
    binlog,MySQL會根據(jù)執(zhí)行的SQL語句選擇寫入模式。

Binlog文件結構
MySQL的binlog文件中記錄的是對數(shù)據(jù)庫的各種修改操作,用來表示修改操作的數(shù)據(jù)結構是Log
event。不同的修改操作對應的不同的log event。比較常用的log event有:Query event、Row
event、Xid event等。binlog文件的內容就是各種Log event的集合。
Binlog文件中Log event結構如下圖所示:

Binlog寫入機制

  • 根據(jù)記錄模式和操作觸發(fā)event事件生成log event(事件觸發(fā)執(zhí)行機制)

  • 將事務執(zhí)行過程中產(chǎn)生log event寫入緩沖區(qū),每個事務線程都有一個緩沖區(qū)
    Log Event保存在一個binlog_cache_mngr數(shù)據(jù)結構中,在該結構中有兩個緩沖區(qū),一個是
    stmt_cache,用于存放不支持事務的信息;另一個是trx_cache,用于存放支持事務的信息。

  • 事務在提交階段會將產(chǎn)生的log event寫入到外部binlog文件中。
    不同事務以串行方式將log event寫入binlog文件中,所以一個事務包含的log event信息在
    binlog文件中是連續(xù)的,中間不會插入其他事務的log event。

Binlog文件操作

  • Binlog狀態(tài)查看

  • show variables like 'log_bin';

  • 開啟Binlog功能

VHDLmysql> set global log_bin=mysqllogbin; ERROR 1238 (HY000): Variable 'log_bin' is a read only variable

需要修改my.cnf或my.ini配置文件,在[mysqld]下面增加log_bin=mysql_bin_log,重啟
MySQL服務。

INI#log-bin=ON #log-bin-basename=mysqlbinlog binlog-format=ROW log-bin=mysqlbinlog

使用show binlog events命令

SQLshow binary logs; //等價于show master logs; show master status; show binlog events; show binlog events in 'mysqlbinlog.000001';

使用mysqlbinlog 命令

NGINXmysqlbinlog "文件名" mysqlbinlog "文件名" > "test.sql"

使用 binlog 恢復數(shù)據(jù)

CPP//按指定時間恢復 mysqlbinlog --start-datetime="2020-04-25 18:00:00" --stopdatetime="2020-04-26 00:00:00" mysqlbinlog.000002 | mysql -uroot -p1234 //按事件位置號恢復 mysqlbinlog --start-position=154 --stop-position=957 mysqlbinlog.000002 | mysql -uroot -p1234

mysqldump:定期全部備份數(shù)據(jù)庫數(shù)據(jù)。mysqlbinlog可以做增量備份和恢復操作。
刪除Binlog文件

SQLpurge binary logs to 'mysqlbinlog.000001'; //刪除指定文件 purge binary logs before '2020-04-28 00:00:00'; //刪除指定時間之前的文件 reset master; //清除所有文件

可以通過設置expire_logs_days參數(shù)來啟動自動清理功能。默認值為0表示沒啟用。設置為1表示超
出1天binlog文件會自動刪除掉。
Redo Log和Binlog區(qū)別

  • Redo Log是屬于InnoDB引擎功能,Binlog是屬于MySQL Server自帶功能,并且是以二進制
    文件記錄。

  • Redo Log屬于物理日志,記錄該數(shù)據(jù)頁更新狀態(tài)內容,Binlog是邏輯日志,記錄更新過程。

  • Redo Log日志是循環(huán)寫,日志空間大小是固定,Binlog是追加寫入,寫完一個寫下一個,不
    會覆蓋使用。

  • Redo Log作為服務器異常宕機后事務數(shù)據(jù)自動恢復使用,Binlog可以作為主從復制和數(shù)據(jù)恢
    復使用。Binlog沒有自動crash-safe能力。

最后,祝大家早日學有所成,拿到滿意offer

總結

以上是生活随笔為你收集整理的超详细图解!【MySQL进阶篇】MySQL架构原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

高清精品久久 | 天天干夜夜 | 日韩久久电影 | 香蕉在线观看视频 | 丝袜美腿一区 | 91成熟丰满女人少妇 | 欧美成a人片在线观看久 | 五月天久久综合 | 国产精品99精品久久免费 | 成人午夜影视 | 国产高清在线免费视频 | av成人亚洲 | 五月婷婷网站 | 日韩av专区 | 久久久久亚洲精品 | 色吊丝在线永久观看最新版本 | 成人精品一区二区三区电影免费 | 蜜桃av人人夜夜澡人人爽 | 四虎在线视频免费观看 | 久久艹人人| 欧美性色黄大片在线观看 | 欧美日韩性生活 | 国产小视频在线播放 | 人人插人人舔 | 91插插视频 | 日韩一区二区免费在线观看 | 国产精品久久久久婷婷二区次 | 欧美日韩aa | 国产 一区二区三区 在线 | av在线等| 91手机在线看片 | 久久免费看 | 99自拍视频在线观看 | 正在播放国产一区 | 久久99精品国产一区二区三区 | 激情久久久久 | www.色就是色 | 国产一区二区在线免费播放 | 欧美日韩不卡一区二区三区 | 国产精品久久久久影院 | 99精品视频在线观看播放 | 国内精品久久久精品电影院 | 国产精品热视频 | 91高清在线 | 国产在线一区观看 | 日本一区二区高清不卡 | 亚洲综合在线五月天 | 激情欧美一区二区三区免费看 | 欧产日产国产69 | 毛片区| 九九九免费视频 | 日韩av成人在线观看 | 一级黄色片在线免费观看 | 日本精品视频在线观看 | 激情 一区二区 | 国产一二区视频 | 久久久久久久久久久精 | 久久久久久久久久国产精品 | 国产婷婷色 | 国产精品手机在线 | 91九色性视频 | 欧美综合干 | 美女免费视频黄 | 亚洲日本精品 | 天天激情 | 国产精品乱码久久久久久1区2区 | 久久久久久久久福利 | 91中文在线视频 | 97视频在线免费 | 在线亚洲观看 | 可以免费看av | 久久久久久综合网天天 | 亚洲精品国久久99热 | 97久久精品午夜一区二区 | 三级av片| 美女久久一区 | 91chinese在线 | 国产精品尤物 | 精品国产一区二区三区噜噜噜 | 久操免费视频 | 成人黄色小说在线观看 | 免费av观看网站 | 日韩av一区二区在线播放 | 免费观看丰满少妇做爰 | 国产精品久久久久久久久久久久午夜片 | 免费看片成人 | 三级黄色免费 | 99久久超碰中文字幕伊人 | 日韩av成人在线 | 99在线精品视频观看 | 日韩在线电影 | 91看片在线免费观看 | av一级二级| 黄色三级免费片 | 中文字幕网址 | 久久夜夜夜 | 久久深夜福利免费观看 | 久久99久久久久久 | 夜夜躁日日躁 | 在线观看视频你懂得 | 91最新网址 | 国产超碰在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 91丨九色丨国产在线 | ww亚洲ww亚在线观看 | av超碰在线 | 麻豆传媒视频观看 | 欧美日韩一级久久久久久免费看 | 久久99最新地址 | 国产中文在线观看 | 国产精品麻 | 亚洲高清在线精品 | 日韩av电影中文字幕 | 久久婷婷丁香 | 婷婷激情综合 | 午夜精品久久久久久中宇69 | 青青草国产成人99久久 | 2024国产精品视频 | 六月婷操 | 国产一级片免费播放 | 国产一级免费观看 | 狠狠色丁香久久婷婷综合丁香 | 色婷婷啪啪免费在线电影观看 | www.色婷婷.com | 日韩欧美视频在线免费观看 | 午夜视频在线观看一区二区 | 激情综合中文娱乐网 | 2019天天干天天色 | 国产专区在线视频 | 久久天天躁 | 91精品无人成人www | 肉色欧美久久久久久久免费看 | 四虎影视成人 | 在线成人欧美 | 久久精品亚洲综合专区 | 高清av在线免费观看 | 激情欧美日韩一区二区 | 黄色成人在线观看 | 91人人爽久久涩噜噜噜 | 丁香婷婷综合激情 | 久草免费手机视频 | 久久久私人影院 | 九九热免费观看 | 玖玖爱国产在线 | 国产一区在线精品 | 成人动漫一区二区三区 | 麻花豆传媒mv在线观看 | 国产欧美久久久精品影院 | 久久久国产精品麻豆 | 在线亚洲人成电影网站色www | 99亚洲视频 | 久久成人免费电影 | 免费热情视频 | 91系列在线 | 国产中文字幕视频在线观看 | av成人免费观看 | 丁香六月伊人 | 不卡av免费在线观看 | 欧美婷婷综合 | 三级av免费看 | 91亚洲精品久久久蜜桃 | 精品资源在线 | 亚洲精品av中文字幕在线在线 | 在线 成人| 欧美黑人巨大xxxxx | 国产精品久久久久久久久蜜臀 | 天天操天天干天天操天天干 | 国产视频一区二区在线播放 | 亚洲人在线视频 | 国产综合激情 | 草久在线播放 | 午夜国产一区二区 | 韩国一区二区三区视频 | 中文 一区二区 | 天天摸天天操天天爽 | 久久久久这里只有精品 | 婷婷激情综合 | 99色精品视频 | 天天综合网久久综合网 | 日本在线视频一区二区三区 | 开心激情久久 | 在线不卡的av | 天天操月月操 | 天天曰天天干 | 一区二区精品在线视频 | 久久夜夜爽 | 伊人婷婷久久 | 国产1区2区3区精品美女 | 97超碰.com | 天天做天天爱夜夜爽 | 成人av在线影视 | 婷婷亚洲五月色综合 | 国产精品综合久久久久久 | 伊人导航 | 狠狠操天天操 | 国产美女视频 | 日韩色区 | 国产日韩欧美自拍 | 日韩免费在线观看视频 | www免费黄色| 欧美日韩精品在线观看视频 | 久草精品视频在线播放 | 国产精品s色 | 超碰国产人人 | 在线www色| 国际精品久久久 | 久久久久久久久亚洲精品 | 久久精品小视频 | 精品国产一区二区久久 | 亚洲激情一区二区三区 | 欧美日韩xx | 夜夜操天天干, | 91av99| 91原创在线观看 | 九九九热精品免费视频观看网站 | 欧美大片大全 | 日日夜夜狠狠操 | 日韩婷婷| 免费日韩视 | 久久精品官网 | 人人射| 亚洲欧美偷拍另类 | 99免费| 色婷婷狠 | 麻豆视频在线观看免费 | 亚洲热久久 | 精品极品在线 | 99在线热播精品免费 | 天天操比 | 免费高清av在线看 | 亚洲三级在线免费观看 | 射射色 | 久草线| 日日干,天天干 | 婷婷久月 | 超碰97免费在线 | wwwwww黄| 久久精品中文视频 | 99av在线视频| 亚洲最新av网站 | 成人免费一区二区三区在线观看 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 怡红院久久 | 日韩在线视频免费看 | 欧美,日韩 | 国产短视频在线播放 | 69视频永久免费观看 | 欧美a级片网站 | 亚洲婷婷综合色高清在线 | 欧美成人性网 | 婷婷干五月 | 成人免费电影 | 六月丁香色婷婷 | 色综合天 | 精品国产一区二区三区久久影院 | 欧美久久久久久久久中文字幕 | 日韩免费一区二区三区 | 黄色.com| 最近日本mv字幕免费观看 | 成人午夜黄色影院 | av福利在线播放 | 精品美女在线视频 | 国产高清视频免费观看 | 精品一区二区精品 | av日韩在线网站 | 一区二区欧美日韩 | 天天色天天射天天干 | 久久久免费毛片 | 日韩动漫免费观看高清完整版在线观看 | 精品一区二区三区电影 | 91精品资源 | 久久伦理 | 国产成人精品aaa | 中文字幕中文字幕在线中文字幕三区 | 91视频免费网站 | 国产精品11 | 亚洲天天综合 | 日本黄色免费大片 | 婷婷色九月| 国产精选在线观看 | 亚洲精品玖玖玖av在线看 | 又黄又爽又色无遮挡免费 | 欧美与欧洲交xxxx免费观看 | 久久成人在线视频 | 91人人射 | 人人干人人上 | 欧美精品中文字幕亚洲专区 | 国产涩涩网站 | 日韩美女黄色片 | 黄污网站在线观看 | 特黄特色特刺激视频免费播放 | 久久久久久久久免费 | 天天玩天天干天天操 | 51久久夜色精品国产麻豆 | 91手机视频在线 | 国产精品久久在线 | 摸阴视频| 欧美一级裸体视频 | 久草免费福利在线观看 | 欧美另类亚洲 | 国产96精品 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 久久99深爱久久99精品 | 97免费中文视频在线观看 | 久久久夜色 | 日韩精品一区二区三区不卡 | 精品亚洲午夜久久久久91 | 色综合久久网 | 狠狠狠狠狠狠狠 | 国产精品刺激对白麻豆99 | 激情婷婷综合 | 日本中文在线观看 | 韩国精品在线 | 久久久久久久久久久久国产精品 | 一级欧美黄 | 在线日韩中文 | 2021国产在线| 国产传媒中文字幕 | 好看av在线 | 日本女人b | 成人免费观看电影 | 免费看av片网站 | 天堂av免费观看 | 国产日韩亚洲 | 日韩久久激情 | 婷婷免费在线视频 | 中文字幕精品一区二区三区电影 | 国产成人精品一二三区 | 久久人人插 | 手机在线欧美 | 亚洲精区二区三区四区麻豆 | 999久久国精品免费观看网站 | 久久精品国产第一区二区三区 | 久久久久久久久影视 | av在线网站大全 | 中文字幕视频观看 | 亚洲午夜久久久久久久久久久 | 91在线永久 | 中文字幕一区二区三区久久蜜桃 | 日p视频 | 麻豆一区二区三区视频 | 欧美日韩高清在线一区 | 黄色成人av | 九九久久精品视频 | 午夜精品一区二区三区在线视频 | 久久国产精品99国产精 | 国产手机视频在线播放 | 国产精品av免费在线观看 | 91香蕉嫩草 | 婷婷在线色 | 一区二区三区久久 | 精品免费久久 | 在线91观看 | 中文字幕av最新 | 干亚洲少妇 | 日本h在线播放 | 久久成人午夜 | 91人人爽人人爽人人精88v | 精品999 | 日韩一区二区三区在线观看 | 丁香在线观看完整电影视频 | 精品免费国产一区二区三区四区 | 色天天天| 国产精品对白一区二区三区 | 一区二区三区在线观看免费视频 | 精品久久免费 | 欧美成年网站 | 在线播放国产一区二区三区 | 99免费看片| 亚洲理论视频 | 免费观看成年人视频 | 欧美日韩精品在线观看视频 | 亚洲欧美视频在线观看 | 日韩在线观看视频免费 | 成人免费在线观看电影 | 中文字幕在线观 | 久久高清毛片 | 色综合久久久久久中文网 | 色综合天 | 园产精品久久久久久久7电影 | 五月婷婷综合在线视频 | 91丨porny丨九色 | 色国产精品 | 婷婷六月在线 | 免费成人av | 久久久精品国产一区二区电影四季 | 亚洲精品在线视频播放 | 亚洲精品国产精品国自产在线 | 亚洲精品国产高清 | 毛片精品免费在线观看 | 日韩影片在线观看 | 免费看精品久久片 | 久久婷婷五月综合色丁香 | 久久国产精品免费看 | 精品国产成人在线 | 精品中文字幕视频 | 久久 在线 | 99精品国产一区二区三区不卡 | 国产在线播放一区 | 久久久久激情电影 | 国产高清久久久 | 国产高清区 | 最新日韩中文字幕 | 黄色成人av网址 | 日韩性片| 在线观看黄色免费视频 | 在线播放国产一区二区三区 | 在线国产能看的 | 日女人电影 | 91亚洲在线观看 | 国产人成看黄久久久久久久久 | 在线黄色毛片 | 久久久久久久99 | 久久精品久久久久久久 | 黄色片网站av | 一区在线电影 | 国产色女 | 91精品小视频| 色爱区综合激月婷婷 | 在线a人片免费观看视频 | 91视频在线播放视频 | 91亚洲免费 | 国产中文字幕在线视频 | 色婷婷狠狠18 | 性色av一区二区三区在线观看 | 日韩毛片精品 | 夜夜爽www| 免费的黄色的网站 | 国产1区2| 日韩色在线 | 成人综合日日夜夜 | 免费h视频 | 狠狠狠色狠狠色综合 | v片在线看| 国产1区2区3区在线 亚洲自拍偷拍色图 | 久久久久久久久久久影院 | 免费黄色激情视频 | 免费看成人av | 久久午夜影院 | 久久夜色网 | 免费麻豆| 最近最新mv字幕免费观看 | 一区二区三区不卡在线 | 97色在线| 欧美一级性生活视频 | 91免费的视频在线播放 | 午夜 在线 | 男女激情片在线观看 | 91精品国自产在线观看 | 成年人在线观看免费视频 | 国产一级视频在线观看 | 99免费在线视频观看 | 日韩中文在线视频 | 日日精品| 亚洲视频在线免费看 | 丰满少妇高潮在线观看 | 四虎最新域名 | 国产69精品久久久久久久久久 | 日韩电影在线观看一区二区三区 | www.777奇米| 亚洲国产中文在线观看 | 国产色视频123区 | 91视频首页 | 国产精品四虎 | 久久久久亚洲精品 | 美女网站在线免费观看 | 91夫妻视频 | 国产精品免费观看在线 | 黄网站色视频 | 日韩www在线 | 久久看看| 缴情综合网五月天 | 日韩中文字幕第一页 | 欧美日韩不卡在线观看 | av3级在线 | 国产福利av | 9999毛片| av中文在线观看 | 91大神视频网站 | 色婷婷综合久久久久中文字幕1 | 三级av网站 | 久久人人爽人人人人片 | 激情久久婷婷 | 999久久国产精品免费观看网站 | 精品在线你懂的 | 天天夜操| 天天色天天草天天射 | 日韩成人黄色 | 欧美少妇xx | 美女网站免费福利视频 | 久久成人高清视频 | 日本精品一区二区 | 91高清免费| 久久久美女 | 福利二区视频 | 国产精品视频免费看 | 日韩精品欧美视频 | 久久精品久久精品 | 国产精品手机看片 | 久久精品官网 | 日韩 在线观看 | 亚洲日本va午夜在线电影 | 成人精品99| www.在线看片.com | 国产尤物在线 | 少妇精品久久久一区二区免费 | 国产在线观看你懂得 | 在线91色 | 欧洲色综合| 国产原厂视频在线观看 | 精品三级av | 波多野结衣在线播放视频 | 国内精品久久影院 | 免费黄色a网站 | 欧美在线aa | 亚洲自拍偷拍色图 | 亚色视频在线观看 | 天天做日日做天天爽视频免费 | 五月开心婷婷 | 免费在线观看av网址 | 久久精品视频观看 | 国内精品久久久久影院日本资源 | 人人澡人摸人人添学生av | 亚洲最新在线 | 久久色亚洲 | 久久精品国产一区二区三区 | 久久久网站 | 久久人人爽av | 成人观看| 正在播放一区二区 | 丁香五香天综合情 | 亚洲天堂毛片 | www.黄色小说.com | 亚洲精品网站在线 | 91色吧 | 中文国产在线观看 | h动漫中文字幕 | 天天操天天摸天天爽 | 玖玖精品在线 | 激情视频免费观看 | 国产午夜精品一区 | 日本久热 | 久久婷亚洲五月一区天天躁 | 看黄色91 | 亚洲成人av电影在线 | 91精品一区国产高清在线gif | 视色网站 | 天天看天天干 | 日批网站在线观看 | 在线不卡a| 婷婷在线五月 | 国产精品久久毛片 | 国产精品久久久久久久久久99 | 日韩欧美成人网 | 成人午夜片av在线看 | 狠狠色伊人亚洲综合成人 | 国产精品一级视频 | 在线观看完整版免费 | 日韩美精品视频 | 美女久久久| 国产录像在线观看 | 日韩欧美一区二区三区视频 | 日韩欧美电影在线 | 亚洲精品乱码久久久久久按摩 | 中文字幕黄色网 | 国产精品99久久久久久武松影视 | 日韩高清成人 | 粉嫩av一区二区三区四区 | 九九综合九九综合 | av在线免费观看黄 | 国产综合在线视频 | 久草www| 中文字幕在线观看资源 | 四虎影视成人精品国库在线观看 | 国产精品每日更新 | 亚洲综合色婷婷 | 成 人 黄 色 片 在线播放 | 亚洲精品久久久久久久不卡四虎 | 精产嫩模国品一二三区 | 中文字幕 国产精品 | 亚洲人在线7777777精品 | 婷婷国产精品 | 午夜精品电影 | 九九综合九九 | 日韩精品一区二区三区电影 | 99在线视频播放 | 免费看一级黄色 | 免费看黄的 | 亚洲一二区视频 | 亚洲国产精品激情在线观看 | 免费av观看网站 | 国产精品一区二区吃奶在线观看 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 国产精品麻豆果冻传媒在线播放 | 亚洲国产精品99久久久久久久久 | 色香蕉网 | 成人精品一区二区三区中文字幕 | 久久久精品国产一区二区电影四季 | 中文字幕在线观看国产 | 日韩高清免费在线观看 | 黄色毛片视频 | 岛国av在线不卡 | 中文字幕国产视频 | 国产精品igao视频网网址 | 天天舔天天搞 | 亚洲欧洲在线视频 | 色综合久久久久综合体桃花网 | 国产美女搞久久 | av免费网站 | 国产成人三级在线播放 | 中文字幕精品一区二区三区电影 | 激情综合网五月 | 欧美精品一区二区免费 | 99久免费精品视频在线观看 | 欧美久久精品 | 99 久久久久 | 亚洲精品欧洲精品 | av一本久道久久波多野结衣 | 国产在线 一区二区三区 | 免费亚洲视频在线观看 | 最近中文字幕免费av | 免费黄色网址网站 | 在线播放精品一区二区三区 | 日韩av免费在线看 | 一级理论片在线观看 | 国产成人福利在线 | 欧美成人tv | 免费在线| 中文字幕在线观看免费高清完整版 | av三级av | 欧美午夜a| 天天天在线综合网 | 国产在线播放观看 | 欧美精品亚州精品 | 国产亚洲精品成人 | 特级毛片爽www免费版 | 欧美男同网站 | 97精品国产97久久久久久粉红 | 99色免费 | 中文字幕在线视频一区 | 亚洲精品视频在线免费 | 国产99久久久精品视频 | 中文字幕精品一区二区三区电影 | 国产亚洲久久 | 中文字幕av在线免费 | 四虎影视精品 | 黄色亚洲在线 | 国产成人精品一区二 | www.888av | 久久精品系列 | 精品久久久久久亚洲综合网站 | 国产精品高 | 国产精品资源在线 | 日韩免费在线看 | 国产精品二区在线观看 | 中文字幕在线看视频国产 | 碰超在线97人人 | 中文字幕 影院 | 欧美,日韩| 午夜视频亚洲 | 丁香花中文字幕 | 超碰在线免费97 | 国产在线观看你懂得 | 99精品免费久久久久久久久 | 亚洲一区二区视频 | 九九视频免费观看视频精品 | 中文av免费 | 在线中文字幕观看 | 天天插天天干天天操 | 免费成人在线视频网站 | 一本一本久久a久久 | 日本中文一级片 | 在线观看精品一区 | 00av视频 | 国产男女免费完整视频 | 国产日产欧美在线观看 | av资源网在线播放 | 97超碰人人澡人人爱学生 | 中文字幕在线日本 | 色综合久久66 | 国产午夜av | 色丁香综合 | 超碰人人在线 | 免费在线一区二区 | 香蕉久久久久久av成人 | 亚洲天堂网在线视频 | 天天操·夜夜操 | 国产亚洲精品bv在线观看 | 亚洲艳情 | 热久久在线视频 | 最新国产在线 | 在线看成人 | 国产午夜一级毛片 | 国产精品视频免费在线观看 | 中文在线8新资源库 | 综合色中色 | 久久在视频 | 97天天综合网 | 国产精品久久久99 | 在线看一区二区 | 成人一级在线 | 久久久久久久18 | 97爱爱爱| 久草在线精品观看 | 91精品国产成人 | 日韩欧三级 | 国产91免费看 | 婷婷在线视频观看 | 日本中文字幕免费观看 | 精品国产_亚洲人成在线 | 国产精品99久久久久久宅男 | 久亚洲| 日韩欧美在线观看 | 国产一性一爱一乱一交 | 国产亚洲在线 | 激情综合五月天 | 中文字幕一二 | 亚洲美女视频网 | 狠狠躁日日躁 | 精品免费久久久久 | 插插插色综合 | 国产欧美在线一区二区三区 | 六月婷色| 夜夜躁日日躁 | 五月婷婷播播 | 国产成在线观看免费视频 | 精品91在线 | 日韩欧美精品在线视频 | 四虎成人精品永久免费av | 五月天色网站 | 91黄色小网站 | 亚洲国产精品电影 | 精品99久久久久久 | 国产中文字幕网 | 久久人人爽人人 | 亚洲aⅴ久久精品 | 国产a国产 | 日日夜夜精品网站 | 久久精品一二区 | 综合色综合 | 国产xxxxx在线观看 | 日韩激情综合 | www.天天操.com| 国产专区在线播放 | 在线观看www91 | 日韩特级片 | 免费观看成人av | 欧美日本中文字幕 | 日韩大片在线免费观看 | 国产精品一区免费在线观看 | 亚洲特级毛片 | av中文字幕不卡 | 久久热亚洲 | 在线观看爱爱视频 | 天堂av在线免费观看 | 国产精品久久人 | 91传媒在线看 | 天天操天天干天天摸 | 久久怡红院| 亚洲一级影院 | www五月天 | 国产自在线观看 | 国产精品不卡在线 | 国产精品 视频 | 久久综合五月婷婷 | 福利视频一区二区 | 久久免费视频网站 | 国产精品自在线 | 国产免费一区二区三区网站免费 | 久久久久久久久久久久久久av | 精品久久久久免费极品大片 | 久久精品99精品国产香蕉 | 午夜美女福利直播 | 四虎www.| 午夜久操 | 国产精品99久久久久久人免费 | 久久久久久久久久久高潮一区二区 | 国产精品免费观看在线 | 亚洲激情久久 | 精品一区二区在线播放 | 午夜视频免费 | 久久玖| 欧美性久久久 | 99免费在线观看视频 | 国产在线观看免费观看 | 91久久精品日日躁夜夜躁国产 | www.久久久.com | 中文字幕中文字幕在线中文字幕三区 | 色综合久久精品 | 欧美激情奇米色 | 黄色成人在线 | 国产中文字幕三区 | 久久久久久久久影院 | 99精品乱码国产在线观看 | 在线观看深夜视频 | 干 操 插 | 亚洲国产中文字幕在线视频综合 | 最近日本字幕mv免费观看在线 | 久久久三级视频 | 色婷婷视频 | 在线成人性视频 | 亚洲专区欧美专区 | 国产成人一区二区啪在线观看 | 日韩中文字幕91 | 亚洲人成在线观看 | 天天干夜夜擦 | 国产精品99爱 | 国产色综合 | 国产视频 久久久 | 在线免费看黄网站 | 天天伊人网| 免费亚洲视频在线观看 | 免费在线观看不卡av | 18pao国产成视频永久免费 | 亚洲专区 国产精品 | 毛片网免费| 三级视频国产 | 日日夜夜免费精品视频 | 96久久| 四虎免费av | 日韩精品无码一区二区三区 | 免费看国产a | 啪啪免费视频网站 | 五月婷香 | 中文字幕 国产专区 | 亚洲精品国产精品国自产 | 91丨九色丨91啦蝌蚪老版 | 国产一区二区在线免费 | 五月婷香| 夜夜澡人模人人添人人看 | 亚洲精品在线二区 | 免费福利片| 欧美一级免费黄色片 | 色姑娘综合天天 | av片一区二区 | 中文字幕av有码 | 在线观看视频免费大全 | 精品免费久久久久 | 99久久999久久久精玫瑰 | 日本 在线 视频 中文 有码 | 日日夜夜人人精品 | av久久久| 园产精品久久久久久久7电影 | 韩国三级av在线 | 成人免费在线观看av | 97在线精品国自产拍中文 | 在线 视频 一区二区 | 国产精品久久在线观看 | 五月婷婷国产 | 免费福利在线观看 | 国产精品青草综合久久久久99 | 日韩欧美视频在线 | 国产五月 | 亚洲一区二区高潮无套美女 | 麻豆免费在线播放 | 久久久久五月天 | 亚洲激情p | 免费在线一区二区 | 久久精品男人的天堂 | 免费看三级黄色片 | 亚洲精品午夜久久久久久久久久久 | 欧美精品一区二区在线观看 | av高清一区二区三区 | 亚洲成人午夜av | 五月婷婷.com | 久久黄色免费视频 | 最新日韩在线观看视频 | 中文字幕一区二区三区四区 | 美女黄频视频大全 | 日本三级香港三级人妇99 | 久热免费 | 国产麻豆精品免费视频 | 97超级碰碰碰视频在线观看 | 亚洲人成影院在线 | 国产毛片久久久 | 久久综合久久综合这里只有精品 | av中文字幕免费在线观看 | 去干成人网 | 91久久偷偷做嫩草影院 | 97超碰色偷偷 | 日本精品久久久久中文字幕 | 91尤物国产尤物福利在线播放 | 天天射天天干天天爽 | 欧美精品一区二区在线观看 | 五月婷婷综合网 | 精品久久久久久久久中文字幕 | 色综合天天干 | 亚洲久在线 | 久草视频免费观 | 婷婷色网 | 亚洲成人精品久久久 | 日韩超碰 | 欧美一区二区三区不卡 | 免费在线观看黄色网 | 亚洲一区久久 | 97人人模人人爽人人少妇 | 免费a视频| 91九色porny在线| av网站手机在线观看 | 天天干天天做 | 国产精品区二区三区日本 | 麻豆视频在线观看免费 | 精品免费在线视频 | 欧美一区二区三区四区夜夜大片 | 成人综合婷婷国产精品久久免费 | 久久国产a| 毛片在线播放网址 | 免费国产一区二区视频 | 久久国内精品 | 国产综合香蕉五月婷在线 | 精品久久免费看 | 成人日批视频 | 色综合久久精品 | 美女一级毛片视频 | 天天色天天上天天操 | 日韩欧美一二三 | 三三级黄色片之日韩 | 亚洲国产精品电影 | www欧美色 | 亚洲国产一区二区精品专区 | 99久久99久久精品 | 久久久久久久久久影视 | 亚洲一区精品二人人爽久久 | 99 视频 高清 | 国产精品美女久久久久久 | 婷婷激情欧美 | 国产一级大片在线观看 | 日韩性xxx| 亚洲精品免费看 | 久久狠狠婷婷 | 亚洲成人av在线电影 | 国内久久精品 | a亚洲视频 | 91av大全 | 国产精品福利在线播放 | 日韩高清成人 | 欧美成人高清 | 亚洲精品午夜久久久久久久久久久 | 免费精品| 色综合天天射 | 精品高清美女精品国产区 | 制服丝袜欧美 | 久久久久国产精品免费 | 免费看污黄网站 | 九九视频免费观看视频精品 | 一区二区三区日韩视频在线观看 | 超碰免费av | 亚洲精品视频在线观看免费视频 | 国产片免费在线观看视频 | 91在线看黄 | 国产精品私人影院 | 91精品国产乱码在线观看 | 五月婷婷激情六月 | 免费亚洲黄色 | 久久久久国 | 九色91视频 | 色欲综合视频天天天 | 成人av手机在线 | 在线观看av免费 | 99久热在线精品视频成人一区 | 日韩免费电影网站 | 天天躁天天狠天天透 | 亚洲特级毛片 | 91粉色视频 | av在线a| 日本在线观看中文字幕无线观看 | 免费成人看片 | 精品国产aⅴ麻豆 | 在线 视频 一区二区 | 丁香六月在线观看 | 97视频播放 | 国产精品免费久久久久影院仙踪林 | 久久久国产精品一区二区三区 | 免费视频久久久久久久 | 亚洲精品高清视频在线观看 | 久久a久久 | 亚洲一区天堂 | 国产偷国产偷亚洲清高 | 日本色小说视频 | 亚洲国产成人精品久久 | 99视频精品全部免费 在线 | 婷婷婷国产在线视频 | 欧美色婷婷 | 欧美日韩一区二区三区在线免费观看 | 日韩成人不卡 | 日韩精品视频第一页 | 久久少妇免费视频 | 日韩在线高清 | 亚洲国产精品99久久久久久久久 | 玖玖在线精品 | 国产精品国产精品 | 蜜臀一区二区三区精品免费视频 | 国产一区欧美二区 | 久久99精品国产99久久 | 亚洲欧美va | 日韩av资源站 | 激情图片久久 | 色噜噜狠狠狠狠色综合 |