3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

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

数据库

不同存储结构的文件磁盘io操作次数_MySQL InnoDB存储引擎

發布時間:2025/3/15 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不同存储结构的文件磁盘io操作次数_MySQL InnoDB存储引擎 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第1章 MySQL體系結構和存儲引擎

1.1數據庫和實例

數據庫:物理操作系統文件或其他形式文件類型的集合。實例:MySQL數據庫由后臺線程以及一個共享內存區組成。共享內存可以被運行 的后臺線程所共享。數據庫實例才是真正用于操作數據庫文件的。

啟動MySQL數據庫實例,并通過命令ps觀察MySQL數據庫啟動后的進程情況:

./mysqld_safe&ps -ef I grep mysqld

讀取配置文件順序,以讀取到的最后一個配置文件中的參數為準

mysql --help | grep my.cnf #/etc/my.cnf?/etc/mysql/my.cnf?/usr/etc/my.cnf?~/.my.cnf

1.2 MySQL體系結構

從概念上來說數據庫是文件的集合,是依照某種數據模型組織起來并存放于二級存儲器中的數據集合;

數據庫實例是程序,是位 于用戶與操作系統之間的一層數據管理軟件,用戶對數據庫數據的任何操作,包括數據 庫定義、數據査詢、數據維護、數據庫運行控制等都是在數據庫實例下進行的,應用程序只有通過數據庫實例才能和數據庫打交道。

MySQL數據庫的體系結構。

MySQL由以下幾部分組成:

  • 連接池組件

  • 管理服務和工具組件

  • SQL接口組件

  • 査詢分析器組件

  • 優化器組件

  • 緩沖(Cache)組件

  • 插件式存儲引擎

  • 物理文件

MySQL數據庫區別于其他數據庫的最重要的一個特點就是其插件式的表存儲引擎。存儲引擎是基于表的,而不是數據庫。

1.3 MySQL存儲引擎

MySQL數據庫獨有的插件式體系結構。存儲引擎的好處是,每個存儲引擎都有各自的特點,能夠根據具體的應用建立不同存儲引擎表。

InnoDB存儲引擎
  • InnoDB存儲引擎支持事務,其設計目標主要面向在線事務處理(OLTP)的應用。其特點是行鎖設計、支持外鍵,并支持類似于Oracle的非鎖定讀,即默認讀取操作不會產生鎖。

  • InnoDB通過使用多版本并發控制(MVCC)來獲得高并發性,并且實現了 SQL 標準的4種隔離級別,默認為REPEATABLE級別。

  • 同時,使用一種被稱為next-key locking的策略來避免幻讀(phantom)現象的產生。

  • 除此之外,InnoDB儲存引擎還提供了插入緩沖(insert buffer)>二次寫(double write)、自適應哈希索引(adaptive hash index).預讀(read ahead)等高性能和高可用的功能。

  • 對于表中數據的存儲,InnoDB存儲引擎采用了聚集(clustered)的方式,因此每張表的存儲都是按主鍵的順序進行存放。如果沒有顯式地在表定義時指定主鍵,InnoDB存 儲引擎會為每一行生成一個6字節的ROWID,并以此作為主鍵。

MylSAM存儲引擎

MylSAM存儲引擎不支持事務、表鎖設計,支持全文索引,主要面向一些OLAP 數據庫應用。在MySQL 5.5.8版本之前MylSAM存儲引擎是默認的存儲引擎(除 Windows版本外)。MylSAM存儲引擎的緩沖池只緩存(cache)索引文件,而不緩沖數據文件。

MylSAM存儲引擎表由MYD和MYI組成,MYD用來存放數據文件,MYI用來存 放索引文件。

1.4各存儲引擎之間的比較

常用MySQL存儲引擎之間的不同之處,包括存儲容量的限制、事務支持、鎖的粒度、MVCC支持、支持的索引、備份和復制等。

查看當前使用的MySQL數據庫所支持的存儲引擎

SHOW ENGINES\G

示例數據庫來簡單顯示各存儲引擎之間的不同

CREATE TABLE mytest Engine=MyISAM AS SELECT * FROM A;ALTER TABLE mytest Engine=InnoDB;ALTER TABLE mytest Engine=ARCHIVE;

從表的大小方面簡單地揭示了各存儲引擎的不同:InnoDB>MyISAM>ARCHIVE

第2章InnoDB存儲引擎

InnoDB是事務安全的MySQL存儲引擎。

2.1 InnoDB存儲引擎概述

MySQL 5.5版本開始是默認的表存儲引擎。支持ACID事務,其特點是行鎖設計、支持MVCC、支持外鍵、提供一致性非鎖定讀,同時被設計用來最有效地利用以及使用內存和CPU。

2.3 InnoDB體系架構

InnoDB存儲引擎有多個內存塊,可以認為這些內存塊組成了一個大的內存池,負責 如下工作:維護所有進程/線程需要訪問的多個內部數據結構。緩存磁盤上的數據,方便快速地讀取,同時在對磁盤文件的數據修改之前在這里 緩存。重做日志(redo log)緩沖...

后臺線程的主要作用是負責刷新內存池中的數據,保證緩沖池中的內存緩存的是最近的數據。此外將已修改的數據文件刷新到磁盤文件,同時保證在數據庫發生異常的情 況下InnoDB能恢復到正常運行狀態。

2.3.1后臺線程

InnoDB存儲引擎是多線程的模型,因此其后臺有多個不同的后臺線程,負責處理不

Master ThreadMaster Thread是一個非常核心的后臺線程,主要負責將緩沖池中的數據異步刷新到磁盤,保證數據的一致性,包括臟頁的刷新、合并插入緩沖(INSERT BUFFER UNDO頁的回收等

IO Thread在InnoDB存儲引擎中大量使用了 AIO (Async IO)來處理寫IO請求,這樣可以極大提高數據庫的性能。而IO Thread的工作主要是負責這些IO請求的回調(callback) 處理。分別是 write、read、insert buffer 和 log 10 thread,分別使用 innodb_read_io_threads 和 innodb_write_io_threads 參數進行設置

SHOW VARIABLES LIKE 'innodb_%io_threads'\G

觀察 InnoDB 中的 IO Thread

SHOW ENGINE INNODB STATUS\G

IO Thread 0 為 insert buffer thread,IO Thread 1 為 log thread之后就是根據參數innodb_read_io_threads及innodb_write_io_threads來設置的讀寫線程,并且讀線 程的ID總是小于寫線程。

Purge ThreadPurgeThread來回收已經使用并分配的undo頁,purge操作可以獨立到單獨的線程中進行,以此來減輕Master Thread的工作。

從InnoDB 1.2版本開始,InnoDB支持多個Purge Thread,可以加快undo頁的回收。同時由于Purge Thread需要離散地讀取undo頁,這樣也褪更進 一步利用磁盤的隨機讀取性能。如用戶可以設置4個Purge Thread:

SHOW VARIABLES LIKE 'innodb_purge_threads'\G

Page Cleaner Thread作用是將之前版本中臟頁的刷新操作都放入到單獨的線程中來完成。而其目的是為了減輕原Master Thread的工作 及對于用戶査詢線程的阻塞,進一步提高InnoDB存儲引擎的性能。

2.3.2內存
緩沖池

InnoDB存儲引擎是基于磁盤存儲的,并將其中的記錄按照頁的方式進行管理。基于磁盤的數據庫系統通常使用緩沖池技術來提高數據庫的整體性能。緩沖池簡單來說就是一塊內存區域,通過內存的速度來彌補磁盤速度較慢對數據庫性能的影響。在數據庫中進行讀取頁的操作,首先將從磁盤讀到的頁存放在緩沖池中, 這個過程稱為將頁"FIX”在緩沖池中。下一次再讀相同的頁時,首先判斷該頁是否在緩沖池中。若在緩沖池中,稱該頁在緩沖池中被命中,直接讀取該頁。否則,讀取磁盤 上的頁。對于數據庫中頁的修改操作,則首先修改在緩沖池中的頁,然后再以一定的頻率刷新到磁盤上。這里需要注意的是,頁從緩沖池刷新回磁盤的操作并不是在每次頁發生變更時觸發,而是通過一種稱為Checkpoint的機制刷新回磁盤。緩沖池的配置通過參數innodb_buffer_pool_size來設置。

SHOW VARIABLES LIKE 'innodb_buffer_pool_size' \G

緩沖池中緩存的數據頁類型有:索引頁、數據頁、undo頁、插入緩沖 (insert buffer)、自適應哈希索引(adaptive hash index)、InnoDB 存儲的鎖信息(lock info)、數據字典信息(data dictionary)等。不能簡單地認為,緩沖池只是緩存索引頁和 數據頁,它們只是占緩沖池很大的一部分而已。InnoDB存儲引擎中內存的結構情況。

配置多個緩沖池實例。每個頁根據哈希值平均分配到 不同緩沖池實例中。這樣做的好處是減少數據庫內部的資源競爭,增加數據庫的并發處理能力。

SHOW VARIABLES LIKE 'innodb_buffer_pool_instances'\G

觀察到每個緩沖池實例對象運行的狀態

SHOW ENGINE INNODB STATUS\GSELECT POOL_ID,POOL_SIZE,FREE_BUFFERS,DATABASE_PAGES FROM information_schema.INNODB_BUFFER_POOL_STATS\G

LRU List、Free List 和 Flush List

數據庫中的緩沖池是通過LRU (Latest Recent Used)算法來進行管理的。即最頻繁使用的頁在LRU列表的前端,而最少使用的頁在LRU列表的尾端。當緩沖池不能存放新讀取到的頁時,將首先釋放LRU列表中尾端的頁。在InnoDB存儲引擎中,緩沖池中頁的大小默認為16KB,同樣使用LRU算法對緩沖池進行管理。

InnoDB的存儲引擎中,LRU列表中還加入了 midpoint位置。新讀取到的頁,雖然是最新訪問的頁,但并不是直接放入到LRU列表的首部,而是放入到LRU列表的midpoint 位置。這個算法在InnoDB存儲引擎下稱為midpoint insertion strategy。在默認配置下,該位置在LRU列表長度的5/8處。

midpoint位置可由參數innodb_old_blocks_pct控制,如:

SHOW VARIABLES LIKE 'innodb_old_blocks_pct'\G

默認值為37,表示新讀取的頁插入到LRU列表尾端的37%的位置(差不多3/8的位置)。在InnoDB存儲引擎中,把 midpoint之后的列表稱為old列表,之前的列表稱為new列表。可以簡單地理解為new 列表中的頁都是最為活躍的熱點數據。那為什么不采用樸素的LRU算法,直接將讀取的頁放入到LRU列表的首部呢?因為某些SQL操作可能會使緩沖池中的頁被刷新出,從而影響緩沖池的效率。常見掃描操作,并不是活躍的熱點數據。如果頁被放入LRU列表的首部,那么非常可能將所需要的熱點數據頁從LRU列表中移除。

InnoDB存儲引擎引入了另一個參數來進一步管理LRU列表,表示頁讀取到mid位置后需要等待多久才會被加入到LRU列表的熱端。可以通過下面的方法盡可能使LRU列表中熱點數據不被刷出。

SHOW VARIABLES LIKE 'innodb_old_blocks_time'\GSET GLOBAL innodb_old_blocks_time=1000;####data or index scan operationSET GLOBAL innodb_old_blocks_time=1000;

如果用戶預估自己活躍的熱點數據不止63%。

SHOW VARIABLES LIKE 'innodb_old_blocks_pct'\GSET?GLOBAL?innodb_old_blocks_pct=20;

LRU列表用來管理已經讀取的頁,但當數據庫剛啟動時,LRU列表是空的,即沒有任何的頁。這時頁都存放在Free列表中。當需要從緩沖池中分頁時,首先從Free列表中查找是否有可用的空閑頁,若有則將該頁從Free列表中刪除,放入到LRU列表中。否則,根據LRU算法,淘汰LRU列表末尾的頁,將該內存空間分配給新的頁。當頁從 LRU列表的old部分加入到new部分時,稱此時發生的操作為page made young,而因為innodb_old_blocks_time的設置而導致頁沒有從old部分移動到new部分的操作稱為 page not made young

通過命令 ?來觀察 LRU 列 表及Free列表的使用情況和運行狀態。

SHOW ENGINE INNODB STATUS\G

當前Buffer 8191個頁。Free buffers表示當前Free列表中頁的數量,Database pages表示LRU列表中頁的數量。可能的情況是Free buffers與 Database pages的數量之和不等于Buffer pool size,因為緩沖池 中的頁還可能會被分配給自適應哈希索引、Lock信息、Insert Buffer等頁,而這部分頁 不需要LRU算法進行維護,因此不存在于LRU列表中。pages made young顯示 LRU列表中頁移到前端的次數,因為該服務器在運行階段沒改innodb_old_blocks_time 的值,因此 not young 為 0。youngs/s,non-youngs/s 表示每秒這兩類操作的次數。

Buffer pool hit rate,表示緩沖池的命中率,100%說明緩沖池運行狀態非常良好。通常該值不應該小于95%。若發生Buffer pool hit rate的值小于95%這種情況,需要觀察是否是由于全表掃描引起的LRU列表被污染的問題。

還可以通過表INNODB_BUFFER_POOL_STATS來觀察緩沖池的運行狀態

SELECT POOL_ID, HIT_RATE,PAGES_MADE_YOUNG, PAGES_NOT_MADE_YOUNGFROM information_schema.INNODB_BUFFER_POOL_STATS\G

InnoDB存儲引擎從1.0.x版本開始支持壓縮頁的功能,即將原本16KB的頁壓縮 為1KB、2KB、4KB和8KB。而由于頁的大小發生了變化,LRU列表也有了些許的改變。對于非16KB的頁,是通過unzip_LRU列表進行管理的。LRU中的頁包含了 unzip_LRU列表中的頁。

在LRU列表中的頁被修改后,稱該頁為臟頁(dirty page),即緩沖池中的頁和磁盤 上的頁的數據產生了不一致。這時數據庫會通過CHECKPOINT機制將臟頁刷新回磁盤, 而Flush列表中的頁即為臟頁列表。需要注意的是,臟頁既存在于LRU列表中,也存在 于Flush列表中。LRU列表用來管理緩沖池中頁的可用性,Flush列表用來管理將頁刷新 回磁盤,二者互不影響。

前面例子中Modified db pages 就顯示了臟頁的數量。臟頁同樣存在于LRU列表中

SELECT TABLE_NAME,SPACE,PAGE_NUMBER,PAGE_TYPE FROM INNODB_BUFFER_PAGE_LRU WHERE OLDEST_MODIFICATION> 0;
重做日志緩沖

內存區域除了有緩沖池外,還有重做日志緩沖(redo log buffer)。InnoDB存儲引撃首先將重做日志信息先放入到這個緩沖區,然后按一定頻率將其刷新到重做日志文件。重做日志緩沖一般不需要設置得很大,因為一般情況下每一秒鐘會將重做日志緩沖刷新到日志文件,因此用戶只需要保證每秒產生的事務量在這個緩沖大小之內即可。

SHOW VARIABLES LIKE 'innodb_log_buffer_size'\G

重做日志在下列三種情況下會將重做日志緩沖中的內容刷新到外部磁盤的重做日志文件中。

  • Master Thread每一秒將重做日志緩沖刷新到重做日志文件;

  • 每個事務提交時會將重做日志緩沖刷新到重做日志文件;

  • 當重做日志緩沖池剩余空間小于1/2時,重做日志緩沖刷新到重做日志文件。

額外的內存池

在InnoDB存儲引擎中,對內存的管理是通過一種稱為內存堆(heap) 的方式進行的。在對一些數據結構本身的內存進行分配時,需要從額外的內存池中進行申請

2.4 Checkpoint 技術

緩沖池的設計目的為了協調CPU速度與磁盤速度的鴻溝。將臟頁從緩沖池刷新到磁盤。

  • 若每次一個頁發生變化,就刷新到磁盤,開銷非常大。

  • 若熱點數據集中在某幾個頁中,那么數據庫的性能將變得非常差。

  • 若在從緩沖池將頁的新版本刷新到磁盤時發生了宕機,發生數據丟失的問題。

  • 當前事務數據庫系統普遍都采用了 Write Ahead Log策略,即當事務提交時,先寫重做日志,再修改頁。當由于發生宕機而導致數據丟失時,通過重做日志來 完成數據的恢復。這也是事務ACID中D (持久性)的要求。Checkpoint的目的:

  • 縮短數據庫的恢復時間;

  • 緩沖池不夠用時,將臟頁刷新到磁盤;

  • 重做日志不可用時,刷新臟頁。

  • 兩種CheckpointShaip Checkpoint發生在數據庫關閉時將所有的臟頁都刷新回磁盤,這是默認的工作方式

    Fuzzy Checkpoint進行頁的刷新,即只刷新一 部分臟頁,而不是刷新所有的臟頁回磁盤。

    臟頁的數量太多,當緩沖池中臟頁的數量占據75%時,強制進行Checkpoint。

    SHOW VARIABLES LIKE 'innodb_max_dirty_pages_pct'\G
    2.6 InnoDB關鍵特性

    InnoDB存儲引擎的關鍵特性包括:插入緩沖(Insert Buffer)兩次寫(DoubleWrite)自適應哈希索引(Adaptive Hash Index)異步 IO (Async IO)刷新鄰接頁(Flush Neighbor Page)2.6.1插入緩沖

    Insert BufferInsert Buffer和數據頁一樣,也是物理頁的一個組成部分。在InnoDB存儲引擎中,主鍵是行唯一的標識符。通常應用程序中行記錄的插入順序是按照主鍵遞增的順序進行插入的。因此,插入聚集索引(Primary Key) 一般是順序的,不需要隨機讀取另一個頁中的記錄。因此,速度是非常快的。若主鍵類是UUID這樣的類,在進行插入操作時,數據頁的存放還是按主鍵進行順序存放的,但是對于非聚集索引葉子節點的插入不再是順序的了,這時就離散地訪問非聚集索引頁,由于隨機讀取的存在而導致了插入操作 性能下降。因為B+樹的特性決定了非聚集索引插入的離散性。

    Insert Buffer,對于非聚集索引的插入或更新操作, 不是每一次直接插入到索引頁中,而是先判斷插入的非聚集索引頁是否在緩沖池中,若在,則直接插入;若不在,則先放入到一個Insert Buffer對象中,好似欺騙。數據庫這 個非聚集的索引已經插到葉子節點,而實際并沒有,只是存放在另一個位置。然后再以 一定的頻率和情況進行Insert Buffer和輔助索引頁子節點的merge (合并)操作,這時通 常能將多個插入合并到一個操作中(因為在一個索引頁中),這就大大提高了對于非聚 集索引插入的性能。然而Insert Buffer的使用需要同時滿足以下兩個條件:索引是輔助索引(secondary index);索引不是唯一(unique)的。當滿足以上兩個條件時,InnoDB存儲引擎會使用Insert Buffer,這樣就能提高插入操作的性能了。

    Change BufferInnoDB存儲引擎可以對DML操作——INSERT, DELETE, UPDATE都進行緩沖

  • 將記錄標記為已刪除;

  • 真正將記錄刪除。

  • Insert Buffer的內部實現Insert Buffer是一棵B+樹,因此其也由葉節點和非葉節點組成。非葉節點存放的是査詢的search key (鍵值),由space-marker-offset組成,space表示待插入記錄所在表的表空間id,每個表有一個唯一的space id,可以通過space id査詢得知是哪張表。space占用4字節。marker占用1字節,用來兼容老版本的Insert Buffer,offset 表示頁所在的偏移量,占用4字節。當一個輔助索引要插入到頁(space, offset)時,將這條記錄插入到Insert Buffer B+樹的葉子節點中。由space-marker-offset-matadata組成,前面一樣,matadata會記錄進入 Insert Buffer的順序。第5列開始,就是實際插入記錄的各個字段了。因此較之原插入記錄,Insert Buffer B+樹的葉子節點記錄需要額外13字節的開銷。

    Merge Insert BufferInsert/Change Buffer是一棵B+樹。合并(merge)Insert Buffer中的記錄到真正的輔助索引中

    2.6.2兩次寫

    doublewrite (兩次寫)帶給InnoDB存儲引擎的是數據頁的可靠性。當發生數據庫宕機時,可能InnoDB存儲引擎正在寫入某個頁到表中,而這個頁只寫了一部分,發生了宕機,導致數據丟失的情況。可以通過重做日志進行恢復。這是一 個辦法。但是必須清楚地認識到,重做日志中記錄的是對頁的物理操作,如偏移量800, 寫-aaaa-記錄。如果這個頁本身已經發生了損壞,再對其進行重做是沒有意義的。這 就是說,在應用(apply)重做日志前,用戶需要一個頁的副本,當寫入失效發生時,先 通過頁的副本來還原該頁,再進行重做,這就是doublewrite。doublewrite由兩部分組成,一部分是內存中的doublewrite buffer,大小為2MB,另一部分是物理磁盤上共享表空間中連續的128個頁,即2個區(extent),大小同樣為 2M,在對緩沖池的臟頁進行刷新時,并不直接寫磁盤,而是會通過memcpy函數將 臟頁先復制到內存中的doublewrite buffer,之后通過doublewrite buffer再分兩次,每次 1MB順序地寫入共享表空間的物理磁盤上,然后馬上調用fsync函數,同步磁盤,避免 緩沖寫帶來的問題。在這個過程中,因為doublewrite頁是連續的,因此這個過程是順序

    2.6.3自適應哈希索引

    而B+樹的查找次數,取決于B+樹的高度,在生產環境中,B+樹的高度一般為3?4層,故需要3~4次的査詢。InnoDB存儲引擎會監控對表上各索引頁的査詢。如果觀察到建立哈希索引可以帶 來速度提升,則建立哈希索引,稱之為自適應哈希索引(Adaptive Hash Index, AHI)。

    2.6.4 異步

    為了提高磁盤操作性能,當前的數據庫系統都采用異步IO (Asynchronous IO, AI0)的方式來處理磁盤操作。

    2.6.5刷新鄰接頁

    InnoDB存儲引擎還提供了 Flush Neighbor Page (刷新鄰接頁)的特性。其工作原理 為:當刷新一個臟頁時,InnoDB存儲引擎會檢測該頁所在區(extent)的所有頁,如果是臟頁,那么一起進行刷新。

    2.7啟動、關閉與恢復

    在關閉時,參數innodb_fast_shutdown影響著InnoDB的行為

    • 0表示在MySQL數據庫關閉時,InnoDB需要完成所有的fiill purge和merge insert buffer,并且將所有的臟頁刷新回磁盤。這需要一些時間,有時甚至需要幾 個小時來完成。如果在進行InnoDB升級時,必須將這個參數調為0,然后再關閉數據庫。

    • 1是參數innodb fast shutdown的默認值,表示不需要完成上述的fiill purge和 merge insert buffer操作,但是在緩沖池中的一些數據臟頁還是會刷新回磁盤。

    • 2表示不完成full purge和merge insert buffer操作,也不將緩沖池中的數據臟頁寫回磁盤,而是將日志都寫入日志文件。這樣不會有任何事務的丟失,但是下次 MySQL數據庫啟動時,會進行恢復操作(recovery)。

    第3章 文件

    • 參數文件:告訴MySQL實例啟動時在哪里可以找到數據庫文件,并且指定某些初始化參數

    • 日志文件:用來記錄MySQL實例對某種條件做出響應時寫入的文件,如錯誤日志文件、二進制日志文件、慢査詢日志文件、查詢日志文件等。

    • socket文件:當用UNIX域套接字方式進行連接時需要的文件。

    • pid文件:MySQL實例的進程ID文件。

    • MySQL表結構文件:用來存放MySQL表結構定義文件。

    • 存儲引擎文件:因為MySQL表存儲引擎的關系,每個存儲引擎都會有自己的文 件來保存各種數據。這些存儲引擎真正存儲了記錄和索引等數據。

    3.1參數文件

    啟動時,數據庫會先去讀一個配置參數文件,用來尋找數據庫的各種文件所在位置以及指定某些初始化參數

    mysql --help | grep my.cnf

    3.1.2參數類型MySQL數據庫中的參數可以分為兩類:動態(dynamic)參數靜態(static)參數

    全局/當前會話

    SELECT @@session.read_buffer_size\GSELECT @@global.read_buffer_size\G

    3.2日志文件

    常見的日志文件有:

    • 錯誤日志(error log)

    • 二進制日志(binlog)

    • 慢査詢日志(slow query log)

    • 査詢日志(log)

    對運行狀態進行診斷,從而更好地進行數據庫層面的優化。

    3.2.1錯誤日志

    錯誤日志文件對MySQL的啟動、運行、關閉過程進行了記錄。不僅記錄了所有的錯誤信息,也記錄一些警告信息或正確的信息。

    SHOW VARIABLES LIKE 'log_error'\Gtail -n 50 /var/lib/mysql/node3.err
    3.2.2慢查詢日志

    慢査詢日志定位可能存在問題的SQL語句,從而進行SQL語句層面的優化。可以在MySQL啟動時設一個閾值,將運行時間超過該值的所有SQL語句都記錄到慢查詢日志文件中,默認關閉

    SHOW VARIABLES LIKE 'long_query_time'\GSHOW VARIABLES LIKE 'log_slow_queries'\G

    如果運行的SQL 語句沒有使用索引,則MySQL數據庫同樣會將這條SQL語句記錄到慢査詢日志文件。

    SHOW VARIABLES LIKE 'log_queries_not_using_indexes'\G

    DBA可以通過慢查詢日志來找出有問題的SQL語句,對其進行優化。

    提供的mysqldumpslow命令,分析該文件:

    mysqldumpslow xxx-190-slow.log

    如果用戶希望得到執行時間最長的10條SQL語句,可以運行如下命令:

    mysqldumpslow -s al -n 10 david.log

    將慢査詢的日志記錄放入一張表中,査詢更加方便和直觀。

    select * from mysql.slow_log;

    參數long_query_io將超過指定邏輯10次數的SQL語句記錄到 slow log中。表示對于邏輯讀取次數大于100的SQL語句,記錄到 slow log中。

    3.2.3查詢日志

    査詢日志記錄了所有對MySQL數據庫請求的信息,無論這些請求是否得到了正確的執行。默認文件名為:主機名.log,如査看一個査詢日志:

    3.2.4二進制日志

    二進制日志(binary log)記錄了對MySQL數據庫執行更改的所有操作,但是不包括SELECT和SHOW這類操作

    SHOW MASTER STATUS\GSHOW BINLOG EVENTS IN 'mysql-bin.000002'\G

    二進制日志主要有以下幾種作用。恢復、復制、審計

    show variables like 'datadir';

    mysql-bin.000001即為二進制日志文件,mysql-bin.index為二進制的索引文件,來存過往產生的二進制日志序號

    以下配置文件的參數影響著二進制日志記錄的信息和行為:

    max_binlog_size指定了單個二進制日志文件的最大值,如果超過該值,則產生 新的二進制日志文件,后綴名+1,并記錄到.index文件。當使用事務的表存儲引擎時,所有未提交的二進制日志會被記錄到一個緩存中去,等該事務提交時直接將緩沖中的二進制日志寫入二進制日志文件,而該緩沖的大小由binlog_cache_size決定,默認大小為32K。

    在默認情況下,二進制日志并不是在每次寫的時候同步到磁盤。sync_binlog= [N]表示每寫緩沖 多少次就同步到磁盤。如果將N設為1,即sync_binlog= 1表示采用同步寫磁盤的方式來 寫二進制日志參數binlog-do-db和binlog-ignore-db表示需要寫入或忽略寫入哪些庫的日志。默認為空,表示需要同步所有庫的日志到二進制日志。binlog_format參數十分重要,它影響了記錄二進制日志的格式。

    要査看二進制日志文件的內容,通過MySQL提供的工具mysqlbinlogo對于STATEMENT格式的二進制日志文件,在 使用mysqlbinlog后,看到的就是執行的邏輯SQL語句

    mysqlbinlog --start-position=203 test.000004

    3.3套接字文件

    在UNIX系統下本地連接MySQL可以采用UNIX域套接字方式,這種方式需要一個套接字(socket)文件。套接字文件可由參數socket控制。一般在/tmp 目錄下,名為mysql.sock

    3.4 pid文件

    當MySQL實例啟動時,會將自己的進程ID寫入一個文件中該文件即為pid文 件。該文件可由參數pid_file控制,默認位于數據庫目錄下,文件名為主機名.pid:

    show variables like 'pid_file'\G

    3.5表結構定義文件

    MySQL數據的存儲是根據表進行 的,每個表都會有與之對應的文件。但不論表采用何種存儲引擎,MySQL都有一個以 frm為后綴名的文件,這個文件記錄了該表的表結構定義。frm還用來存放視圖的定義,如用戶創建了一個v_a視圖,那么對應地會產生v_a.frm文件

    3.6 InnoDB存儲引擎文件

    與InnoDB存儲引擎密切相關的文件,這些文件包括重做日志文件、表空間文件。

    表空間文件

    InnoDB采用將存儲的數據按表空間(tablespace)進行存放的設計。在默認配置 下會有一個初始大小為10MB,名為ibdatal的文件。該文件就是默認的表空間文件 (tablespace file)

    設置innodb_data_file_path參數后,所有基于InnoDB存儲引擎的表的數據都會記錄到該共享表空間中。若設置了參數innodb_Ele_per_table,則用戶可以將每個基于 InnoDB存儲引擎的表產生一個獨立表空間。獨立表空間的命名規則為:表名.ibd。通過 這樣的方式,用戶不用將所有數據都存放于默認的表空間中。下面這臺MySQL數據庫 服務器設置了 innodb_file_per_table,故可以觀察到:

    SHOW VARIABLES LIKE 'innodb_file_per_table'\G

    這些單獨的表空間文件僅存儲該表的數據、索引和插入緩沖BITMAP等信息,其余信息還是存放在默認的表空冋中。

    3.6.2重做日志文件

    在默認情況下,在InnoDB存儲引擎的數據目錄下會有兩個名為ib_logfile0和ib_ logfile1的文件。它們記錄了對于InnoDB存儲引擎的事務日志。主機掉電導致實例失敗,InnoDB存儲引擎會使用重做日志恢復到掉電前的時刻,以此來保證數據的完整性。每個InnoDB存儲引擎至少有1個重做日志文件組(group),每個文件組下至少有 2個重做日志文件,如默認的ibJogfile0和ibJogfile1為了得到更高的可靠性,

    innodb_log_file_size指定每個重做日志文件的大小。1.2.x版本將該限制擴大為了 512G

    innodb_log_files_in_group指定了日志文件組中重做日志文件的數量,默認為 2參數

    innodb_mirrored_log_groups指定了日志鏡像文件組的數量,默認為1,表示只 有一個日志文件組,沒有鏡像

    innodb_log_group_home_dir指定了日志文 件組所在路徑,默認為./,表示在MySQL數據庫的數據目錄下

    innodb_flush_log_at_trx_commit設置為1,因此為了保證事務的ACID中的持久性,也就是每當有事務提交時,就必須確保事務都已經寫入重做日志文件

    第4章 表

    4.1索引組織表

    在InnoDB存儲引擎中,表都是根據主鍵順序組織存放的,這種存儲方式的表稱為索引組織表(index organized tabl,每張表都有個主鍵 (Primary Key),如果在創建表時沒有顯式地定義主鍵,則InnoDB存儲引擎會按如下方 式選擇或創建主鍵:首先判斷表中是否有非空的唯一索引(Unique NOT NULL),如果有,則該列即為主鍵。如果不符合上述條件,InnoDB存儲引擎自動創建一個6字節大小的指針。當表中有多個非空唯一索引時,InnoDB存儲引擎將選擇建表時第一個定義的非空唯 一索引為主鍵

    通過下面的SQL語句判斷表的主鍵值

    SELECT a,b,c,_rowid FROM z;

    rowid可以顯示表的主鍵,rowid R能用于查看單個列為主鍵的情況如:

    4.2 InnoDB邏輯存儲結構

    從InnoDB存儲引擎的邏輯存儲結構看,所有數據都被邏輯地存放在一個空間中,稱 之為表空間(tablespace)。表空間又由段(segment)>區(extent)、頁(page)組成。頁在 一些文檔中有時也稱為塊(block)

    4.2.1 表空間

    默認情況下InnoDB存儲引擎有一個共享表空間ibdatal, 即所有數據都存放在這個表空間內。如果用戶啟用了參數innodb_file_per_table,則每張表內的數據可以單獨放到一個表空間內。每張表的表空間內存放的只是數據、索引和插入緩沖Bitmap頁,其他類的數據,如回滾(undo)信息,插入緩沖 索引頁、系統事務信息,二次寫緩沖(Double write buffer)等還是存放在原來的共享表空間內。?

    4.2.2 段

    表空間是由各個段組成的,常見的段有數據段、索引段、回滾段等。因為前面已經介紹過了 InnoDB存儲引擎表是索引組織的(index organized),因此數據即索引,索引即數據。那么數據段即為B+樹的葉子節點(圖4-1的Leaf node segment), 索引段即為B+樹的非索引節點(圖4-1的Non-leaf node segment),回滾段較為特殊,后面單獨介紹。

    4.2.3 區

    區是由連續頁組成的空間,在任何情況下每個區的大小都為1MB。為了保證區中頁 的連續性,InnoDB存儲引擎一次從磁盤申請4~5個區。在默認情況下,InnoDB存儲引擎頁的大小為16KB,即一個區中一共有64個連續的頁。InnoDB 1.0.x版本開始引入壓縮頁,即每個頁的大小可以通過參數KEY_BLOCK_ SIZE設置為2K、4K、8K,因此每個區對應頁的數量就應該為512、256、128。InnoDB 1.2.x版本新增了參數innodb_page_size.通過該參數可以將默認頁的大小設置為4K、8K,但是頁中的數據不是壓縮。這時區中頁的數量同樣也為256、128。總之, 不論頁的大小怎么變化,區的大小總是為IM.在每個段開始時,先用32個頁大小的碎片頁(fragment page)來存放數據, 在使用完這些頁之后才是64個連續頁的申請。這樣做的目的是,對于一些小表,在開始時申請較少的空間,節省磁盤容量的開銷。

    4.2.4 頁

    頁是InnoDB 磁盤管理的最小單位。在InnoDB存儲引擎中,默認每個頁的大小為16KB。而從 InnoDB 1.2.x版本開始,可以通過參數innodb_page_size將頁的大小設置為4K、8K、 16K。若設置完成,則所有表中頁的大小都為innodb_page_size,不可以對其再次進行修改。常見的頁類型有:

    • 數據頁(B-treeNode)

    • undo 頁(undo Log Page)

    • 系統頁(System Page)

    • 事務數據頁(Transaction system Page)

    • 插入緩沖位圖頁(Insert Buffer Bitmap )

    • 插入緩沖空閑列表頁(Insert Buffer Free List)

    • 未壓縮的二進制大對象頁(Uncompressed BLOB Page)

    • 壓縮的二進制大對象頁(compressed BLOB Page)

    4.2.5 行

    InnoDB存儲引擎是面向列的(row-oriented),也就說數據是按行進行存放的。

    4.3 InnoDB行記錄格式

    InnoDB存儲引擎是以行的形式存儲的。這意味著頁中保存著表中一行行的數據。在InnoDB 1.0.x版本之前,提供了 Compact和Redundant兩種格式來存放行記錄數據,在MySQL 5.1版本中,默認設置為Compact行格式。查看當前表使用的行格式

    SHOW TABLE STATUS like 'user'\G
    Compressed 和 Dynamic 行記錄格式

    InnoDB 1.0.x版本開始引入了新的文件格式稱為Barracuda 文件格式。Barracuda文件格式下擁有兩種新的行記錄格式:Compressed和Dynamic。

    4.4 InnoDB數據頁結構

    頁是InnoDB存儲引擎管理數據庫的最小磁盤單位。頁類型為B-treeNode的頁存放的即是表中行的實際數據了。在這一節中,我們將從底層具體地介紹InnoDB數據頁的內部存儲結構。

    4.4.1 File Header

    記錄頁的一些頭信息,共占用38字節。

    4.4.2 Page Header

    該部分用來記錄數據頁的狀態信息,由14個部分組成,共占用56字節

    4.4.3 Infimum 和 Supremum Record

    每個數據頁中有兩個虛擬的行記錄,用來限定記錄的邊界。Infimum記錄是比該頁中任何主鍵值都要小的值,Supremum指比任何可能大的值還要大的值。

    4.4.4 User Record 和 Free Space

    實際存儲行記錄的內容。再次強調,InnoDB 存儲引擎表總是B+樹索引組織的。Free Space很明顯指的就是空閑空間,同樣也是個鏈表數據結構。

    4.4.5 Page Directory

    存放了記錄的相對位置(存放的是頁相對位置,而不是偏移量)由于在InnoDB存儲引擎中Page Direcotry是稀疏目錄,二叉査找的結果只是一個粗略的結果,因此InnoDB存儲引擎必須通過recorder header中的next_record來繼續査找相關記錄。

    需要牢記的是,B+樹索引本身并不能找到具體的一條記錄,能找到只是該記錄所在的頁。數據庫把頁載入到內存,然后通過Page Directory再進行二叉査找。只不過二 叉查找的時間復雜度很低,同時在內存中的査找很快

    4.4.6 File Trailer

    為了檢測頁是否已經完整地寫入磁盤(如可能發生的寫入過程中磁盤損壞、機器關 機等),InnoDB存儲引擎的頁中設置了 File Trailer部分。保證頁的完整性(not corrupted)。

    4.7視圖

    在MySQL數據庫中,視圖(View)是一個命名的虛表,視圖中的數據沒有實際的物理存儲。

    4.8分區表

    4.8.1分區概述分區功能并不是在存儲引擎層完成的,分區的過程是將一個表或索引分解為多個更小、更可管理的部分。MySQL 數據庫的分區是局部分區索引,一個分區中既存放了數據又存放了索引。而全局分區是指,數據存放在各個分區中,但是所有數據的索引放在一個對象中。目前,MySQL數據不支持全局分區。查看當前數據庫是否啟用了分區功能:

    SHOW VARIABLES LIKE '%partition%'\G

    幾種類型的分區。

    • RANGE分區:行數據基于屬于一個給定連續區間的列值被放入分區。5.5 開始支持RANGE COLUMNS的分區。

    • LIST分區:和RANGE分區類型,只是LIST分區面向的是離散的值。5.5 開始支持LIST COLUMNS的分區。

    • HASH分區:根據用戶自定義的表達式的返回值來進行分區,返回值不能為負數。

    • KEY分區:根據MySQL數據庫提供的哈希函數來進行分區。

    不論創建何種類型的分區,如果表中存在主鍵或唯一索引時,分區列必須是唯一索 引的一個組成部分

    4.8.2分區類型

    PARTITION BY RANGE (id)(PARTITION p0 VALUES LESS THAN (10),PARTITION p1 VALUES LESS THAN (20));PARTITION BY LIST(b)(PARTITION p0 VALUES IN (1,3,5,7,9),PARTITION p1 VALUES IN (0,2,4,6,8));PARTITION BY HASH (YEAR(b))PARTITIONS 4;PARTITION BY KEY (b)PARTITIONS 4;

    第5章索引與算法

    5.1 InnoDB存儲引擎索引概述

    幾種常見的索引:

    • B+樹索引

    • 全文索引

    • 哈希索引

    InnoDB存儲引擎支持的哈希索引是自適應的,InnoDB存儲引擎會根據表的使用情況自動為表生成哈希索引B+樹索引就是傳統意義上的索引,這是目前關系型數據庫系統中最有效的索引。

    B+樹索引并不能找到一個給定鍵值的具體行。B+樹索引能找到的只是被査找數據行所在的頁。然后數據庫通過把頁讀入到內存,再在內存中進行查找,最后得到要查找的數據。

    5.4 B+樹索引

    B+樹索引的本質就是B+樹在數據庫中的實現。但B+索引在數據庫中有一個特點是高扇出性,因此在數據庫中,B+ 樹的高度一般都在2-4層數據庫中的B+樹索引可以分為聚集索引(clustered inex)和輔助索引(secondary index)。其內部都是B+樹的,即高度平衡的,葉子 節點存放著所有的數據。聚集索引與輔助索引不同的是,葉子節點存放的是否是一整行的信息。

    5.4.1聚集索引

    InnoDB存儲引擎表是索引組織表,即表中數據按照主鍵順序存 放。而聚集索引(clustered index)就是按照每張表的主鍵構造一棵B+樹,同時葉子節點中存放的即為整張表的行記錄數據,也將聚集索引的葉子節點稱為數據頁。聚集索引 的這個特性決定了索引組織表中數據也是索引的一部分。同B+樹數據結構一樣,每個數據頁都通過一個雙向鏈表來進行鏈接。由于實際的數據頁只能按照一棵B+樹進行排序,因此每張表只能擁有一個聚集索引。

    在多數情況下,查詢優化器傾向于采用聚集索引。因為聚集索引能夠在B+樹索引 的葉子節點上直接找到數據。能夠特別快 地訪問針對范圍值的查詢。

    數據頁上存放的是完整的每行的記錄, 而在非數據頁的索引頁中,存放的僅僅是鍵值及指向數據頁的偏移量,而不是一個完整的行記錄。

    聚集索引的存儲并不是物理上連續的,而是邏輯上連續的。這其中有兩點:一是頁通過雙向鏈表鏈接,頁按照主鍵的順序排序;另一點是每個頁中的記錄也是通過雙向鏈表進行維護的,物理存儲上可以同樣不按照主鍵存儲。

    5.4.2 輔助索引

    對于輔助索引(Secondary Index,也稱非聚集索引),葉子節點并不包含行記錄的全部數據。葉子節點除了包含鍵值以外,每個葉子節點中的索引行中還包含了一個書簽 (bookmark),輔助索引的書簽就是相應行數據的聚集索引鍵。

    輔助索引的存在并不影響數據在聚集索引中的組織,因此每張表上可以有多個輔助索引。

    當通過輔助索引來尋找數據時,InnoDB存儲引擎會遍歷輔助索引并通過頁級別的指針,獲得指向主鍵索引的主鍵,然后再通過主鍵索引來找到一個完整的行記錄。

    5.4.4 B+樹索引的管理

    1 .索引管理索引的創建和刪除可以通過兩種方法,一種是ALTER TABLE,另一種是CREATE/ DROP INDEX.

    ALTER TABLE user ADD KEY idx_id (id); SHOW INDEX FROM user;ALTER TABLE user DROP INDEX idx_id ;create index idx_id on user(id);drop index idx_id on user;#聯合索引ALTER TABLE user ADD KEY idx_id_bc (id,bc);mysql> show index from user\G*************************** 1. row *************************** Table: user Non_unique: 1 Key_name: idx_id Seq_in_index: 1 Column_name: id Collation: A #A或者null,B+樹總是A,即排序的 Cardinality: 1 #表示索引中唯一值的數目的估值,應盡可能接近1 Sub_part: NULL Packed: NULL Null: Index_type: BTREE Comment: Index_comment:?

    優化器會根據Cardinality值來判斷是否使用這個索引, 但他不是實時更新的,更新

    analyze table user\G
    5.5 Cardinality 值

    什么時候添加B+樹索 取值的范圍很小,稱為低選擇性,這時添加B+樹索引是完全沒有必要的。

    取值范圍很廣,幾乎沒有重復,即屬于高選擇性,使用B+樹索引是最適合的

    Cardinality值非常關鍵,表示索引中不重復記錄數量的預估值。是一個預估值,而不是一個準確值,應盡可能地接近1。

    怎樣來統計Cardinality信息的呢?

    數據庫對于Cardinality的統計都是通過采樣(Sample)的方法來完成的。Cardinality統計信息的更新發生在兩個操作中:INSERT 和UPDATE。更新Cardinality 的策略為:

  • 表中1/16的數據已發生過變化。

  • stat_modified_counter > 2000000000

  • 怎樣來進行Cardinality信息的統計和更新操作?

    同樣是通過采樣的方法。默認InnoDB存儲引擎對8個葉子節點(Leaf Page)進 行采用。采樣的過程如下:

  • 取得B+樹索引中葉子節點的數量,記為A。

  • 統計每個頁不同記錄的個數,即為P1,…P8。

  • 給出 Cardinality 的預估值:Cardinality= (P1+P2+...+P8) *A/8。

  • 5.6 B+樹索引的使用

    5.6.1不同應用中B+樹索引的使用

    B+樹索引建立后,對該索引的使用應該只是通過該索引取得表中少部分的數據。這時建立B+樹索引才是有意義的,否則即使建立了,優化器也可能選擇不使用索引。

    5.6.2聯合索引

    聯合索引是指對表上的多個列進行索引。

    CREATE TABLE t (a INT,b INT,PRIMARY KEY (a),KEY idx_a_b (a,b))ENGINE=INNODB

    聯合索引也是一棵 B+樹,不同的是聯合索引的鍵值的數量不是1,而是大于等于2。

    和單個鍵值的B+樹 并沒有什么不同,鍵值都是排序的,通過葉子節點可以邏輯上順序地讀出所有數據

    數據按(a, b)的順序進行了存放。對于b列的査詢使用不到(a, b)的索引。聯合索引的第二個好處是已經對第二個鍵值進行了排序處理。索引本身在葉子節點已經排序了。

    5.6.3覆蓋索引

    InnoDB存儲引擎支持覆蓋索引,即從輔助索引中就可以得到査詢的記錄,而不需要査詢聚集索引中的記錄。好處是輔助索引不包含整行記錄的所有信息,故其大小要遠小于聚集索引,因此可以減少大量 的IO操作。

    對于InnoDB存儲引擎的輔助索引而言,由于其包含了主鍵信息

    SELECT COUNT (*) FROM buy_logInnoDB存儲引擎并不會選擇通過查詢聚集索引來進行統計。由于buy_log表上還有輔助索引,而輔助索引遠小于聚集索引,選擇輔助索引可以減少IO操作,故優化器的選擇為userid索引,而列Extra列的Using index就是代表了優化器進行了覆蓋索引操作。

    5.6.4優化器選擇不使用索引的情況

    優化器并沒有選擇索引去査找數據,而是通過掃描聚集索引,也就是直接進行全表的掃描來得到數據。這種情況多發生于范圍查找、JOIN鏈接操作等情況下。

    用戶要選取的數據是整行信息,而輔助索引不能覆蓋到我們要査詢的信息,因此在對OrderlD索引查詢到指定數據后,還需要一次書簽訪問來査找整行數據的信息。雖然OrderlD索引中數據是順序存放的,但是再一次進行書簽查找的數據則是無序的,因此變為了磁盤上的離散讀操作。

    如果要求訪問的數據量很小,則優化器還是會選擇輔助索引,但是當訪問的數據占整個表中數據的蠻大一部分時 (一般是20%左右),優化器會選擇通過聚集索引來査找數據。因為順序讀要遠遠快于離散讀。

    因此對于不能進行索引覆蓋的情況,優化器選擇輔助索引的情況是,通過輔助索引 查找的數據是少量的。也可以強制使用輔助索引

    select * from t force index(id) where id >10000 nad id <10200;
    5.6.5索引提示
    SELECT * FROM t USE INDEX(a) WHERE a=l AND b = 2;
    5.6.6 Multi-Range Read 優化

    目的就是為了減少磁盤的隨機訪問,并且將隨機訪問轉化為較為順序的數據訪問,適用于range, ref, eq_ref類型的查詢。好處:

    • MRR使數據訪問變得較為順序

    • 減少緩沖池中頁被替換的次數

    • 批量處理對鍵值的査詢操作

    MRR的工作方式如下:

    • 將査詢得到的輔助索引鍵值存放于一個緩存中,這時緩存中的數據是根據輔助索 引鍵值排序的。

    • 將緩存中的鍵值根據RowID進行排序。

    • 根據RowID的排序順序來訪問實際的數據文件。

    在列Extra會看見Using MRR選項。

    若啟用了 Multi-RangeRead優化,優化器會先將査詢條件進行拆分,然后再進行數據査詢。優化器會將查詢條件拆分為(1000, 1000), (1001, 1000),...最后再根據這些拆分出的條件進行數據的査詢。

    5.6.7 Index Condition Pushdown (ICP)優化

    根據索引進行査詢的優化方式。之前的MySQL進行索引査詢時,首先根據索引來查找記錄,然后再根據WHERE條件來過濾記錄。在支持Index Condition Pushdown后,MySQL數據庫會在取出索引的同時, 判斷是否可以進行WHERE條件的過濾,也就是將WHERE的部分過濾操作放在了存儲引擎層。在某些查詢下,可以大大減少上層SQL層對記錄的索取(fetch),從而提高數 據庫的整體性能。

    當優化器選擇Index Condition Pushdown優化時, 在Extra看到Using index condition提示。

    5.7哈希算法

    5.7.1 哈希表

    哈希表技術很好地解決了直接尋址遇到的問題,但是會碰撞,在數據庫中一般采用最簡單的碰撞解決技術,這種技術被稱為鏈接法 (chaining).

    在鏈接法中,把散列到同一槽中的所有元素都放在一個鏈表中,槽i中有一個指針,它指向由所有散列到i的元素構成的鏈表的頭;如果不存在這樣的元素, 則i中為NULL

    5.7.2 InnoDB存儲引擎中的哈希算法

    InnoDB存儲引擎使用哈希算法來對字典進行查找,其沖突機制采用鏈表方式,哈希函數采用除法散列方式。

    對于緩沖池頁的哈希表來說,在緩沖池中的頁都有一個chain指針,它指向相同哈希函數值的頁。而對于除法散列,m的取值為略大于2倍的緩沖池頁數量的質數。例如:當前參數innodb_buffer_pool_size的大小為10M,則共有 640個16KB的頁。對于緩沖池頁內存的哈希表來說,需要分配640X2=1280個槽,但 是由于1280不是質數,需要取比1280略大的一個質數,應該是1399,所以在啟動時會 分配1399個槽的哈希表,用來哈希查詢所在緩沖池中的頁。那么InnoDB存儲引擎的緩沖池對于其中的頁是怎么進行査找的呢?上面只是給出 了一般的算法,怎么將要查找的頁轉換成自然數呢?其實也很簡單,InnoDB存儲引擎的表空間都有一個space_id,用戶所要査詢的應該 是某個表空間的某個連續16KB的頁,即偏移量offset。InnoDB存儲引擎將space_id左 移 20 位,然后加上這個 space_id 和 offset,即關鍵字 K=space_i<<20+space_id+offset, 然后通過除法散列到各個槽中去。

    5.7.3自適應哈希索引

    自適應哈希索引是數據庫自身創建并使用的,自適應哈希索引經哈希函數映射到一個哈希表中,因此對于字典類型的査找非常快速,但是對于范圍査找就無能為力了。

    哈希索引只能用來搜索等值的査詢

    innodb_adaptive_hash_index來禁用或啟動此特性,默認為開啟。

    5.8全文檢索

    5.8.1概述

    B+樹索引可以通過索引字段的前綴 (prefix)進行查找。比如 a like 'xxx%',只要a添加了 B+ 樹索引,就能利用索引進行快速査詢。但是 a like '%xxx%'就不行了根據B+樹索引的特性,上述SQL語句即便添加了 B+樹索引也是需要進行索引的掃描來得到結果。

    從InnoDB 1.2.x版本開始,InnoDB存儲引擎開始支持全文檢索,其支持MylSAM存儲引擎的全部功能

    SELECT * FROM fts_a WHERE body LIKE '%Pease%';SELECT * FROM fts_a WHERE MATCH(body) AGAINST ('Pease'):

    type這列顯示了 fulltext,即表示使用全文檢索的倒排索引,而key這 列顯示了 idx_Rs,表示索引的名字。

    第六章 鎖

    開發多用戶、數據庫驅動的應用時,最大的一個難點是:一方面要最大程度地利用數據庫的并發訪問,另外一方面還要確保每個用戶能以一致的方式讀取和修改數據。為 此就有了鎖(locking)的機制

    6.1什么是鎖

    鎖是數據庫系統區別于文件系統的一個關鍵特性。鎖機制用于管理對共享資源的并發訪問,InnoDB存儲引擎會在行級別上對表數據上鎖,數據庫系統使用鎖是為了支持對共享資源進行并發訪問, 提供數據的完整性和一致性。

    對于MylSAM引擎,其鎖是表鎖設計。并發情況下的讀沒有問題,但是并發插入時的性能就要差一些了InnoDB存儲引擎鎖的實現提供一致性的非鎖定讀、行級鎖支持。行級鎖沒有相關額外的開銷,并可以同時得到并發性和一致性。

    6.2 lock 與 latch

    latch一般稱為閂鎖(輕量級的鎖),因為其要求鎖定的時間必須非常短。若持續的時間長,則應用的性能會非常差。在InnoDB存儲引擎中,latch又可以分為mutex (互斥量)和rwlock (讀寫鎖)。其目的是用來保證并發線程操作臨界資源的正確性,并且通常沒有死鎖檢測的機制。

    lock的對象是事務,用來鎖定的是數據庫中的對象,如表、頁、行。并且一般lock 的對象僅在事務commit或rollback后進行釋放(不同事務隔離級別釋放的時間可能不同)。此外,lock是有死鎖機制的

    show engine innodb mutex;#latch

    6.3 InnoDB存儲引擎中的鎖

    6.3.1鎖的類型

    InnoDB存儲引擎實現了如下兩種標準的行級鎖:

    • 共享鎖(SLock),允許事務讀一行數據。

    • 排他鎖(XLock),允許事務刪除或更新一行數據。

    如果一個事務T1已經獲得了行r的共享鎖,那么另外的事務T2可以立即獲得行r 的共享鎖,因為讀取并沒有改變行r的數據,稱這種情況為鎖兼容(Lock Compatible)。但若有其他的事務T3想獲得行r的排他鎖,則其必須等待事務Tl、T2釋放行r上的共享鎖——這種情況稱為鎖不兼容。S和X鎖都是行鎖,兼容是指對同一記錄(row)鎖的兼容性情況。

    此外,InnoDB存儲引擎支持多粒度(granular)鎖定,這種鎖定允許事務在行級上的鎖和表級上的鎖同時存在。

    為了支持在不同粒度上進行加鎖操作,InnoDB存儲引擎支持 一種額外的鎖方式,稱之為意向鎖(Intention Lock)。

    意向鎖是將鎖定的對象分為多個層次,意向鎖意味著事務希望在更細粒度(fine granularity)上進行加鎖

    6.3.2 一致性非鎖定讀

    一致性的非鎖定讀是指InnoDB存儲引擎通過行多版本控制(multi versioning)的方式來讀取當前執行時間數據庫中 行的數據。如果讀取的行正在執行DELETE或UPDATE操作,這時讀取操作不會因此去等待行上鎖的釋放。而是會去讀取行的一個快照數據。快照數據是指該行的之前版本的數據,該實現是通過undo段來完成。非鎖定讀機制極大地提高了數據庫的并發性。這是默認的讀取方式,即讀取不會占用和等待表上的鎖。

    但是在不同事務隔離級別下,讀取的方式不同,并不是在每個事務隔離級別下都是采用非鎖定的一致性讀。

    快照數據其實就是當前行數據之前的歷史版本,每行記錄可能有多個版本。一個行記錄可能有不止一個快照數據,一般稱這種技術為行多版本技術。由此帶來的并發控制,稱之為多版本并發控制(Multi Version Concurrency Control. MVCC)。

    在事務隔離級別READ COMMITTED和REPEATABLE READ (默認事務隔離級別)下,InnoDB存儲引擎使用非鎖定的一致性讀。然而,對于快照數據的定義卻不相同。在READ COMMITTED事務隔離級別下,對于快照數據,非一致 性讀總是讀取被鎖定行的最新一份快照數據。而在REPEATABLE READ事務隔離級別 下,對于快照數據,非一致性讀總是讀取事務開始時的行數據版本。

    6.3.3 一致性鎖定讀

    即事務的隔離級別為REPEATABLE READ模 式下,InnoDB存儲引擎的SELECT操作使用一致性非鎖定讀。但是在某些情況下,用戶需要顯式地對數據庫讀取操作進行加鎖以保證數據邏輯的一致性。而這要求數據庫支持加鎖語句,即使是對于SELECT的只讀操作。持兩種一致性的鎖定讀(locking read)操作:

    SELECT...FOR UPDATESELECT...LOCK IN SHARE MODE

    SELECT...FOR UPDATE對讀取的行記錄加一個X鎖,其他事務不能對已鎖定的行加上任何鎖。

    SELECT...LOCK IN SHARE MODE對讀取的行記錄加一個S鎖,其他事務可以向被鎖定的行加S鎖,但是如果加X鎖,則會被阻塞。

    6.3.4自増長與鎖

    在InnoDB存儲引擎的內存結構中,對每個含有自增長值的表都有一個自增長計數器(auto-increment counter),當對含有自增長的計數器的表進行插入操作時,這個計數器會被初始化,執行如下的語句來得到計數器的值:

    SELECT MAX(auto_inc_col) FROM t FOR UPDATE;

    插入操作會依據這個自增長的計數器值加1賦予自增長列。這個實現方式稱做 AUTO-INC Locking.這種鎖其實是采用一種特殊的表鎖機制,為了提高插入的性能,鎖不是在一個事務完成后才釋放,而是在完成對自增長值插入的SQL語句后立即釋放。

    6.5鎖問題

    6.5.1臟讀

    臟頁指的是在緩沖池中已經被修改的頁,但是還沒有刷新到磁盤中,即數據庫實例內存中的頁和磁盤中的頁的數據是不一致的,當然在刷新到磁盤之前,日志都已經被寫入到了重做日志文件中。

    臟數據是指事務對緩沖池中行記錄的修改,并且還沒有被提交。

    對于臟頁的讀取,是非常正常的。臟頁是因為數據庫實例內存和磁盤的異步造成的, 這并不影響數據的一致性(或者說兩者最終會達到一致性,即當臟頁都刷回到磁盤)。并且因為臟頁的刷新是異步的,不影響數據庫的可用性,因此可以帶來性能的提高。

    臟數據是指未提交的數據,如果讀到了臟數據,即一個事務可臟讀指的就是在不同的事務下,當前事務可以讀到另外事務未提交的數據,簡單來說就是可以讀到臟數據。違反了事務的隔離性。

    6.5.2不可重復讀

    不可重復讀是指在一個事務內多次讀取同一數據集合。在這個事務還沒有結束時, 另外一個事務也訪問該同一數據集合,并做了一些DML操作。在第一個事務中的兩次讀數據之間,由于第二個事務的修改,發生了在一個事務內兩次讀到的數據是不一樣的情況,這種情況稱為不可重復讀。

    不可重復讀和臟讀的區別是:臟讀是讀到未提交的數據,而不可重復讀讀到的卻是已經提交的數據,但是其違反了數據庫事務一致性的要求。InnoDB存儲引擎的默認事務隔離級別是READ REPEATABLE,采用Next-Key Lock算法,避免了不可重復讀的現象。

    6.5.3丟失更新

    丟失更新是另一個鎖導致的問題,簡單來說其就是一個事務的更新操作會被另一個事務的更新操作所覆蓋,從而導致數據的不一致。

    6.6阻塞

    因為不同鎖之間的兼容性關系,在有些時刻一個事務中的鎖需要等待另一個事務中的鎖釋放它所占用的資源,這就是阻塞。阻塞并不是一件壞事,其是為了確保事務可以 并發且正常地運行。innodb_lock_wait_timeout用來控制等待的時間(默認 是50秒)

    innodb_rollback_on_timeout用來設定是否在等待超時時對進行中的事務進行回滾操作(默認是OFF,代表不回滾)。

    6.7死鎖

    6.7.1死鎖的概念

    死鎖是指兩個或兩個以上的事務在執行過程中,因爭奪鎖資源而造成的一種互相等待的現象。

    解決死鎖問題最簡單的一種方法是超時,即當兩個事務互相等待時,當一個等待時間超過設置的某一閾值時,其中一個事務進行回滾,另一個等待的事務就能繼續進行。參數innodb_lock_wait_timeout用來設置超時的時間。

    除了超時機制,當前數據庫還都普遍采用wait-for graph (等待圖)的方式來進行死鎖檢測。較之超時的解決方案,這是一種更為主動的死鎖檢測方式。

    6.8鎖升級

    鎖升級(Lock Escalation)是指將當前鎖的粒度降低。舉例來說,數據庫可以把一 個表的1000個行鎖升級為一個頁鎖,或者將頁鎖升級為表鎖。如果在數據庫的設計中認為鎖是一種稀有資源,而且想避免鎖的開銷,那數據庫中會頻繁出現鎖升級現象。

    InnoDB存儲引擎不存在鎖升級的問題。因為其不是根據每個記錄來產生行鎖的,相反,其根據每個事務訪問的每個頁對鎖進行管理的,采用的是位圖的方式。因此不管一 個事務鎖住頁中一個記錄還是多個記錄,其開銷通常都是一致的。

    第7章 事務

    數據庫系統引入事務的主要目的:事務會把數據庫從一種一致狀態轉換為另 一種一致狀態。在數據庫提交工作時,要么所有修改都已經保存了,要么所有修改都不保存。InnoDB存儲引擎中的事務完全符合ACID的特性:

    • 原子性(atomicity)

    • 一致性(consistency)

    • 隔離性(isolation )

    • 持久性(durability)

    7.1認識事務

    7.1.1概述

    事務是訪問并更新數據庫中各種數據項的一個程序執行單元。在事務中的操作,要么都做修改,要么都不做,這就是事務的目的,也是事務模型區別與文件系統的重要特 征之一。

    原子性。只有使事務中所有的數據庫操作都執行成功,才算整個事務成功。事務中任何一個SQL語句執行失敗,已經執行成功的 SQL語句也必須撤銷,數據庫狀態應該退回到執行事務前的狀態。一致性。一致性指事務將數據庫從一種狀態轉變為下一種一致的狀態。在事務開始之前和事務結束以后,數據庫的完整性約束沒有被破壞,事務是一致性的單位,如果事務中某個動作失敗了,系統可以自動撤銷事務——返 回初始化的狀態。隔離性。隔離性還有其他的稱呼,如并發控制(concurrency control)、 可串行化(serializability)、鎖(locking)等。事務的隔離性要求每個讀寫事務的對象對其他事務的操作對象能相互分離,即該事務提交前對其他事務都不可見,通常這使用鎖來實現。當前數據庫系統中都提供了一種粒度鎖(granular lock)的策略,允許事務僅鎖住一個實體對象的子集,以此來提高事務之間的并發度。持久性。事務一旦提交,其結果就是永久性的。即使發生宕機等故障,數據庫也能將數據恢復。

    7.1.2分類

    從事務理論的角度來說,可以把事務分為以下兒種類型:扁平事務(Flat Transaction),所有操作都處于同一層次,其由BEGIN WORK開始,由COMMIT WORK或ROLLBACK WORK結束,其間的操作是原子的,要么都執行,要么都回滾。因此扁平事務是應用程序成為原子操作的基本組成模塊。

    扁平事務的主要限制是不能提交或者回滾事務的某一部分,或分幾個步驟提交。

    帶有保存點的扁平事務(Flat Transactions with Savepoint),除了支持扁平事務支 持的操作外,允許在事務執行過程中回滾到同一事務中較早的一個狀態。保存點(Savepoint)用來通知系統應該記住事務當前的狀態,以便 當之后發生錯誤時,事務能回到保存點當時的狀態。

    鏈事務(Chained Transaction)可視為保存點模式的一種變種。鏈事務的思想是:在提交一個事務時,釋放不需要的數據對象,將必要的處理上下 文隱式地傳給下一個要開始的事務。注意,提交事務操作和開始下一個事務操作將合并為一個原子操作。鏈事務與帶有保存點的扁平事務不同的是,帶有保存點的扁平事務能回滾到任意正 確的保存點。而鏈事務中的回滾僅限于當前事務,即只能恢復到最近一個的保存點。

    嵌套事務(Nested Transaction)是一個層次結構框架。由一個頂層事務(top- level transaction)控制著各個層次的事務。頂層事務之下嵌套的事務被稱為子事務 (subtransaction),其控制每一個局部的變換。

    分布式事務(Distributed Transactions)通常是一個在分布式環境下運行的扁平事務,因此需要根據數據所在位置訪問網絡中的不同節點。對于分布式事務,其同樣需要滿足ACID特性,要么都發生,要么都失效。

    7.2事務的實現

    事務隔離性鎖來實現。

    原子性、一致性、持久性通過數據庫的redo log和undo log來完成。redo log稱為重做日志,用來保證事務的原子性和持久性。undo log用來保證事務的一致性。redo恢復提交事務修改的頁操作,而undo回滾行記錄到某個特定版本。因此兩者記錄的內容不同,redo通常是物理日志,記錄的是頁的物理修改操作。undo是邏輯日志,根據每行記錄進行記錄。

    7.2.1 redo

    1.基本概念重做日志用來實現事務的持久性,由兩部分組成:一是內存中的重做日志緩沖(redo log buffer),其是易失的;二是重做日志文件(redo log file), 其是持久的。

    InnoDB是事務的存儲引擎,其通過Force Log at Commit機制實現事務的持久性,即當事務提交(COMMIT)時,必須先將該事務的所有日志寫入到重做日志文件進行持久化,待事務的COMMIT操作完成才算完成。這里的日志是指重做日志,在 InnoDB存儲引擎中,由兩部分組成,即redo log和undo log。redo log用來保證事務的持久性,undo log用來幫助事務回滾及MVCC的功能。redo log基本上都是順序寫的, 在數據庫運行時不需要對redo log的文件進行讀取操作。而undo log是需要進行隨機讀寫的。

    為了確保每次日志都寫入重做日志文件,在每次將重做日志緩沖寫入重做日志文件后,InnoDB存儲引擎都需要調用一次fsync操作。由于重做日志文件打開并沒有使用 O_DIRECT選項,因此重做日志緩沖先寫入文件系統緩存。為了確保重做日志寫入磁盤,必須進行一次fsync操作。由于fsync的效率取決于磁盤的性能,因此磁盤的性能確定了事務提交的性能,也就是數據庫的性能。

    InnoDB存儲引擎允許用戶手工設置非持久性的情況發生,以此提高數據庫的性能。即當事務提交時,日志不寫入重做日志文件,而是等待一個時間周期后再執行fsync操 作。由于并非強制在事務提交時進行一次fsync操作,顯然這可以顯著提高數據庫的性能。但是當數據庫發生宕機時,由于部分日志未刷新到磁盤,因此會丟失最后一段時間的事務。參數innodb_flush_log_at_trx_commit用來控制重做日志刷新到磁盤的策略。該參數 的默認值為1,表示事務提交時必須調用一次fsync操作。還可以設置該參數的值為0和 2。表示事務提交時不進行寫入重做日志操作,這個操作僅在master thread中完成,而 在master thread中每1秒會進行一次重做日志文件的fsync操作。2表示事務提交時將 重做日志寫入重做日志文件,但僅寫入文件系統的緩存中,不進行fsync操作。在這個 設置下,當MySQL數據庫發生宕機而操作系統不發生宕機時,并不會導致事務的丟失。而當操作系統宕機時,重啟數據庫后會丟失未從文件系統緩存刷新到重做日志文件那部 分事務。

    在MySQL數據庫中還有一種二進制日志(binlog),其用來進行PONIT-IN-TIME (PIT)的恢復及主從復制(Replication)環境的建立。從表面上看其和重做日志罪常相似,都是記錄了對于數據庫操作的日志。首先,重做日志是在InnoDB存儲引擎層產生,而二進制日志是在MySQL數據庫的上層產生的,并且二進制日志不僅僅針對于InnoDB存儲引擎,MySQL數據庫中的任何存儲引擎對于數據庫的更改都會產生二進制日志。其次,兩種日志記錄的內容形式不同。MySQL數據庫上層的二進制日志是一種邏輯日志,其記錄的是對應的SQL語句。而InnoDB存儲引擎層面的重做日志是物理格式日志,其記錄的是對于每個頁的修改。此外,兩種日志記錄寫入磁盤的時間點不同。二進制日志只在事務提交完成后進行一次寫入。而InnoDB存儲引擎的重做日志在事務進行中不斷地被寫入, 這表現為日志并不是隨事務提交的順序進行寫入的。

    7.2.2 undo

    1 .基本概念重做日志記錄了事務的行為,可以很好地通過其對頁進行“重做”操作。但是事務有時還需要進行回滾操作,這時就需要undo.因此在對數據庫進行修改時,InnoDB存儲引擎不但會產生redo,還會產生一定量的undo。這樣如果用戶執行的事務或語句由于某種原因失敗了,又或者用戶用一條ROLLBACK語句請求回滾,就可以利用這些undo信息將數據回滾到修改之前的樣子。

    redo存放在重做日志文件中,與redo不同,undo存放在數據庫內部的一個特殊段 (segment)中,這個段稱為undo段,undo段位于共享表空間內。undo是邏輯日志,因此只是將數據庫邏輯地恢復到原來的樣子。所有修改都被邏輯地取消了,但是數據結構和頁本身在回滾之后可能大不相同。不能將一個頁回滾到事務開始的樣子,因為這樣會影響其他事務正在進行的工作。

    除了回滾操作,undo的另一個作用是MVCC,即在InnoDB存儲引擎中MVCC的 實現是通過undo來完成。當用戶讀取一行記錄時,若該記錄已經被其他事務占用,當前事務可以通過undo讀取之前的行版本信息,以此實現非鎖定讀取。最后也是最為重要的一點是,undo log會產生redo log,也就是undo log的產生會伴隨著redo log的產生,這是因為undo log也需要持久性的保護。

    7.6事務的隔離級別

    SQL標準定義的四個隔離級別為:

    • READ UNCOMMITTED

    • READ COMMITTED

    • REPEATABLE READ

    • SERIALIZABLE

    READ UNCOMMITTED稱為瀏覽訪問(browse access),僅僅針對事務而言, READ COMMITTED 稱為游標穩定, REPEATABLE READ 是 2.9999° 的隔離,沒有幻讀的保護。SERIALIZABLE稱為隔離,或3°的隔離。SQL和SQL2標 準的默認事務隔離級別是SERIALIZABLEInnoDB存儲引擎默認支持的隔離級別是REPEATABLE READ,但是與標準SQL不同的是,InnoDB存儲引擎在REPEATABLE READ事務隔離級別下,使用Next-Key Lock鎖的算法,因此避免幻讀的產生。

    InnoDB存儲引擎在默認的REPEATABLE READ的事務隔離級別下已經能完全保證事務的隔離性要求,即達到SQL標準的SERIALIZABLE隔離級別。隔離級別越低,事務請求的鎖越少或保持鎖的時間就越短。這也是為什么大多數數據庫系統默認的事務隔離級別是READ COMMITTED在InnoDB存儲引擎中,可以使用以下命令來設置當前會話或全局的事務隔離級別:如果想在MySQL數據庫啟動時就設置事務的默認隔離級別,那就需要修改MySQL 的配置文件,在[mysqld]中添加如下行:

    [mysqld]transaction-isolation = READ-COMMITTED

    查看當前會話的事務隔離級別

    SELECT @@tx_isolation\G

    査看全局的事務隔離級別

    SELECT @@global.tx_isolation\G

    7.7分布式事務

    7.7.1 MySQL數據庫分布式事務

    InnoDB存儲引擎提供了對XA事務的支持,并通過XA事務來支持分布式事務的實現。分布式事務指的是允許多個獨立的事務資源(transactional resources)參與到一個全局的事務中。事務資源通常是關系型數據庫系統,但也可以是其他類型的資源。全局事務要求在其中的所有參與的事務要么都提交,要么都回滾,這對于事務原有的ACID要 求又有了提高。另外,在使用分布式事務時,InnoDB存儲引擎的事務隔離級別必須設置 為SERIALIZABLE,XA事務允許不同數據庫之間的分布式事務,如一臺服務器是MySQL數據庫的,另 一臺是Oracle數據庫的,又可能還有一臺服務器是SQL Server數據庫的,只要參與在 全局事務中的每個節點都支持XA事務。

    分布式事務使用兩段式提交(two-phase commit)的方式。在第一階段,所有參與全局事務的節點都開始準備(PREPARE),告訴事務管理器它們準備好提交了。在第二階段,事務管理器告訴資源管理器執行ROLLBACK還是COMMIT。如果任何一個節點顯示不能提交,則所有的節點都被告知需要回滾。

    第8章備份與恢復

    8.1備份與恢復概述

    可以根據不同的類型來劃分備份的方法。根據備份的方法不同可以將備份分為:

    • Hot Backup (熱備)

    • Cold Backup (冷備)

    • Warm Backup (溫備)

    Hot Backup是指數據庫運行中直接備份,對正在運行的數據庫操作沒有任何的影響。這種方式在MySQL官方手冊中稱為Online Backup (在線備份)。Cold Backup是指備份操作是在數據庫停止的情況下,這種備份最為簡單,一般只需要復制相關的數據庫物理文件即訶。這種方式在MySQL官方手冊中稱為Offline Backup (離線備份)。Warm Backup備份同樣是在數據庫運行中進行的,但是會對當前數據庫的操作有所影響,如加 一個全局讀鎖以保證備份數據的一致性。

    按照備份后文件的內容,備份又可以分為:

    • 邏輯備份

    • 裸文件備份

    邏輯備份是指備份出的文件內容是可讀的,一般是文本 文件。內容一般是由一條條SQL語句,或者是表內實際數據組成。如mysqldump和SELECT*INTO OUTFILE的方法。這類方法的好處是可以觀察導出文件的內容,一般適 用于數據庫的升級、遷移等工作。但其缺點是恢復所需要的時間往往較長。

    裸文件備份是指復制數據庫的物理文件,既可以是在數據庫運行中的復制(如 ibbackup. xtrabackup這類工具),也可以是在數據庫停止運行時直接的數據文件復制。這類備份的恢復時間往往較邏輯備份短很多。

    若按照備份數據庫的內容來分,備份又可以分為:

    • 完全備份

    • 增量備份

    • 日志備份

    完全備份是指對數據庫進行一個完整的備份。

    增量備份是指在上次完全備份的基礎上,對于更改的數據進行備份。

    日志備份主要是指對MySQL數據庫二進制日志的備份, 通過對一個完全備份進行二進制日志的重做(replay)來完成數據庫的point-in-time的恢復工作。

    MySQL數據庫復制(replication)的原理就是異步實時地將二進制日志重做傳送并應用到從(slave/standby)數據庫。

    8.2冷備

    對于InnoDB存儲引擎的冷備非常簡單,只需要備份MySQL數據庫的fan文件,共享表空間文件,獨立表空間文件(*.ibd),重做日志文件。另外建議定期備份MySQL數據庫的配置文件my.cnf,這樣有利于恢復的操作

    冷備的優點是:

    • 備份簡單,只要復制相關文件即可。

    • 備份文件易于在不同操作系統,不同MySQL版本上進行恢復。

    • 恢復相當簡單,只需要把文件恢復到指定位置即可。

    • 恢復速度快,不需要執行任何SQL語句,也不需要重建索引。

    冷備的缺點是:

    • InnoDB存儲引擎冷備的文件通常比邏輯文件大很多,因為表空間中存放著很多其他數據

    • 冷備也不總是可以輕易地跨平臺。操作系統、MySQL的版本、文件大小寫敏感 和浮點數格式都會成為問題。

    8.3邏輯備份

    8.3.1 mysqldump

    通常用來完成轉存(dump) 數據庫的備份及不同數據庫之間的移植,如從MySQL低版本數據庫升級到MySQL高版本數據庫,又或者從MySQL數據庫移植到Oracle、Microsoft SQL Server數據庫等。mysqldump的語法如下:

    shell>mysqldump (arguments] >file_naine備份所有的數據庫,可以使用-all-databases選項:mysqldump --all-databases >dump.sql備份指定的數據庫,可以使用-databases選項:mysqldump --databases dbl db2 db3 >dump.sql如果想要對test這個架構進行備份,可以使用如下語句:mysqldump --single-transaction test >test_backup.sql
    8.3.2 SELECT...INTO OUTFILE

    SELECT...INTO語句也是一種邏輯備份的方法,更準確地說是導出一張表中的數據。

    #默認導出的文件是以TAB進行列分割的 select * into outfile '/home/mysql/a.txt' from a; cat /home/mysql/a.txt #使用其他分割符?mysql?test?-e?"select?*?into?outfile?'/home/mysql/a.txt'?fields?terminated?by?*,?*?from?a";
    8.3.3邏輯備份的恢復

    mysqldump的恢復操作比較簡單,因為備份的文件就是導出的SQL語句,一般只需要執行這個文件就可以了

    mysql -uroot -p source /home/mysql/test_backup.sql
    8.3.4 LOAD DATA INFILE

    若通過mysqldump-tab,或者通過SELECT INTO OUTFILE導出的數據需要恢復,可以通過命令LOAD DATA INFILE來進行導入。

    load data infile '/home/mysql/a.txt' into table a;

    8.4二進制日志備份與恢復

    二進制日志非常關鍵,用戶可以通過它完成point-in-time的恢復工作。MySQL數據庫的replication同樣需要二進制日志。在默認情況下并不啟用二進制日志,要使用二進制日志首先必須啟用它。如在配置文件中進行設置:

    [mysqld]log-bin=mysql-bin

    只簡單啟用二進制日志是不夠的, 還需要啟用一些其他參數來保證最為安全和正確地記錄二進制日志,推薦的二進制日志的服務器配置應該是:

    [mysqld]log-bin = mysql-binsync_binlog = 1innodb_support_xa = 1

    在備份二進制日志文件前,可以通過FLUSH LOGS命令來生成一個新的二進制日志文件,然后備份之前的二進制日志。要恢復二進制日志也是非常簡單的,通過mysqlbinlog即可。mysqlbinlog的使用方法如下:

    #恢復二進制日志mysqlbinlog binlog. 0000001 I mysql-uroot -p test#恢復多個二進制日志文件mysqlbinlog binlog.[0-10]* I mysql -u root -p test

    也可以先通過mysqlbinlog命令導出到一個文件,然后再通過SOURCE命令來導入

    mysqlbinlog binlog.000001 > /tmp/statements.sqlmysqlbinlog binlog.000002 >> /tmp/statements.sqlmysql -u root -p -e "source /tmp/statements.sql"

    8.5熱備

    8.5.1 ibbackup

    ibbackup是InnoDB存儲引擎官方提供的熱備工具,可以同時備份MylSAM存儲引擎和InnoDB存儲引擎表

    8.5.2 XtraBackup

    XtraBackup備份工具是由Percona公司開發的開源熱備工具。支持MySQL5.0以上的版本。

    8.5.3 XtraBackup實現增量備份

    MySQL數據庫本身提供的工具并不支持真正的增量備份,更準確地說,二進制日志的恢復應該是point-in-time的恢復而不是增量備份。而XtraBackup工具支持對于 InnoDB存儲引擎的增量備份

    第9章性能調優

    9.1選擇合適的CPU

    InnoDB存儲引擎一般都應用于OLTP的數據庫應用,這種應用的特點如下:

    • 用戶操作的并發量大

    • 事務處理的時間一般比較短

    • 查詢的語句較為簡單,一般都走索引

    • 復雜的査詢較少

    本身對CPU的要求并不是很高,可以說OLAP是CPU密集型的操作,而OLTP是IO密集型的操作。在采購設備時,將更多的注意力放在提高IO的配置上。

    此外,為了獲得更多內存的支持,用戶采購的CPU必須支持64位,否則無法支持64位操作系統的安裝。因此,為新的應用選擇64位的CPU是必要的前提。如果CPU是多核的,可以通過修改參數innodb_read_io_ threadsinnodb_write_io_threads來增大IO的線程,充分有效地利用CPU 的多核性能。

    9.2內存的重要性

    內存的大小是最能直接反映數據庫的性能。InnoDB存儲引擎既緩存數據,又緩存索引,并且將它們緩存于一個很大的緩沖池中,即 InnoDB Buffer PooL因此,內存的大小直接影響了數據庫的性能。

    應該在開發應用前預估“活躍”數據庫的大小是多少,并以此確定數據庫服 務器內存的大小。如何判斷當前數據庫的內存是否已經達到瓶頸了呢?比較物理磁盤的讀取和內存讀取的比例來判斷緩沖池的命中率,通常InnoDB存儲引擎的緩沖池的命中率不應該小于99%

    SHOW GLOBAL STATUS LIKE 'innodb%read%'\G; 緩沖池的命中率=Innodb_buffer_pool_read_requests/Innodb_buffer_pool_read_ahead_evicted+Innodb_buffer_pool_read_requests+Innodb_buffer_pool_reads

    9.3硬盤對數據庫性能的影響

    9.3.1傳統機械硬盤

    機械硬盤有兩個重要的指標:一個是尋道時間,另一個是轉速。

    傳統機械硬盤最大的問題在于讀寫磁頭,讀寫磁頭的設計使硬盤可以不再像磁帶一樣,只能進行順序訪問,而是可以隨機訪問。但是,機械硬盤的訪問需要耗費長時間的磁頭旋轉和定位來查找,因此順序訪問的速度要遠高于隨機訪問。

    9.3.2固態硬盤

    固態硬盤,更準確地說是基于閃存的固態硬盤,

    9.4合理地設置RAID

    9.4.1 RAID 類型

    RAID (Redundant Array of Independent Disks,獨立磁盤冗余數組)的基本思想就是把多個相對便宜的硬盤組合起來,成為一個磁盤數組,使性能達到甚至超過一個價格昂貴、容量巨大的硬盤。由于將多個硬盤組合成為一個邏輯扇區,RAID看起來就像一個單獨的硬盤或邏輯存儲單元,因此操作系統只會把它當作一個硬盤。RAID的作用是:

    • 增強數據集成度?

    • 增強容錯功能

    • 增加處理量或容量

    9.7選擇合適的基準測試工具

    基準測試工具可以用來對數據庫或操作系統調優后的性能進行對比。MySQL數據 庫本身提供了一些比較優秀的工具,這里將介紹另外兩款更為優秀和常用的基準測試工 具:sysbench 和 mysql-tpcco

    9.7.1 sysbench

    sysbench是一個模塊化的、跨平臺的多線程基準測試工具,主要用于測試各種不同 系統參數下的數據庫負載情況。它主要包括以下幾種測試方式:CPU性能、磁盤IO性能、調度程序性能、內存分配及傳輸速度、POSIX線程性能、數據庫OLTP基準測試

    9.7.2 mysql-tpcc

    TPC是一個用來評價大型數據庫系統軟硬件性能的非盈利組織。TPC-C是TPC協會制定的,目前在學術界和工業界普遍采用TPC-C 來評價OLTP應用的性能。

    tpcc-mysql由以下兩個工具組成。

    • tpcc_load:根據倉庫數量,生成9張表中的數據。

    • tpcc_start:根據不同選項進行TPC-C測試。

    總結

    以上是生活随笔為你收集整理的不同存储结构的文件磁盘io操作次数_MySQL InnoDB存储引擎的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    精品久久久久久亚洲精品 | 亚洲aⅴ无码成人网站国产app | 99国产精品白浆在线观看免费 | 色综合久久久无码中文字幕 | 国产精品爱久久久久久久 | 人妻无码αv中文字幕久久琪琪布 | 激情五月综合色婷婷一区二区 | 四虎国产精品一区二区 | 久久精品成人欧美大片 | 自拍偷自拍亚洲精品被多人伦好爽 | 捆绑白丝粉色jk震动捧喷白浆 | 红桃av一区二区三区在线无码av | 国产猛烈高潮尖叫视频免费 | 精品久久久无码中文字幕 | 欧美亚洲国产一区二区三区 | 亚洲色欲久久久综合网东京热 | 好男人社区资源 | 伦伦影院午夜理论片 | 少妇被粗大的猛进出69影院 | 亚洲欧美综合区丁香五月小说 | 亚洲国产成人av在线观看 | 少妇人妻大乳在线视频 | 日本大香伊一区二区三区 | 日本一卡二卡不卡视频查询 | 午夜福利试看120秒体验区 | 精品乱码久久久久久久 | 色欲久久久天天天综合网精品 | 国产精品久久久久久久影院 | 国产精品亚洲lv粉色 | 成人无码精品一区二区三区 | 国产福利视频一区二区 | 久久亚洲精品中文字幕无男同 | 欧美日韩亚洲国产精品 | 图片区 小说区 区 亚洲五月 | 综合人妻久久一区二区精品 | 最近免费中文字幕中文高清百度 | 日本在线高清不卡免费播放 | 国产两女互慰高潮视频在线观看 | 色欲久久久天天天综合网精品 | 免费无码肉片在线观看 | 色诱久久久久综合网ywww | www国产精品内射老师 | 人人超人人超碰超国产 | 熟妇人妻无码xxx视频 | 无码精品人妻一区二区三区av | 久久国产精品_国产精品 | 欧美黑人性暴力猛交喷水 | 成年女人永久免费看片 | 亚洲精品中文字幕乱码 | 久久久www成人免费毛片 | 亚洲综合无码一区二区三区 | 极品嫩模高潮叫床 | 国产成人精品视频ⅴa片软件竹菊 | 天堂一区人妻无码 | 丰腴饱满的极品熟妇 | 乱码av麻豆丝袜熟女系列 | 18黄暴禁片在线观看 | 爆乳一区二区三区无码 | 内射欧美老妇wbb | 成人精品一区二区三区中文字幕 | 无码av岛国片在线播放 | 日本一卡2卡3卡四卡精品网站 | 欧美刺激性大交 | 成人动漫在线观看 | 国产莉萝无码av在线播放 | 黑人大群体交免费视频 | 丰满岳乱妇在线观看中字无码 | 无套内谢的新婚少妇国语播放 | 亚洲乱码中文字幕在线 | 国产成人精品三级麻豆 | 午夜理论片yy44880影院 | 日本护士毛茸茸高潮 | 久久99精品国产.久久久久 | 亚洲最大成人网站 | 久久久中文字幕日本无吗 | 日本一卡2卡3卡四卡精品网站 | 国语自产偷拍精品视频偷 | 国产成人无码av片在线观看不卡 | 自拍偷自拍亚洲精品10p | 中文字幕无线码免费人妻 | 夫妻免费无码v看片 | 国产成人精品视频ⅴa片软件竹菊 | 精品欧美一区二区三区久久久 | 国产人成高清在线视频99最全资源 | 国产极品美女高潮无套在线观看 | 日本一区二区更新不卡 | 97人妻精品一区二区三区 | 色狠狠av一区二区三区 | 97色伦图片97综合影院 | 免费无码的av片在线观看 | 国产网红无码精品视频 | 亚洲aⅴ无码成人网站国产app | 欧美丰满熟妇xxxx性ppx人交 | 成 人 网 站国产免费观看 | 久久亚洲精品中文字幕无男同 | a国产一区二区免费入口 | а√资源新版在线天堂 | 2019午夜福利不卡片在线 | 成人亚洲精品久久久久软件 | 中文字幕乱码中文乱码51精品 | 亚洲国产午夜精品理论片 | 黑人巨大精品欧美黑寡妇 | 午夜熟女插插xx免费视频 | 丝袜美腿亚洲一区二区 | 青春草在线视频免费观看 | 又大又黄又粗又爽的免费视频 | 久久国产精品二国产精品 | a在线观看免费网站大全 | 人妻中文无码久热丝袜 | 国产人妻久久精品二区三区老狼 | 男女猛烈xx00免费视频试看 | 久激情内射婷内射蜜桃人妖 | √8天堂资源地址中文在线 | 国语自产偷拍精品视频偷 | 国产乱人伦偷精品视频 | 麻豆精品国产精华精华液好用吗 | 亚洲欧洲日本无在线码 | 人妻少妇精品视频专区 | 欧美大屁股xxxxhd黑色 | 久久国产自偷自偷免费一区调 | 午夜熟女插插xx免费视频 | 超碰97人人做人人爱少妇 | 女人和拘做爰正片视频 | 精品国产国产综合精品 | 粉嫩少妇内射浓精videos | 亚洲中文字幕在线无码一区二区 | 久久99久久99精品中文字幕 | 男女爱爱好爽视频免费看 | 亚洲国产成人a精品不卡在线 | 97精品人妻一区二区三区香蕉 | 成人性做爰aaa片免费看 | 久久国产劲爆∧v内射 | 国产成人精品必看 | 国产色视频一区二区三区 | 久久久中文久久久无码 | 人妻有码中文字幕在线 | 少妇一晚三次一区二区三区 | 大肉大捧一进一出好爽视频 | 国产亚洲欧美在线专区 | 一本久道高清无码视频 | 少妇邻居内射在线 | 女人被男人爽到呻吟的视频 | 天堂无码人妻精品一区二区三区 | 成人免费视频一区二区 | 夜夜高潮次次欢爽av女 | 亚洲国产成人av在线观看 | 强辱丰满人妻hd中文字幕 | 99久久婷婷国产综合精品青草免费 | 九月婷婷人人澡人人添人人爽 | 2020久久香蕉国产线看观看 | 久久久中文字幕日本无吗 | 久久zyz资源站无码中文动漫 | 日本又色又爽又黄的a片18禁 | 日韩精品无码一区二区中文字幕 | 国内揄拍国内精品少妇国语 | 久久精品人妻少妇一区二区三区 | 久久久久国色av免费观看性色 | 夜夜躁日日躁狠狠久久av | 俄罗斯老熟妇色xxxx | 久久久中文久久久无码 | 中国大陆精品视频xxxx | 亚洲人成人无码网www国产 | 国产精品久久久久久亚洲毛片 | 欧美zoozzooz性欧美 | 色爱情人网站 | 国内精品一区二区三区不卡 | 久久五月精品中文字幕 | 中文字幕无码免费久久9一区9 | 亚洲欧美日韩成人高清在线一区 | 国产偷自视频区视频 | 国产亚洲精品精品国产亚洲综合 | 亚洲天堂2017无码中文 | 久久午夜无码鲁丝片午夜精品 | 内射巨臀欧美在线视频 | 日韩人妻无码中文字幕视频 | 午夜不卡av免费 一本久久a久久精品vr综合 | 亚洲乱码日产精品bd | 午夜时刻免费入口 | 国产亚洲精品久久久久久 | 久久久久久a亚洲欧洲av冫 | 九月婷婷人人澡人人添人人爽 | 日韩欧美中文字幕在线三区 | 少妇性俱乐部纵欲狂欢电影 | 蜜桃av抽搐高潮一区二区 | 午夜福利一区二区三区在线观看 | 熟女少妇在线视频播放 | 国产情侣作爱视频免费观看 | 日日橹狠狠爱欧美视频 | 国产精品福利视频导航 | 亚洲精品一区三区三区在线观看 | a片在线免费观看 | 精品亚洲韩国一区二区三区 | 国产精品久久久久久无码 | 国内精品人妻无码久久久影院蜜桃 | 熟妇激情内射com | 激情五月综合色婷婷一区二区 | 亚洲一区二区三区在线观看网站 | 少妇性l交大片欧洲热妇乱xxx | 高清国产亚洲精品自在久久 | 国产成人综合在线女婷五月99播放 | 亚洲の无码国产の无码步美 | 大地资源中文第3页 | 色综合久久久久综合一本到桃花网 | 狠狠亚洲超碰狼人久久 | 亚洲无人区午夜福利码高清完整版 | 国产成人无码av在线影院 | 精品亚洲成av人在线观看 | 领导边摸边吃奶边做爽在线观看 | 亚洲s色大片在线观看 | 日本丰满熟妇videos | www一区二区www免费 | 性啪啪chinese东北女人 | 久久综合激激的五月天 | 丰满人妻被黑人猛烈进入 | 国产又爽又黄又刺激的视频 | 久久精品人人做人人综合试看 | 国产午夜亚洲精品不卡下载 | 大肉大捧一进一出视频出来呀 | 国内精品久久久久久中文字幕 | 国产亚洲精品精品国产亚洲综合 | 秋霞特色aa大片 | 曰韩少妇内射免费播放 | 国产偷抇久久精品a片69 | 97久久超碰中文字幕 | 精品人妻中文字幕有码在线 | 装睡被陌生人摸出水好爽 | 在线а√天堂中文官网 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 强奷人妻日本中文字幕 | 成人无码视频在线观看网站 | 久久久精品人妻久久影视 | 成人一在线视频日韩国产 | 国产手机在线αⅴ片无码观看 | 小泽玛莉亚一区二区视频在线 | 无码乱肉视频免费大全合集 | 亚洲熟女一区二区三区 | 欧美性生交xxxxx久久久 | 人妻少妇精品久久 | 人人澡人人妻人人爽人人蜜桃 | 任你躁在线精品免费 | 国产精品美女久久久网av | 欧美激情内射喷水高潮 | 乱人伦中文视频在线观看 | 狂野欧美性猛交免费视频 | 亚洲精品久久久久avwww潮水 | 欧美三级a做爰在线观看 | 国产高潮视频在线观看 | 在线 国产 欧美 亚洲 天堂 | 日日躁夜夜躁狠狠躁 | 野外少妇愉情中文字幕 | 成人无码影片精品久久久 | 欧美xxxx黑人又粗又长 | 国产成人午夜福利在线播放 | 国产亚洲精品久久久闺蜜 | 久久综合色之久久综合 | 久久人人97超碰a片精品 | 久久无码中文字幕免费影院蜜桃 | 色婷婷综合激情综在线播放 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲色偷偷偷综合网 | 国产av人人夜夜澡人人爽麻豆 | 99er热精品视频 | 国产无av码在线观看 | 在线观看免费人成视频 | 一区二区三区乱码在线 | 欧洲 | 色诱久久久久综合网ywww | 在线看片无码永久免费视频 | 色爱情人网站 | 国产香蕉尹人综合在线观看 | 国产乱人无码伦av在线a | 男人和女人高潮免费网站 | 日本一区二区三区免费高清 | 妺妺窝人体色www婷婷 | 熟妇女人妻丰满少妇中文字幕 | 亚洲国产精品一区二区美利坚 | 国内揄拍国内精品人妻 | 亚洲熟女一区二区三区 | 高清不卡一区二区三区 | 国产成人无码av片在线观看不卡 | 动漫av一区二区在线观看 | 亚洲s色大片在线观看 | √天堂中文官网8在线 | 国产精品福利视频导航 | 免费人成在线观看网站 | 任你躁在线精品免费 | 国产精品久久久久久无码 | 中文字幕无码日韩专区 | 妺妺窝人体色www在线小说 | 亚洲欧美国产精品久久 | www国产亚洲精品久久网站 | 18无码粉嫩小泬无套在线观看 | 欧美人与禽zoz0性伦交 | 亚洲天堂2017无码 | 亚洲无人区一区二区三区 | 亚洲七七久久桃花影院 | 中文字幕+乱码+中文字幕一区 | 丰满护士巨好爽好大乳 | 久久国产自偷自偷免费一区调 | 亚洲乱亚洲乱妇50p | 领导边摸边吃奶边做爽在线观看 | 免费观看又污又黄的网站 | 少妇无码av无码专区在线观看 | 精品国产麻豆免费人成网站 | 日本护士毛茸茸高潮 | 丝袜人妻一区二区三区 | 午夜福利一区二区三区在线观看 | 美女黄网站人色视频免费国产 | 国产肉丝袜在线观看 | 一个人看的www免费视频在线观看 | 99久久精品无码一区二区毛片 | 国产9 9在线 | 中文 | 自拍偷自拍亚洲精品10p | 欧美高清在线精品一区 | 亚洲国产精品一区二区美利坚 | 日韩精品久久久肉伦网站 | 少妇被粗大的猛进出69影院 | 1000部啪啪未满十八勿入下载 | 亚洲色偷偷男人的天堂 | 亚洲一区二区三区播放 | 国产一区二区三区影院 | 领导边摸边吃奶边做爽在线观看 | 国产欧美精品一区二区三区 | 国产精品久久久久久无码 | 亚洲一区二区三区播放 | 熟妇女人妻丰满少妇中文字幕 | 性欧美熟妇videofreesex | 国产精品久久久久影院嫩草 | 麻豆人妻少妇精品无码专区 | 久激情内射婷内射蜜桃人妖 | 熟女俱乐部五十路六十路av | 无码播放一区二区三区 | 久激情内射婷内射蜜桃人妖 | 国产av人人夜夜澡人人爽麻豆 | 无码人妻丰满熟妇区五十路百度 | 四虎4hu永久免费 | 国产午夜亚洲精品不卡下载 | 亚洲综合在线一区二区三区 | 麻豆成人精品国产免费 | 国产乱人偷精品人妻a片 | 久久99精品久久久久久动态图 | 中文无码精品a∨在线观看不卡 | 国产精品久久久久久久影院 | 精品国产成人一区二区三区 | 丁香啪啪综合成人亚洲 | 国内少妇偷人精品视频免费 | 欧美熟妇另类久久久久久不卡 | 99久久亚洲精品无码毛片 | 亚洲 a v无 码免 费 成 人 a v | 免费中文字幕日韩欧美 | 四虎永久在线精品免费网址 | 日日摸日日碰夜夜爽av | 色综合久久久无码中文字幕 | 国产精品无码久久av | 中文字幕av伊人av无码av | 粉嫩少妇内射浓精videos | 日本肉体xxxx裸交 | 亚洲日本va午夜在线电影 | 国产艳妇av在线观看果冻传媒 | 国产精品-区区久久久狼 | 中文字幕乱码人妻二区三区 | 国内老熟妇对白xxxxhd | 国内揄拍国内精品人妻 | 亚洲欧洲日本无在线码 | 久久国产自偷自偷免费一区调 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产精品igao视频网 | 国产亚洲tv在线观看 | 久久国产精品偷任你爽任你 | 日本又色又爽又黄的a片18禁 | 奇米影视7777久久精品人人爽 | 亚洲毛片av日韩av无码 | 精品人妻人人做人人爽夜夜爽 | 亚洲欧美国产精品久久 | 窝窝午夜理论片影院 | 国内精品九九久久久精品 | 精品国偷自产在线视频 | 亚洲成av人片在线观看无码不卡 | 精品国产成人一区二区三区 | 荫蒂被男人添的好舒服爽免费视频 | 国产绳艺sm调教室论坛 | 无码精品人妻一区二区三区av | 久久伊人色av天堂九九小黄鸭 | 久久午夜无码鲁丝片秋霞 | 国产人妖乱国产精品人妖 | 久久亚洲精品成人无码 | 四虎4hu永久免费 | 午夜精品久久久久久久 | 日欧一片内射va在线影院 | 性生交大片免费看女人按摩摩 | 国产午夜亚洲精品不卡下载 | 人妻少妇精品无码专区动漫 | 久久精品中文字幕大胸 | 丰满妇女强制高潮18xxxx | 男人的天堂av网站 | 精品一区二区三区无码免费视频 | 欧洲熟妇色 欧美 | 性欧美熟妇videofreesex | 天堂亚洲2017在线观看 | 女高中生第一次破苞av | 国产香蕉尹人综合在线观看 | 色综合久久久无码网中文 | 国产人成高清在线视频99最全资源 | 中文字幕av日韩精品一区二区 | 国产婷婷色一区二区三区在线 | 亚洲国产精品久久久天堂 | 国产精品-区区久久久狼 | 无码国产乱人伦偷精品视频 | 波多野结衣高清一区二区三区 | 欧美午夜特黄aaaaaa片 | 亚洲第一无码av无码专区 | 精品水蜜桃久久久久久久 | 一本色道久久综合狠狠躁 | 国产精品第一区揄拍无码 | 精品偷自拍另类在线观看 | aa片在线观看视频在线播放 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 色噜噜亚洲男人的天堂 | 又粗又大又硬又长又爽 | 中文字幕亚洲情99在线 | 色综合视频一区二区三区 | 波多野42部无码喷潮在线 | 在线播放免费人成毛片乱码 | 亚洲综合在线一区二区三区 | 99久久无码一区人妻 | 久久视频在线观看精品 | 国产亲子乱弄免费视频 | 亚洲国产一区二区三区在线观看 | 色婷婷综合激情综在线播放 | 久久久久成人片免费观看蜜芽 | 乱中年女人伦av三区 | www国产精品内射老师 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲精品欧美二区三区中文字幕 | 内射老妇bbwx0c0ck | 免费看少妇作爱视频 | 色诱久久久久综合网ywww | www一区二区www免费 | 日韩精品a片一区二区三区妖精 | 黄网在线观看免费网站 | 国产亚洲精品久久久久久 | 无码一区二区三区在线 | 亚洲中文字幕va福利 | 精品偷自拍另类在线观看 | 亚洲 a v无 码免 费 成 人 a v | 精品厕所偷拍各类美女tp嘘嘘 | 蜜桃无码一区二区三区 | 精品国精品国产自在久国产87 | 色综合久久久无码网中文 | 国产av无码专区亚洲a∨毛片 | 精品水蜜桃久久久久久久 | 日日碰狠狠丁香久燥 | 亚洲自偷自拍另类第1页 | 久青草影院在线观看国产 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 99国产精品白浆在线观看免费 | 亚洲成av人影院在线观看 | 亚洲人成网站在线播放942 | 天堂а√在线地址中文在线 | 人妻有码中文字幕在线 | 中文字幕精品av一区二区五区 | 一区二区三区高清视频一 | 一本久久伊人热热精品中文字幕 | 麻豆av传媒蜜桃天美传媒 | 蜜臀av无码人妻精品 | 国产成人无码av片在线观看不卡 | 熟妇人妻无乱码中文字幕 | 成人试看120秒体验区 | 青草青草久热国产精品 | 精品一二三区久久aaa片 | 久久伊人色av天堂九九小黄鸭 | 综合网日日天干夜夜久久 | 国产精品对白交换视频 | 久久久久亚洲精品男人的天堂 | 国产综合色产在线精品 | 国产精品久免费的黄网站 | 激情内射日本一区二区三区 | 中文字幕av无码一区二区三区电影 | 成人一区二区免费视频 | 国产成人无码区免费内射一片色欲 | 久久久久成人精品免费播放动漫 | 精品一区二区三区无码免费视频 | 无码人妻精品一区二区三区下载 | 最近免费中文字幕中文高清百度 | 亚洲一区二区三区无码久久 | 又大又硬又黄的免费视频 | 男女爱爱好爽视频免费看 | 中文字幕乱码亚洲无线三区 | 少妇人妻av毛片在线看 | 国产高清不卡无码视频 | 欧美兽交xxxx×视频 | 天堂а√在线中文在线 | 亚洲色欲色欲欲www在线 | 国产精品欧美成人 | 免费看少妇作爱视频 | 亚洲欧美日韩综合久久久 | 装睡被陌生人摸出水好爽 | 国产福利视频一区二区 | 88国产精品欧美一区二区三区 | 成熟人妻av无码专区 | 女人被爽到呻吟gif动态图视看 | 国产美女极度色诱视频www | 夜夜夜高潮夜夜爽夜夜爰爰 | 成人女人看片免费视频放人 | 国产精品va在线播放 | 亚洲中文字幕无码中文字在线 | 久久综合九色综合97网 | 精品成在人线av无码免费看 | 日本又色又爽又黄的a片18禁 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 在线精品亚洲一区二区 | 日韩人妻无码中文字幕视频 | 日本免费一区二区三区最新 | 九九在线中文字幕无码 | 麻豆国产人妻欲求不满谁演的 | 国产又粗又硬又大爽黄老大爷视 | 欧美zoozzooz性欧美 | 亚洲午夜福利在线观看 | 天天拍夜夜添久久精品大 | 成人欧美一区二区三区 | 欧美性生交xxxxx久久久 | 婷婷综合久久中文字幕蜜桃三电影 | 美女极度色诱视频国产 | 无码毛片视频一区二区本码 | 精品国精品国产自在久国产87 | 国产综合色产在线精品 | 欧美性色19p | 国産精品久久久久久久 | 伊人色综合久久天天小片 | 一区二区三区乱码在线 | 欧洲 | 成人欧美一区二区三区 | 高清国产亚洲精品自在久久 | 久久午夜无码鲁丝片 | 中文字幕无码av激情不卡 | 国内精品人妻无码久久久影院蜜桃 | 国产精品鲁鲁鲁 | 国内揄拍国内精品人妻 | 丰满肥臀大屁股熟妇激情视频 | 亚洲无人区午夜福利码高清完整版 | 国产人妖乱国产精品人妖 | 亚洲日韩一区二区三区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产在线无码精品电影网 | 国产亚洲视频中文字幕97精品 | 日韩精品a片一区二区三区妖精 | 久久久久久av无码免费看大片 | 精品国产av色一区二区深夜久久 | а√资源新版在线天堂 | 亚洲色欲色欲欲www在线 | 超碰97人人做人人爱少妇 | 亚洲中文字幕av在天堂 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产口爆吞精在线视频 | 久久综合九色综合97网 | 亚无码乱人伦一区二区 | 牲欲强的熟妇农村老妇女视频 | 国产色xx群视频射精 | 亚洲一区av无码专区在线观看 | www国产亚洲精品久久网站 | 国产无遮挡吃胸膜奶免费看 | 日韩欧美中文字幕公布 | 亚洲一区二区三区国产精华液 | 欧美精品在线观看 | 亚洲精品一区二区三区在线观看 | 欧美喷潮久久久xxxxx | 亚洲中文字幕无码一久久区 | 亚洲日韩一区二区三区 | 久久久精品国产sm最大网站 | 亚洲 a v无 码免 费 成 人 a v | 国产麻豆精品一区二区三区v视界 | 国产午夜无码精品免费看 | 大肉大捧一进一出视频出来呀 | 欧洲欧美人成视频在线 | 水蜜桃色314在线观看 | 免费播放一区二区三区 | 人人妻人人藻人人爽欧美一区 | 中文字幕久久久久人妻 | 日韩精品无码免费一区二区三区 | 人人妻人人澡人人爽欧美一区九九 | 天天拍夜夜添久久精品 | 免费看男女做好爽好硬视频 | 亚洲国产欧美国产综合一区 | 国产福利视频一区二区 | 亚洲成av人在线观看网址 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲色欲久久久综合网东京热 | 国产精品99久久精品爆乳 | 2019nv天堂香蕉在线观看 | 综合网日日天干夜夜久久 | 99久久精品午夜一区二区 | 亚洲日本一区二区三区在线 | 亚洲欧美色中文字幕在线 | 亚洲精品成a人在线观看 | 精品国偷自产在线 | 国产成人综合美国十次 | 精品国精品国产自在久国产87 | 国产三级精品三级男人的天堂 | 欧美精品一区二区精品久久 | 中文毛片无遮挡高清免费 | 成熟人妻av无码专区 | 夜先锋av资源网站 | 无码纯肉视频在线观看 | 中文字幕精品av一区二区五区 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 亚洲日韩av一区二区三区四区 | 欧洲vodafone精品性 | a片免费视频在线观看 | 国产精品高潮呻吟av久久4虎 | 欧美日韩一区二区免费视频 | 亚洲aⅴ无码成人网站国产app | 久久精品无码一区二区三区 | 精品无码国产自产拍在线观看蜜 | 97人妻精品一区二区三区 | 中文字幕 人妻熟女 | 国产色精品久久人妻 | 亚洲成色www久久网站 | 色欲人妻aaaaaaa无码 | 福利一区二区三区视频在线观看 | 中文字幕无码日韩欧毛 | 少妇人妻偷人精品无码视频 | 国产午夜亚洲精品不卡下载 | 久久精品国产99久久6动漫 | 亚洲一区二区三区国产精华液 | 久久久久久久久蜜桃 | 最近免费中文字幕中文高清百度 | 中国大陆精品视频xxxx | 88国产精品欧美一区二区三区 | 欧美性生交活xxxxxdddd | 欧美色就是色 | 久久久精品人妻久久影视 | 成人精品天堂一区二区三区 | 欧美喷潮久久久xxxxx | 中文字幕无码免费久久9一区9 | 中文无码精品a∨在线观看不卡 | 国产内射老熟女aaaa | 国产欧美亚洲精品a | 正在播放东北夫妻内射 | 国产尤物精品视频 | 亚洲天堂2017无码中文 | 成人精品视频一区二区 | 亚洲成av人在线观看网址 | 国产精品免费大片 | 两性色午夜免费视频 | 欧美猛少妇色xxxxx | 午夜精品久久久久久久 | 中文字幕色婷婷在线视频 | 久久精品国产亚洲精品 | 波多野结衣一区二区三区av免费 | 中文字幕色婷婷在线视频 | 又大又硬又黄的免费视频 | 国产精品毛多多水多 | 欧美人与善在线com | 日日摸日日碰夜夜爽av | 成 人 免费观看网站 | 亚洲成av人片在线观看无码不卡 | 美女扒开屁股让男人桶 | 欧美黑人乱大交 | 色一情一乱一伦 | 亚洲国产日韩a在线播放 | 六月丁香婷婷色狠狠久久 | 久久久久成人片免费观看蜜芽 | 99久久精品午夜一区二区 | 欧美成人午夜精品久久久 | 国产国语老龄妇女a片 | 国产内射老熟女aaaa | 国产一区二区三区日韩精品 | 中文字幕乱码亚洲无线三区 | 久久午夜无码鲁丝片午夜精品 | 亚洲欧美色中文字幕在线 | 日本乱偷人妻中文字幕 | 久久亚洲a片com人成 | 久久天天躁夜夜躁狠狠 | 天天做天天爱天天爽综合网 | 欧美成人午夜精品久久久 | 国产成人av免费观看 | 日本免费一区二区三区最新 | 国产在线一区二区三区四区五区 | 久久亚洲中文字幕精品一区 | 波多野结衣av一区二区全免费观看 | 国内精品久久久久久中文字幕 | 国产熟女一区二区三区四区五区 | 成人aaa片一区国产精品 | 高潮毛片无遮挡高清免费视频 | 偷窥日本少妇撒尿chinese | 夜夜躁日日躁狠狠久久av | 国产精品久久久久影院嫩草 | 国产激情综合五月久久 | 日本www一道久久久免费榴莲 | a片免费视频在线观看 | 97久久国产亚洲精品超碰热 | 中文精品久久久久人妻不卡 | 亚洲va欧美va天堂v国产综合 | 成人免费视频一区二区 | 2019午夜福利不卡片在线 | 国产在线精品一区二区三区直播 | 亚洲精品国偷拍自产在线麻豆 | 久久久久国色av免费观看性色 | 风流少妇按摩来高潮 | 欧美怡红院免费全部视频 | 国产黄在线观看免费观看不卡 | 日韩在线不卡免费视频一区 | 欧美国产日韩久久mv | 国产精品无码一区二区三区不卡 | 免费观看的无遮挡av | 三级4级全黄60分钟 | 国产人妻精品午夜福利免费 | 亚洲国产精品毛片av不卡在线 | 亚洲va欧美va天堂v国产综合 | 国产麻豆精品精东影业av网站 | 国产成人无码a区在线观看视频app | 人妻少妇精品无码专区二区 | 亚洲一区二区三区在线观看网站 | 久久精品成人欧美大片 | 97精品国产97久久久久久免费 | 国产小呦泬泬99精品 | 一二三四在线观看免费视频 | 99久久精品日本一区二区免费 | 超碰97人人做人人爱少妇 | 永久免费精品精品永久-夜色 | 高清国产亚洲精品自在久久 | 波多野结衣一区二区三区av免费 | 四虎国产精品一区二区 | 亚洲中文字幕久久无码 | 一本大道伊人av久久综合 | 人妻aⅴ无码一区二区三区 | 性欧美熟妇videofreesex | 男人扒开女人内裤强吻桶进去 | 欧美一区二区三区 | 国产精品资源一区二区 | 亚洲成av人在线观看网址 | 亚洲熟悉妇女xxx妇女av | 亚洲熟妇色xxxxx亚洲 | 夜先锋av资源网站 | 成人欧美一区二区三区黑人免费 | 久久亚洲精品中文字幕无男同 | 国色天香社区在线视频 | 国产精品美女久久久网av | www国产亚洲精品久久网站 | 国产激情无码一区二区 | 亚洲熟妇色xxxxx亚洲 | 娇妻被黑人粗大高潮白浆 | 国产97在线 | 亚洲 | 国内精品一区二区三区不卡 | 99久久久无码国产精品免费 | 亚洲精品一区二区三区在线观看 | 亚洲天堂2017无码中文 | 亚洲性无码av中文字幕 | 亚洲日韩精品欧美一区二区 | 无码人妻少妇伦在线电影 | 亚洲狠狠婷婷综合久久 | 中文无码成人免费视频在线观看 | 久久aⅴ免费观看 | 国产97在线 | 亚洲 | 精品国产av色一区二区深夜久久 | 色狠狠av一区二区三区 | 久久99精品久久久久久 | 少妇高潮喷潮久久久影院 | 国产无遮挡又黄又爽又色 | 综合网日日天干夜夜久久 | 牲欲强的熟妇农村老妇女视频 | 久久精品中文字幕大胸 | 7777奇米四色成人眼影 | 亚洲s码欧洲m码国产av | 国产成人精品三级麻豆 | 免费无码的av片在线观看 | 性史性农村dvd毛片 | 亚洲精品午夜国产va久久成人 | 久久国产36精品色熟妇 | 亚洲精品一区二区三区婷婷月 | 国产一区二区三区四区五区加勒比 | 女高中生第一次破苞av | 欧美激情内射喷水高潮 | 亚洲日韩乱码中文无码蜜桃臀网站 | a国产一区二区免费入口 | 真人与拘做受免费视频 | 黄网在线观看免费网站 | 久久这里只有精品视频9 | 狠狠色丁香久久婷婷综合五月 | 国产精品嫩草久久久久 | 少女韩国电视剧在线观看完整 | 性生交大片免费看l | 性欧美疯狂xxxxbbbb | 2020久久香蕉国产线看观看 | 丰满诱人的人妻3 | 樱花草在线播放免费中文 | 国内精品九九久久久精品 | 久久久中文久久久无码 | 国产亚洲精品久久久闺蜜 | 麻豆国产97在线 | 欧洲 | 国产熟妇另类久久久久 | 中国女人内谢69xxxx | 欧洲欧美人成视频在线 | 久久精品国产日本波多野结衣 | 波多野结衣aⅴ在线 | 精品aⅴ一区二区三区 | 少妇激情av一区二区 | 国内丰满熟女出轨videos | 国产成人综合美国十次 | 2020久久香蕉国产线看观看 | 狠狠色欧美亚洲狠狠色www | 131美女爱做视频 | 国产精品亚洲一区二区三区喷水 | 少妇高潮喷潮久久久影院 | 日本精品久久久久中文字幕 | 亚洲精品一区二区三区大桥未久 | 国产欧美精品一区二区三区 | 麻豆国产人妻欲求不满谁演的 | 日本在线高清不卡免费播放 | 亚洲成av人片在线观看无码不卡 | 国产超级va在线观看视频 | 精品一二三区久久aaa片 | 天堂久久天堂av色综合 | 亚洲精品国偷拍自产在线观看蜜桃 | 极品尤物被啪到呻吟喷水 | 久久99精品久久久久久动态图 | 性色欲情网站iwww九文堂 | 国产成人精品必看 | av香港经典三级级 在线 | 国产精品.xx视频.xxtv | 动漫av网站免费观看 | av无码久久久久不卡免费网站 | 成人aaa片一区国产精品 | 欧美激情综合亚洲一二区 | 亚洲精品国产品国语在线观看 | 亚洲综合伊人久久大杳蕉 | 国产精品人人爽人人做我的可爱 | 亚洲乱亚洲乱妇50p | 国产亚洲欧美日韩亚洲中文色 | 国产免费久久久久久无码 | 亚洲乱码日产精品bd | 精品国精品国产自在久国产87 | 99精品久久毛片a片 | 精品厕所偷拍各类美女tp嘘嘘 | 精品国产成人一区二区三区 | 久久亚洲精品成人无码 | 亚洲天堂2017无码中文 | 国产精品久久久久久无码 | 亚洲中文无码av永久不收费 | 亚洲国产精品久久人人爱 | 久久精品成人欧美大片 | 国产小呦泬泬99精品 | 全球成人中文在线 | 樱花草在线播放免费中文 | 男女爱爱好爽视频免费看 | 亚洲人成人无码网www国产 | 天天躁夜夜躁狠狠是什么心态 | 欧美日韩在线亚洲综合国产人 | 久久国产精品精品国产色婷婷 | 久久久婷婷五月亚洲97号色 | 麻豆国产丝袜白领秘书在线观看 | 亚洲高清偷拍一区二区三区 | 影音先锋中文字幕无码 | aⅴ亚洲 日韩 色 图网站 播放 | 性欧美疯狂xxxxbbbb | 欧美一区二区三区视频在线观看 | 日本护士毛茸茸高潮 | 99久久无码一区人妻 | 国产精品久久久久9999小说 | 亚洲精品国产精品乱码不卡 | 国产亚洲视频中文字幕97精品 | 亚洲色无码一区二区三区 | 欧美成人家庭影院 | 成人无码精品一区二区三区 | 亚洲日韩精品欧美一区二区 | 色婷婷av一区二区三区之红樱桃 | 亚洲精品久久久久久一区二区 | 草草网站影院白丝内射 | 亚洲精品www久久久 | 亚洲中文字幕无码中文字在线 | 久久无码专区国产精品s | 色综合久久久久综合一本到桃花网 | 麻豆md0077饥渴少妇 | 久久天天躁夜夜躁狠狠 | 沈阳熟女露脸对白视频 | 成人aaa片一区国产精品 | 欧美阿v高清资源不卡在线播放 | 天堂а√在线地址中文在线 | 无套内谢的新婚少妇国语播放 | 老司机亚洲精品影院 | 无码国产色欲xxxxx视频 | 亚洲综合另类小说色区 | 双乳奶水饱满少妇呻吟 | 中文无码精品a∨在线观看不卡 | 99久久精品日本一区二区免费 | yw尤物av无码国产在线观看 | 亚洲欧美国产精品久久 | 中文无码精品a∨在线观看不卡 | 亚洲欧洲中文日韩av乱码 | 高潮毛片无遮挡高清免费视频 | 精品国产成人一区二区三区 | 漂亮人妻洗澡被公强 日日躁 | 男人的天堂av网站 | 国产在线精品一区二区三区直播 | 久久成人a毛片免费观看网站 | 国产农村乱对白刺激视频 | 在线 国产 欧美 亚洲 天堂 | 中文无码成人免费视频在线观看 | 纯爱无遮挡h肉动漫在线播放 | 欧美熟妇另类久久久久久多毛 | 男女猛烈xx00免费视频试看 | 国产精品无码mv在线观看 | 自拍偷自拍亚洲精品10p | 欧美精品无码一区二区三区 | 国产精品无码永久免费888 | 丰满护士巨好爽好大乳 | 国产亚av手机在线观看 | 国产又爽又黄又刺激的视频 | 伊人久久大香线焦av综合影院 | 亚洲人成网站在线播放942 | 亚洲成av人在线观看网址 | 亚洲人成网站色7799 | 久久综合给久久狠狠97色 | 人人爽人人爽人人片av亚洲 | 色综合天天综合狠狠爱 | 国内老熟妇对白xxxxhd | 无码吃奶揉捏奶头高潮视频 | 欧美午夜特黄aaaaaa片 | 中文亚洲成a人片在线观看 | 少妇性l交大片欧洲热妇乱xxx | 荫蒂被男人添的好舒服爽免费视频 | 无人区乱码一区二区三区 | 国产精品人妻一区二区三区四 | 国产成人无码专区 | 久久久久久国产精品无码下载 | 夜夜躁日日躁狠狠久久av | 三级4级全黄60分钟 | 日韩精品成人一区二区三区 | 少妇久久久久久人妻无码 | 99久久人妻精品免费一区 | 久久伊人色av天堂九九小黄鸭 | 日本高清一区免费中文视频 | 亚洲精品一区二区三区四区五区 | 人人妻人人藻人人爽欧美一区 | 欧美高清在线精品一区 | 日本成熟视频免费视频 | 国产高潮视频在线观看 | 欧美精品免费观看二区 | 色综合久久中文娱乐网 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚欧洲精品在线视频免费观看 | 亚洲伊人久久精品影院 | 久久综合给合久久狠狠狠97色 | 国产色视频一区二区三区 | 国产人成高清在线视频99最全资源 | 久久五月精品中文字幕 | 无码人妻精品一区二区三区不卡 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 日日摸夜夜摸狠狠摸婷婷 | 少妇无码av无码专区在线观看 | 久久精品无码一区二区三区 | 亚洲热妇无码av在线播放 | 女人色极品影院 | 高潮喷水的毛片 | 天天躁日日躁狠狠躁免费麻豆 | 六月丁香婷婷色狠狠久久 | 99精品无人区乱码1区2区3区 | 亚洲国精产品一二二线 | 日韩精品乱码av一区二区 | 精品熟女少妇av免费观看 | 国产成人久久精品流白浆 | 国产欧美精品一区二区三区 | 青青草原综合久久大伊人精品 | 一本久久伊人热热精品中文字幕 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲一区二区三区四区 | 国产婷婷色一区二区三区在线 | 国产av一区二区三区最新精品 | 国产成人无码午夜视频在线观看 | 久久久婷婷五月亚洲97号色 | 鲁一鲁av2019在线 | 成年美女黄网站色大免费全看 | 亚洲 欧美 激情 小说 另类 | 天天拍夜夜添久久精品 | 国产美女极度色诱视频www | 亚洲va欧美va天堂v国产综合 | 亚洲 另类 在线 欧美 制服 | 夜先锋av资源网站 | 成人性做爰aaa片免费看不忠 | 四虎4hu永久免费 | 国内精品人妻无码久久久影院蜜桃 | 日韩人妻无码中文字幕视频 | 欧美日韩人成综合在线播放 | 亚洲天堂2017无码中文 | 国产艳妇av在线观看果冻传媒 | 少妇高潮喷潮久久久影院 | 内射老妇bbwx0c0ck | 粉嫩少妇内射浓精videos | 欧美黑人乱大交 | 成人性做爰aaa片免费看不忠 | 色欲久久久天天天综合网精品 | 小sao货水好多真紧h无码视频 | 亚洲成色在线综合网站 | 中文字幕无码免费久久99 | 人人妻人人澡人人爽欧美一区九九 | 东北女人啪啪对白 | 国产区女主播在线观看 | 久久久久亚洲精品中文字幕 | 免费播放一区二区三区 | 荡女精品导航 | 中国大陆精品视频xxxx | 麻豆国产丝袜白领秘书在线观看 | 国产无遮挡吃胸膜奶免费看 | 精品无码一区二区三区的天堂 | 久热国产vs视频在线观看 | 草草网站影院白丝内射 | 亚洲a无码综合a国产av中文 | 欧美熟妇另类久久久久久不卡 | 亚洲精品国产第一综合99久久 | 亚洲精品午夜国产va久久成人 | 国产 浪潮av性色四虎 | 捆绑白丝粉色jk震动捧喷白浆 | 又大又紧又粉嫩18p少妇 | 久久人人爽人人人人片 | 特级做a爰片毛片免费69 | 亚洲精品一区二区三区婷婷月 | 国产精品va在线播放 | 国产成人一区二区三区在线观看 | 国产av一区二区三区最新精品 | 天天拍夜夜添久久精品大 | 亚洲中文字幕在线无码一区二区 | 牲欲强的熟妇农村老妇女视频 | 亚洲乱码中文字幕在线 | 小sao货水好多真紧h无码视频 | 国产成人精品一区二区在线小狼 | 日韩 欧美 动漫 国产 制服 | 国内精品人妻无码久久久影院 | 亚洲a无码综合a国产av中文 | 亚洲成av人片天堂网无码】 | 九九久久精品国产免费看小说 | 国产亚洲精品久久久久久久 | 色综合久久久无码中文字幕 | 国产熟女一区二区三区四区五区 | 国产内射爽爽大片视频社区在线 | 97精品国产97久久久久久免费 | 日本欧美一区二区三区乱码 | 西西人体www44rt大胆高清 | 国产综合在线观看 | 国产亚洲人成a在线v网站 | 人人超人人超碰超国产 | 国产午夜福利亚洲第一 | 久久伊人色av天堂九九小黄鸭 | 久久精品中文字幕一区 | 精品乱码久久久久久久 | 男人的天堂av网站 | 人妻夜夜爽天天爽三区 | 国产精品视频免费播放 | 波多野结衣av一区二区全免费观看 | 日韩 欧美 动漫 国产 制服 | 欧洲欧美人成视频在线 | 国产午夜亚洲精品不卡 | 青春草在线视频免费观看 | 国产在线精品一区二区高清不卡 | 精品 日韩 国产 欧美 视频 | 精品久久8x国产免费观看 | 欧美老妇交乱视频在线观看 | 无码人妻精品一区二区三区不卡 | 亚洲精品美女久久久久久久 | 久久久久久久女国产乱让韩 | 国产后入清纯学生妹 | √天堂资源地址中文在线 | 丰满岳乱妇在线观看中字无码 | 久久99精品国产麻豆蜜芽 | 67194成是人免费无码 | 帮老师解开蕾丝奶罩吸乳网站 | 国产午夜手机精彩视频 | 久久精品人妻少妇一区二区三区 | 97夜夜澡人人爽人人喊中国片 | 日日碰狠狠丁香久燥 | 国产明星裸体无码xxxx视频 | 草草网站影院白丝内射 | 狠狠噜狠狠狠狠丁香五月 | 欧美日韩久久久精品a片 | 黑人巨大精品欧美一区二区 | aⅴ亚洲 日韩 色 图网站 播放 | 免费无码一区二区三区蜜桃大 | 亚洲国产精品久久久天堂 | 久久久久久久人妻无码中文字幕爆 | 亚洲国产av美女网站 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲精品国产精品乱码不卡 | 荫蒂被男人添的好舒服爽免费视频 | 美女张开腿让人桶 | 国产无套内射久久久国产 | 国产精品久久精品三级 | 成人精品天堂一区二区三区 | 狂野欧美激情性xxxx | av小次郎收藏 | 国产日产欧产精品精品app | 亚洲色成人中文字幕网站 | 欧美老妇交乱视频在线观看 | 亚洲精品中文字幕 | 日本大香伊一区二区三区 | 无码av岛国片在线播放 | 青草视频在线播放 | 亚洲中文无码av永久不收费 | 成人一在线视频日韩国产 | 国产亚洲精品久久久久久久久动漫 | 日韩无套无码精品 | 国产绳艺sm调教室论坛 | 精品久久久久久人妻无码中文字幕 | 欧美人与禽猛交狂配 | 国产精品久久久久久久影院 | 国产精品永久免费视频 | 国产午夜亚洲精品不卡 | 日本熟妇大屁股人妻 | 久久久久久a亚洲欧洲av冫 | 日日碰狠狠躁久久躁蜜桃 | 日本免费一区二区三区最新 | 国产成人无码av在线影院 | 人妻插b视频一区二区三区 | 亚洲日韩中文字幕在线播放 | 天堂亚洲免费视频 | 色五月丁香五月综合五月 | 国产乱码精品一品二品 | 久久精品国产99久久6动漫 | 欧美第一黄网免费网站 | 亚洲精品欧美二区三区中文字幕 | 国产激情精品一区二区三区 | 中文字幕乱码亚洲无线三区 | 2019nv天堂香蕉在线观看 | 思思久久99热只有频精品66 | 精品国产麻豆免费人成网站 | 亚洲精品久久久久久一区二区 | 一区二区三区乱码在线 | 欧洲 | 午夜时刻免费入口 | 亚洲精品无码人妻无码 | 免费人成在线观看网站 | 97精品人妻一区二区三区香蕉 | 理论片87福利理论电影 | 熟女少妇在线视频播放 | av人摸人人人澡人人超碰下载 | 美女黄网站人色视频免费国产 | 少妇久久久久久人妻无码 | 国产绳艺sm调教室论坛 | 狠狠色噜噜狠狠狠狠7777米奇 | 性做久久久久久久免费看 | 人妻熟女一区 | 久久国产自偷自偷免费一区调 | av无码不卡在线观看免费 | 人妻少妇被猛烈进入中文字幕 | 成人片黄网站色大片免费观看 | 日韩欧美群交p片內射中文 | 国语自产偷拍精品视频偷 | 国产亲子乱弄免费视频 | 荫蒂添的好舒服视频囗交 | 无遮挡啪啪摇乳动态图 | 国产极品美女高潮无套在线观看 | 久久www免费人成人片 | 国产精品办公室沙发 | 理论片87福利理论电影 | 国产免费无码一区二区视频 | 精品国精品国产自在久国产87 | 大地资源网第二页免费观看 | 爆乳一区二区三区无码 | 亚洲国产高清在线观看视频 | 18禁黄网站男男禁片免费观看 | 超碰97人人射妻 | 蜜桃av抽搐高潮一区二区 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲区欧美区综合区自拍区 | 国产精品多人p群无码 | 2020久久超碰国产精品最新 | 亚洲综合另类小说色区 | 真人与拘做受免费视频一 | 老子影院午夜精品无码 | 中文字幕乱码亚洲无线三区 | 国产精品.xx视频.xxtv | 日欧一片内射va在线影院 | 夜精品a片一区二区三区无码白浆 | 国产成人无码av片在线观看不卡 | 久久午夜无码鲁丝片秋霞 | v一区无码内射国产 | 国产无套内射久久久国产 | 国产成人午夜福利在线播放 | 西西人体www44rt大胆高清 | 红桃av一区二区三区在线无码av | 夜精品a片一区二区三区无码白浆 | 国产偷国产偷精品高清尤物 | а√天堂www在线天堂小说 | 动漫av一区二区在线观看 | 久久久久久亚洲精品a片成人 | 我要看www免费看插插视频 | 亚洲中文字幕无码中字 | 亚洲日韩精品欧美一区二区 | 大地资源中文第3页 | 国产精品a成v人在线播放 | 最近的中文字幕在线看视频 | 中文字幕无码免费久久9一区9 | 人妻体内射精一区二区三四 | 人妻少妇精品久久 | 亚洲成a人片在线观看日本 | 国产乡下妇女做爰 | 精品国产精品久久一区免费式 | 99精品视频在线观看免费 | 国产精品高潮呻吟av久久4虎 | 国产一区二区三区四区五区加勒比 | 中文字幕无码av波多野吉衣 | 成人综合网亚洲伊人 | 免费无码午夜福利片69 | 色情久久久av熟女人妻网站 | 人妻少妇精品无码专区二区 | 无码任你躁久久久久久久 | 无码av岛国片在线播放 | 久久亚洲国产成人精品性色 | 对白脏话肉麻粗话av | 性啪啪chinese东北女人 | 激情综合激情五月俺也去 | 国产成人精品视频ⅴa片软件竹菊 | 男女作爱免费网站 | 国产性生交xxxxx无码 | 日本免费一区二区三区最新 | 精品熟女少妇av免费观看 | 人妻中文无码久热丝袜 | 粗大的内捧猛烈进出视频 | 久久久中文字幕日本无吗 | 亚洲成色在线综合网站 | 高潮毛片无遮挡高清免费 | 55夜色66夜色国产精品视频 | 亚洲精品成人福利网站 | 午夜理论片yy44880影院 | 日本大香伊一区二区三区 | 中文字幕无码视频专区 | 亚洲精品成人av在线 | 97资源共享在线视频 | 亚洲国产成人av在线观看 | 成人精品天堂一区二区三区 | 51国偷自产一区二区三区 | 妺妺窝人体色www婷婷 | 婷婷色婷婷开心五月四房播播 | 久久精品国产亚洲精品 | 久久成人a毛片免费观看网站 | 精品无码一区二区三区的天堂 | 狂野欧美性猛交免费视频 | www成人国产高清内射 | 99精品国产综合久久久久五月天 | 成人免费视频视频在线观看 免费 | 老熟妇仑乱视频一区二区 | 亚洲精品午夜无码电影网 | 色欲综合久久中文字幕网 | 中文字幕无码av激情不卡 | 2019nv天堂香蕉在线观看 | 欧美人与动性行为视频 | 久久无码中文字幕免费影院蜜桃 | 久久久精品成人免费观看 | 偷窥日本少妇撒尿chinese | aⅴ在线视频男人的天堂 | 亚洲综合无码一区二区三区 | 永久黄网站色视频免费直播 | 国产精品亚洲专区无码不卡 | 国产成人久久精品流白浆 | 免费网站看v片在线18禁无码 | 午夜无码区在线观看 | 日本精品久久久久中文字幕 | 国产亚洲精品精品国产亚洲综合 | 久久99精品国产麻豆 | 久久国产精品萌白酱免费 | 久久午夜无码鲁丝片 | 亚洲人成无码网www | 欧美激情一区二区三区成人 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲 欧美 激情 小说 另类 | 成 人 网 站国产免费观看 | 人人妻人人澡人人爽欧美一区 | 国产人妻精品一区二区三区 | 天天燥日日燥 | 偷窥日本少妇撒尿chinese | 欧美肥老太牲交大战 | 精品久久久无码中文字幕 | 少妇性l交大片欧洲热妇乱xxx | av人摸人人人澡人人超碰下载 | 任你躁在线精品免费 | 亚洲va中文字幕无码久久不卡 | 最新国产麻豆aⅴ精品无码 | 欧洲熟妇色 欧美 | 亚洲经典千人经典日产 | 色婷婷欧美在线播放内射 | 国语自产偷拍精品视频偷 | 77777熟女视频在线观看 а天堂中文在线官网 | 中文字幕无码人妻少妇免费 | 男女爱爱好爽视频免费看 | 久久国产自偷自偷免费一区调 | 纯爱无遮挡h肉动漫在线播放 | 午夜理论片yy44880影院 | 图片区 小说区 区 亚洲五月 | 双乳奶水饱满少妇呻吟 | 天堂在线观看www | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 亚洲精品一区二区三区在线 | 国产精品久久久久无码av色戒 | 国产精品对白交换视频 | 一区二区三区乱码在线 | 欧洲 | 人人澡人摸人人添 | 成人免费无码大片a毛片 | 国产乱人无码伦av在线a | 久久99精品国产麻豆 | 高潮毛片无遮挡高清免费视频 | 亚洲国产精品一区二区美利坚 | 亚洲一区二区三区播放 | 亚洲娇小与黑人巨大交 | 久9re热视频这里只有精品 | 在线成人www免费观看视频 | 亚洲 a v无 码免 费 成 人 a v | 超碰97人人做人人爱少妇 | av无码电影一区二区三区 | 无码精品人妻一区二区三区av | 亚洲另类伦春色综合小说 | 中国女人内谢69xxxxxa片 | 国产深夜福利视频在线 | 亚洲人成人无码网www国产 | 熟女俱乐部五十路六十路av | 女人被男人爽到呻吟的视频 | 欧美性黑人极品hd | 日本www一道久久久免费榴莲 | 国产成人综合在线女婷五月99播放 | 少妇人妻大乳在线视频 | 国产成人无码av片在线观看不卡 | 无码国产色欲xxxxx视频 | 无码国产激情在线观看 | 300部国产真实乱 | 亚洲乱码中文字幕在线 | 无码av岛国片在线播放 | 国产精品丝袜黑色高跟鞋 | 成人精品一区二区三区中文字幕 | 蜜臀av无码人妻精品 | 欧美刺激性大交 | 国产欧美亚洲精品a | 福利一区二区三区视频在线观看 | 精品国精品国产自在久国产87 | 麻豆成人精品国产免费 | 四虎国产精品一区二区 | 国产成人无码av片在线观看不卡 | 午夜理论片yy44880影院 | 国产成人午夜福利在线播放 | 国精品人妻无码一区二区三区蜜柚 | 色五月五月丁香亚洲综合网 | 夜夜影院未满十八勿进 | 无码人妻久久一区二区三区不卡 | 亚洲人成网站色7799 | 麻豆国产97在线 | 欧洲 | 呦交小u女精品视频 | √天堂中文官网8在线 | 日韩av无码一区二区三区 | 国产人妻人伦精品1国产丝袜 | 波多野结衣aⅴ在线 | 色 综合 欧美 亚洲 国产 | 青春草在线视频免费观看 | 欧美日韩一区二区三区自拍 | 内射巨臀欧美在线视频 | 国产综合色产在线精品 | 日本免费一区二区三区最新 | 麻豆精品国产精华精华液好用吗 | 亚洲精品无码人妻无码 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 久久精品人人做人人综合试看 | 成人无码精品一区二区三区 | 99久久亚洲精品无码毛片 | 国产凸凹视频一区二区 | 亚洲理论电影在线观看 | 秋霞成人午夜鲁丝一区二区三区 | 成 人 网 站国产免费观看 | 亚洲成色www久久网站 | 国产人妻精品一区二区三区不卡 | 人妻少妇精品视频专区 | 精品国产一区二区三区四区 | 日韩人妻少妇一区二区三区 | 国产精品内射视频免费 | 国产精品无码永久免费888 | 亚洲欧洲中文日韩av乱码 | 欧美日韩一区二区免费视频 | 国产精品久久久久久无码 | 又紧又大又爽精品一区二区 | 亚洲国产精品无码久久久久高潮 | 欧美老熟妇乱xxxxx | 亚洲综合精品香蕉久久网 | 亚洲理论电影在线观看 | 亚洲人成网站在线播放942 | 久久人人爽人人爽人人片av高清 | 亚洲色无码一区二区三区 | 7777奇米四色成人眼影 | 全球成人中文在线 | 人妻中文无码久热丝袜 | 亚洲乱亚洲乱妇50p | 伦伦影院午夜理论片 | 18黄暴禁片在线观看 | 丰满人妻翻云覆雨呻吟视频 | 欧美 丝袜 自拍 制服 另类 | 亚洲国产av精品一区二区蜜芽 | 性欧美牲交在线视频 | 国产又粗又硬又大爽黄老大爷视 | 国产欧美熟妇另类久久久 | 性色av无码免费一区二区三区 | 亚洲综合无码久久精品综合 | 在线观看免费人成视频 | 亚洲欧洲日本综合aⅴ在线 | 国产激情精品一区二区三区 | 全球成人中文在线 | 欧美日韩视频无码一区二区三 | 国产精品久久久久久亚洲毛片 | 国内精品久久毛片一区二区 | 5858s亚洲色大成网站www | 人人澡人人妻人人爽人人蜜桃 | 国产农村乱对白刺激视频 | 国产激情无码一区二区app | 内射老妇bbwx0c0ck | 日韩精品乱码av一区二区 | 日本熟妇浓毛 | 中文字幕无线码免费人妻 | 国产一精品一av一免费 | 亚洲第一无码av无码专区 | 国产无套粉嫩白浆在线 | 黑森林福利视频导航 | 日日鲁鲁鲁夜夜爽爽狠狠 | 未满小14洗澡无码视频网站 | 午夜福利电影 | 国内少妇偷人精品视频免费 | 在线欧美精品一区二区三区 | 国产小呦泬泬99精品 | 亚洲春色在线视频 | 亚洲国产精品久久人人爱 | 国产香蕉尹人视频在线 | 丰腴饱满的极品熟妇 | 成人精品天堂一区二区三区 | 九九综合va免费看 | 99视频精品全部免费免费观看 | 日韩精品一区二区av在线 | 婷婷丁香五月天综合东京热 | 狠狠cao日日穞夜夜穞av | 久在线观看福利视频 | 蜜桃臀无码内射一区二区三区 | 欧美兽交xxxx×视频 | 欧美 日韩 亚洲 在线 | 婷婷丁香五月天综合东京热 | 亚洲精品国偷拍自产在线麻豆 | 又色又爽又黄的美女裸体网站 | 久久亚洲中文字幕无码 | 性欧美疯狂xxxxbbbb | 久久久久久久女国产乱让韩 | 久久人人爽人人爽人人片ⅴ | 国产熟女一区二区三区四区五区 | 亚洲熟妇色xxxxx欧美老妇 | 精品久久久久久人妻无码中文字幕 | 国产精品内射视频免费 | 午夜无码人妻av大片色欲 | 色噜噜亚洲男人的天堂 | 日日碰狠狠躁久久躁蜜桃 | 亚洲狠狠色丁香婷婷综合 | 欧美日韩视频无码一区二区三 | 亚洲成色在线综合网站 | 国产精品高潮呻吟av久久4虎 | 欧美亚洲国产一区二区三区 | 久久久久人妻一区精品色欧美 | 噜噜噜亚洲色成人网站 | 色一情一乱一伦一区二区三欧美 | 亚洲欧洲无卡二区视頻 | 一本久久伊人热热精品中文字幕 | 少女韩国电视剧在线观看完整 | 高潮毛片无遮挡高清免费 | 国产人妻人伦精品 | 一二三四社区在线中文视频 | 国产精品手机免费 | 黑人巨大精品欧美黑寡妇 | 欧美野外疯狂做受xxxx高潮 | 狠狠色色综合网站 | 欧美精品在线观看 | 97人妻精品一区二区三区 | 无码午夜成人1000部免费视频 | 欧美日韩久久久精品a片 | 97精品国产97久久久久久免费 | 成人欧美一区二区三区黑人免费 | 天堂а√在线地址中文在线 | 成人一在线视频日韩国产 | 国产成人一区二区三区在线观看 | 又黄又爽又色的视频 | 性欧美疯狂xxxxbbbb | 亚洲国产欧美国产综合一区 | 久久久久久久女国产乱让韩 | 成人一区二区免费视频 | 欧美第一黄网免费网站 | 波多野结衣乳巨码无在线观看 | 美女毛片一区二区三区四区 | av香港经典三级级 在线 | 国产成人精品久久亚洲高清不卡 | 久久五月精品中文字幕 | 玩弄人妻少妇500系列视频 | 国产成人一区二区三区别 | 好男人社区资源 | 内射欧美老妇wbb | 在线观看国产一区二区三区 | 亚洲国产成人av在线观看 | 在线亚洲高清揄拍自拍一品区 | 成人性做爰aaa片免费看不忠 | 高中生自慰www网站 | 成人性做爰aaa片免费看 | 亚洲国产一区二区三区在线观看 | 波多野结衣一区二区三区av免费 | 综合激情五月综合激情五月激情1 | 亚洲国产精品毛片av不卡在线 | 国产香蕉尹人视频在线 | 成人精品天堂一区二区三区 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 欧洲vodafone精品性 | 狠狠综合久久久久综合网 | 最新版天堂资源中文官网 | 日日干夜夜干 | 亚洲乱码日产精品bd | 国产成人精品三级麻豆 | 天天躁夜夜躁狠狠是什么心态 | 在线亚洲高清揄拍自拍一品区 | 亚洲精品国产a久久久久久 | 97精品国产97久久久久久免费 | 精品乱码久久久久久久 | 亚洲国产精品一区二区第一页 | 亚洲国产精品久久久久久 | 免费网站看v片在线18禁无码 | 欧美国产日韩久久mv | 日本大香伊一区二区三区 | 无码成人精品区在线观看 | 欧洲熟妇色 欧美 | 国产成人无码一二三区视频 | 131美女爱做视频 | 亚洲天堂2017无码 | 欧美一区二区三区 | 夜精品a片一区二区三区无码白浆 | 无码人妻久久一区二区三区不卡 | 在线视频网站www色 | 日本饥渴人妻欲求不满 | 无码av免费一区二区三区试看 | 又色又爽又黄的美女裸体网站 | 亚洲成av人片天堂网无码】 | 国产婷婷色一区二区三区在线 | 中文字幕无码视频专区 | www国产亚洲精品久久久日本 | 特黄特色大片免费播放器图片 | 国产suv精品一区二区五 | 国产免费无码一区二区视频 | 国产精品a成v人在线播放 | 少妇无码吹潮 | 亚洲精品成人福利网站 | 99久久人妻精品免费二区 | 国产免费久久精品国产传媒 | 最新国产乱人伦偷精品免费网站 | 波多野结衣一区二区三区av免费 | 国产两女互慰高潮视频在线观看 | 日日躁夜夜躁狠狠躁 | 久久国产精品_国产精品 | 免费人成在线视频无码 | 少妇厨房愉情理9仑片视频 | 又湿又紧又大又爽a视频国产 | 欧美日本精品一区二区三区 | 国产精品自产拍在线观看 | 久久无码专区国产精品s | 樱花草在线社区www | 亚洲精品中文字幕乱码 | 久久精品国产一区二区三区 | 成人亚洲精品久久久久 | 无码人妻丰满熟妇区毛片18 | yw尤物av无码国产在线观看 | 激情内射亚州一区二区三区爱妻 | 精品成人av一区二区三区 | 国产精品人人妻人人爽 | 任你躁国产自任一区二区三区 | 成 人 免费观看网站 | 人人妻人人澡人人爽欧美一区 | 国产精品a成v人在线播放 | 动漫av一区二区在线观看 | 国产成人无码a区在线观看视频app | 婷婷丁香六月激情综合啪 | 女人色极品影院 | 日韩精品无码一本二本三本色 | 欧美35页视频在线观看 | 久久久av男人的天堂 | 伦伦影院午夜理论片 | 无码福利日韩神码福利片 | 国产亚洲精品精品国产亚洲综合 | 少妇太爽了在线观看 | 精品国产国产综合精品 | 国产亚洲人成a在线v网站 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产精品99爱免费视频 | 国产真实伦对白全集 | 台湾无码一区二区 | 正在播放老肥熟妇露脸 | 国产精品福利视频导航 | 亚洲精品国产第一综合99久久 | 日本护士毛茸茸高潮 | 狠狠噜狠狠狠狠丁香五月 | 思思久久99热只有频精品66 | 欧美激情内射喷水高潮 | 女人被爽到呻吟gif动态图视看 | 久久久国产精品无码免费专区 | www一区二区www免费 | 成熟女人特级毛片www免费 | 97无码免费人妻超级碰碰夜夜 | 国产免费无码一区二区视频 | 亚洲天堂2017无码中文 | 又粗又大又硬又长又爽 | 2019午夜福利不卡片在线 | 少妇无码av无码专区在线观看 | 国产疯狂伦交大片 | 一本一道久久综合久久 | 日本熟妇浓毛 | 99久久无码一区人妻 | 成熟人妻av无码专区 | 人妻无码αv中文字幕久久琪琪布 | 亚洲成av人片天堂网无码】 | 日产国产精品亚洲系列 | 国产精品福利视频导航 | 亚洲色在线无码国产精品不卡 | 亚洲日韩一区二区 | 国产超碰人人爽人人做人人添 | 国产精品成人av在线观看 | 亚洲欧美国产精品久久 | 久久久久亚洲精品中文字幕 | 久激情内射婷内射蜜桃人妖 | aⅴ亚洲 日韩 色 图网站 播放 | v一区无码内射国产 | 嫩b人妻精品一区二区三区 | 天天爽夜夜爽夜夜爽 | 亚洲中文字幕乱码av波多ji | 成人免费视频一区二区 | 77777熟女视频在线观看 а天堂中文在线官网 | 久久综合给合久久狠狠狠97色 | 国产精品久久久久久亚洲影视内衣 | 精品久久综合1区2区3区激情 | 又大又硬又黄的免费视频 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲国产午夜精品理论片 | 日本精品久久久久中文字幕 | av无码久久久久不卡免费网站 | 全黄性性激高免费视频 | 久久精品99久久香蕉国产色戒 | 色婷婷综合激情综在线播放 | 国产精品.xx视频.xxtv | 欧美午夜特黄aaaaaa片 | 久久国产精品精品国产色婷婷 | 欧美日韩精品 | 久久精品国产99精品亚洲 | 亚洲国产av精品一区二区蜜芽 | 台湾无码一区二区 | 日产国产精品亚洲系列 | 麻豆成人精品国产免费 | 中文字幕人妻无码一区二区三区 | 国产国产精品人在线视 | 久久成人a毛片免费观看网站 | 午夜免费福利小电影 | 熟妇人妻无码xxx视频 | 未满小14洗澡无码视频网站 | 国产人妻人伦精品1国产丝袜 | 成人精品一区二区三区中文字幕 | 亚洲国产午夜精品理论片 | 永久免费观看国产裸体美女 | 风流少妇按摩来高潮 | 亚洲阿v天堂在线 | 国产精品无码久久av | 国产亚洲精品久久久久久久 | 无码av免费一区二区三区试看 | 天堂一区人妻无码 | 久久国语露脸国产精品电影 | 狠狠色欧美亚洲狠狠色www | 最近的中文字幕在线看视频 | 377p欧洲日本亚洲大胆 | 中文字幕 人妻熟女 | 丝袜美腿亚洲一区二区 | 国产内射老熟女aaaa | 欧美激情一区二区三区成人 | 精品久久综合1区2区3区激情 | 欧美自拍另类欧美综合图片区 | 少妇高潮一区二区三区99 | 成人无码视频免费播放 | 宝宝好涨水快流出来免费视频 | 亚洲精品一区二区三区大桥未久 | 精品无码一区二区三区的天堂 | 国产亚洲人成a在线v网站 | 波多野结衣高清一区二区三区 | 学生妹亚洲一区二区 | 国产色精品久久人妻 | 成年女人永久免费看片 |