校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識(shí)庫(kù) > mysql表分區(qū)的使用與底層原理詳解

mysql表分區(qū)的使用與底層原理詳解

熱門標(biāo)簽:拉卡拉外呼系統(tǒng) 云南電商智能外呼系統(tǒng)價(jià)格 臨清電話機(jī)器人 高清地圖標(biāo)注道路 話務(wù)外呼系統(tǒng)怎么樣 400電話可以辦理嗎 外東北地圖標(biāo)注 大眾點(diǎn)評(píng)星級(jí)酒店地圖標(biāo)注 智能外呼系統(tǒng)復(fù)位

什么是分區(qū)表

MySQL從5.1版本開始支持分區(qū)功能,分區(qū)是將一個(gè)表的數(shù)據(jù)按照某種方式,比如按照時(shí)間上的月份,分成多個(gè)較小的,更容易管理的部分,但是邏輯上仍是一個(gè)表。

還沒出現(xiàn)分區(qū)表的時(shí)候,所有的數(shù)據(jù)都是存放在一個(gè)文件里面的,如果數(shù)據(jù)量太大,查詢數(shù)據(jù)時(shí)總是避免不了需要大量io操作;使用分區(qū)表后,每個(gè)分區(qū)存放不同的數(shù)據(jù)。這樣不但可以減少io。還可以加快數(shù)據(jù)的訪問;

為了保證MySQL的性能,我們都建議mysql單表不要太大,建議是:?jiǎn)伪硇∮?G,記錄數(shù)小于1千萬,十庫(kù)百表。如果但行記錄數(shù)非常小,那么記錄數(shù)可以再偏大些,反之,可能記錄數(shù)到百萬級(jí)別就開始變慢了。

那么,業(yè)務(wù)量在增長(zhǎng),數(shù)據(jù)到瓶頸了怎么辦呢,除了使用分布式數(shù)據(jù)庫(kù),我們也可以自行分庫(kù)分表,或者利用mysql的分區(qū)功能實(shí)現(xiàn)。

分區(qū)表的出現(xiàn)是為了分而治之的概念,分區(qū)表的用處非常大,只是現(xiàn)在還有很多人都不知道;
將一個(gè)表設(shè)置為分區(qū)表后,會(huì)在數(shù)據(jù)文件.idb的文件名加上#號(hào),代表這是一個(gè)分區(qū)表;

分區(qū)表應(yīng)用場(chǎng)景

  1. 表非常大以至于無法全部放在內(nèi)存中,或者只在表的最后部分有熱點(diǎn)數(shù)據(jù),其他都是歷史數(shù)據(jù)
  2. 分區(qū)表的數(shù)據(jù)更容易維護(hù),,能批量刪除大量數(shù)據(jù)
  3. 對(duì)一個(gè)獨(dú)立分區(qū)進(jìn)行優(yōu)化、檢查、修復(fù)等操作
  4. 分區(qū)表的數(shù)據(jù)可以分布在不同的設(shè)備上,從未高效的利用多個(gè)硬件設(shè)備
  5. 可以備份和恢復(fù)獨(dú)立的分區(qū);

分區(qū)表的限制

  1. 一個(gè)表最多能有1024個(gè)分區(qū),在5.7版本及以上可以有8196個(gè)分區(qū)
  2. 在早期mysql中,分區(qū)表達(dá)式必須是整數(shù)或者整返回整數(shù)的表達(dá)式,在mysql5.5中,某些場(chǎng)景可以直接使用列來進(jìn)行分區(qū)
  3. 分區(qū)表無法使用外檢約束
  4. 最好不要去修改分區(qū)列
  5. 如果分區(qū)字段中有主鍵或者唯一索引的列,那么所有主鍵列和唯一索引列都必須包含進(jìn)來;就像這樣:
-- 創(chuàng)建分區(qū)必須包含所有主鍵
create table user_11(
  id bigint(20) not null ,
  name varchar(20) ,
  age int(3),
	PRIMARY KEY (`id`,`age`)
)
-- 創(chuàng)建分區(qū)
partition by range columns(id,age)(
  partition p00 values less than(6,30), -- 小于6的值在P0分區(qū)
  partition p11 values less than(11,40), -- 小于11的值在p1分區(qū)
  partition p22 values less than(16,50), -- 小于16的值在p2分區(qū)
  partition p33 values less than (9999,9999) -- 大于21的值在p3分區(qū),或者用一個(gè)更大的值
);

-- 創(chuàng)建分區(qū)必須包含所有唯一鍵
create table user_22(
  id bigint(20)  not null,
  name varchar(20) ,
  age int(3) not null ,
	unique key only_one_1(age,id )
)
-- 創(chuàng)建分區(qū)
partition by range columns(id,age)(
  partition p000 values less than(6,30), -- 小于6的值在P0分區(qū)
  partition p111 values less than(11,40), -- 小于11的值在p1分區(qū)
  partition p222 values less than(16,50), -- 小于16的值在p2分區(qū)
  partition p333 values less than (9999,9999) -- 大于21的值在p3分區(qū),或者用一個(gè)更大的值
);

分區(qū)類型

  1. 范圍分區(qū)
  2. 列表分區(qū)
  3. 列分區(qū)
  4. hash分區(qū)
  5. 秘鑰分區(qū)
  6. 子分區(qū)

分區(qū)表的使用

1、范圍分區(qū)

下面示例中將年齡進(jìn)行分區(qū),

create table employees(
id bigint(20) not null,
age int(3) not null,
name varchar(20)
)
-- 創(chuàng)建分區(qū)
partition by range (age)(
  partition p0 values less than(6), -- 小于6的值在P0分區(qū)
  partition p1 values less than(11), -- 小于11的值在p1分區(qū)
  partition p2 values less than(16), -- 小于16的值在p2分區(qū)
  partition p3 values less than(21) -- 小于21的值在p3分區(qū)
);

創(chuàng)建好之后,就可以看到在數(shù)據(jù)文件夾中的分區(qū)文件了

[root@VM_0_5_centos test]# pwd
/var/lib/mysql/test
[root@VM_0_5_centos test]# ll
總用量 8741504
-rw-rw---- 1 mysql mysql         61 10月 31 2018 db.opt
-rw-rw---- 1 mysql mysql       8614 8月   1 21:30 employees.frm
-rw-rw---- 1 mysql mysql         32 8月   1 21:30 employees.par
-rw-rw---- 1 mysql mysql      98304 8月   1 21:30 employees#P#p0.ibd
-rw-rw---- 1 mysql mysql      98304 8月   1 21:30 employees#P#p1.ibd
-rw-rw---- 1 mysql mysql      98304 8月   1 21:30 employees#P#p2.ibd
-rw-rw---- 1 mysql mysql      98304 8月   1 21:30 employees#P#p3.ibd

因?yàn)閍ge字段最大只能插入21以下的數(shù)字,如果插入21的數(shù)字則會(huì)報(bào)錯(cuò),

mysql> insert employees (id,name,age) values(1,'yexindong',21);
ERROR 1526 (HY000): Table has no partition for value 21

所以,為了解決這個(gè)問題,在建表的時(shí)候可以這么干,將最大的值使用maxvalue,據(jù)說maxvalue的值為28個(gè)9,也就是9999999999999999999999999999

create table employees(
id bigint(20) not null,
age int(3) not null,
name varchar(20)
)
-- 創(chuàng)建分區(qū)
partition by range (age)(
  partition p0 values less than(6), -- 小于6的值在P0分區(qū)
  partition p1 values less than(11), -- 小于11的值在p1分區(qū)
  partition p2 values less than(16), -- 小于16的值在p2分區(qū)
  partition p3 values less than maxvalue -- 大于16的值在p3分區(qū),或者用一個(gè)更大的值
);

時(shí)間范圍分區(qū)

CREATE TABLE employees (
    id INT NOT NULL,
    fname VARCHAR(30),
    lname VARCHAR(30),
    hired DATE NOT NULL DEFAULT '1970-01-01',
    separated DATE NOT NULL DEFAULT '9999-12-31',
    job_code INT,
    store_id INT
)
PARTITION BY RANGE ( YEAR(separated) ) (
    PARTITION p0 VALUES LESS THAN (1991), -- 1991年之前的數(shù)據(jù)在P0分區(qū)
    PARTITION p1 VALUES LESS THAN (1996),-- 1996年之前的數(shù)據(jù)在P1分區(qū)
    PARTITION p2 VALUES LESS THAN (2001),-- 2001年之前的數(shù)據(jù)在P2分區(qū)
    PARTITION p3 VALUES LESS THAN MAXVALUE -- 2001年制后的數(shù)據(jù)在P3分區(qū)
);

CREATE TABLE members (
    firstname VARCHAR(25) NOT NULL,
    lastname VARCHAR(25) NOT NULL,
    username VARCHAR(16) NOT NULL,
    email VARCHAR(35),
    joined DATE NOT NULL
)
PARTITION BY RANGE COLUMNS(joined) (
    PARTITION p0 VALUES LESS THAN ('1960-01-01'),
    PARTITION p1 VALUES LESS THAN ('1970-01-01'),
    PARTITION p2 VALUES LESS THAN ('1980-01-01'),
    PARTITION p3 VALUES LESS THAN ('1990-01-01'),
    PARTITION p4 VALUES LESS THAN MAXVALUE
);

2、列表分區(qū)(list分區(qū))

列表分區(qū)和范圍分區(qū)最大的區(qū)別就是列表是等值的,而范圍分區(qū)是在某個(gè)范圍內(nèi)的;

CREATE TABLE employees (
    id INT NOT NULL,
    fname VARCHAR(30),
    lname VARCHAR(30),
    hired DATE NOT NULL DEFAULT '1970-01-01',
    separated DATE NOT NULL DEFAULT '9999-12-31',
    job_code INT,
    store_id INT
)
PARTITION BY LIST(store_id) (
    PARTITION pNorth VALUES IN (3,5,6,9,17), -- 3,5,6,9,17的值放在pNorth分區(qū)
    PARTITION pEast VALUES IN (1,2,10,11,19,20),-- 1,2,10,11,19,20的值放在pEast分區(qū)
    PARTITION pWest VALUES IN (4,12,13,14,18),-- 4,12,13,14,18的值放在pWest分區(qū)
    PARTITION pCentral VALUES IN (7,8,15,16)-- 7,8,15,16的值放在pCentral分區(qū)
);

3、列分區(qū)

列分區(qū)是范圍分區(qū)和列表分區(qū)的變體,也就是說列分區(qū)就是由范圍分區(qū)和列表分區(qū)封裝得來的,唯一的不同的是,列分區(qū)沒有數(shù)據(jù)類型的限制,換句話說,范圍分區(qū)和列表分區(qū)就是列分區(qū);

4、hash分區(qū)

hash分區(qū)不需要指定范圍或者列表,而是根據(jù)插入的值動(dòng)態(tài)分配來決定插入到哪個(gè)分區(qū),和hashMap的原理很像,不同的是hashMap會(huì)通過擾動(dòng)函數(shù)來解決hash碰撞問題,但是mysql的hash分區(qū)是直接取模運(yùn)算得出結(jié)果;然后插入指定位置的分區(qū);

-- 普通字段的分區(qū)
CREATE TABLE employees (
    id INT NOT NULL,
    fname VARCHAR(30),
    lname VARCHAR(30),
    hired DATE NOT NULL DEFAULT '1970-01-01',
    separated DATE NOT NULL DEFAULT '9999-12-31',
    job_code INT,
    store_id INT
)
PARTITION BY HASH(store_id)
PARTITIONS 5;--創(chuàng)建5個(gè)分區(qū),分別是0,1,2,3,4

-- 創(chuàng)建時(shí)間類型的分區(qū)
CREATE TABLE employees (
    id INT NOT NULL,
    fname VARCHAR(30),
    lname VARCHAR(30),
    hired DATE NOT NULL DEFAULT '1970-01-01',
    separated DATE NOT NULL DEFAULT '9999-12-31',
    job_code INT,
    store_id INT
)
PARTITION BY HASH( YEAR(hired) )
PARTITIONS 4; -- 創(chuàng)建四個(gè)分區(qū),分別為0,1,2,3

5、秘鑰分區(qū)(key分區(qū))

key分區(qū)用的比較少

-- 以主鍵進(jìn)行分區(qū)
CREATE TABLE k1 (
    id INT NOT NULL PRIMARY KEY,
    name VARCHAR(20)
)
PARTITION BY KEY()
PARTITIONS 2; -- 創(chuàng)建2個(gè)分區(qū)分別為P0和P1,這里是hash分區(qū)的變種,存儲(chǔ)方式和hash分區(qū)一樣


-- 以唯一鍵進(jìn)行分區(qū)
CREATE TABLE k1 (
    id INT NOT NULL,
    name VARCHAR(20),
    UNIQUE KEY (id)
)
PARTITION BY KEY()
PARTITIONS 3;-- 創(chuàng)建三個(gè)分區(qū),分別是p0,p1,p2

-- 指定主鍵字段進(jìn)行分區(qū)
CREATE TABLE tm1 (
    s1 CHAR(32) PRIMARY KEY
)
PARTITION BY KEY(s1)
PARTITIONS 10; -- 創(chuàng)建10個(gè)分區(qū)

6、子分區(qū)

子分區(qū)這么理解就行了:在分區(qū)的基礎(chǔ)上在分區(qū);舉個(gè)例子吧,如果一張表分成三個(gè)分區(qū),而每個(gè)分區(qū)又有三個(gè)子分區(qū),所以一共有3 * 3 = 9個(gè)分區(qū);

 -- 表中有3個(gè)分區(qū),每個(gè)分區(qū)上有2個(gè)子分區(qū),所以加起來一共有6個(gè)分區(qū)
CREATE TABLE ts (id INT, purchased DATE)
    PARTITION BY RANGE( YEAR(purchased) )
    SUBPARTITION BY HASH( TO_DAYS(purchased) )
    SUBPARTITIONS 2 (
        PARTITION p0 VALUES LESS THAN (1990),
        PARTITION p1 VALUES LESS THAN (2000),
        PARTITION p2 VALUES LESS THAN MAXVALUE
    );

進(jìn)入mysql的數(shù)據(jù)文件中就可以看到有6個(gè)文件,顧名思義,生成了6個(gè)分區(qū)

-rw-rw---- 1 mysql mysql      98304 8月   2 22:37 ts#P#p0#SP#p0sp0.ibd
-rw-rw---- 1 mysql mysql      98304 8月   2 22:37 ts#P#p0#SP#p0sp1.ibd
-rw-rw---- 1 mysql mysql      98304 8月   2 22:37 ts#P#p1#SP#p1sp0.ibd
-rw-rw---- 1 mysql mysql      98304 8月   2 22:37 ts#P#p1#SP#p1sp1.ibd
-rw-rw---- 1 mysql mysql      98304 8月   2 22:37 ts#P#p2#SP#p2sp0.ibd
-rw-rw---- 1 mysql mysql      98304 8月   2 22:37 ts#P#p2#SP#p2sp1.ibd

添加分區(qū)

-- 添加列表分區(qū)
alter table titles add partition(partition p7 values in('CEO'));

分區(qū)表原理

分區(qū)表由多個(gè)相關(guān)的底層表實(shí)現(xiàn),這個(gè)底層表也是由句柄對(duì)象標(biāo)識(shí),我們可以直接訪問各個(gè)分區(qū)。存儲(chǔ)引擎管理分區(qū)的各個(gè)底層表和管理普通表一樣(所有的底層表都必須使用相同的存儲(chǔ)引擎),分區(qū)表的索引知識(shí)在各個(gè)底層表上各自加上一個(gè)完全相同的索引。從存儲(chǔ)引擎的角度來看,底層表和普通表沒有任何不同,存儲(chǔ)引擎也無須知道這是一個(gè)普通表還是一個(gè)分區(qū)表的一部分。

分區(qū)表的操作按照以下的操作邏輯進(jìn)行:

select查詢

當(dāng)查詢一個(gè)分區(qū)表的時(shí)候,分區(qū)層先打開并鎖住所有的底層表,優(yōu)化器先判斷是否可以過濾部分分區(qū),然后再調(diào)用對(duì)應(yīng)的存儲(chǔ)引擎接口訪問各個(gè)分區(qū)的數(shù)據(jù)

insert操作

當(dāng)寫入一條記錄的時(shí)候,分區(qū)層先打開并鎖住所有的底層表,然后確定哪個(gè)分區(qū)接受這條記錄,再將記錄寫入對(duì)應(yīng)底層表

delete操作

當(dāng)刪除一條記錄時(shí),分區(qū)層先打開并鎖住所有的底層表,然后確定數(shù)據(jù)對(duì)應(yīng)的分區(qū),最后對(duì)相應(yīng)底層表進(jìn)行刪除操作

update操作

當(dāng)更新一條記錄時(shí),分區(qū)層先打開并鎖住所有的底層表,mysql先確定需要更新的記錄再哪個(gè)分區(qū),然后取出數(shù)據(jù)并更新,再判斷更新后的數(shù)據(jù)應(yīng)該再哪個(gè)分區(qū),最后對(duì)底層表進(jìn)行寫入操作,并對(duì)源數(shù)據(jù)所在的底層表進(jìn)行刪除操作

有些操作時(shí)支持過濾的,例如,當(dāng)刪除一條記錄時(shí),MySQL需要先找到這條記錄,如果where條件恰好和分區(qū)表達(dá)式匹配,就可以將所有不包含這條記錄的分區(qū)都過濾掉,這對(duì)update同樣有效。如果是insert操作,則本身就是只命中一個(gè)分區(qū),其他分區(qū)都會(huì)被過濾掉。mysql先確定這條記錄屬于哪個(gè)分區(qū),再將記錄寫入對(duì)應(yīng)得曾分區(qū)表,無須對(duì)任何其他分區(qū)進(jìn)行操作

雖然每個(gè)操作都會(huì)“先打開并鎖住所有的底層表”,但這并不是說分區(qū)表在處理過程中是鎖住全表的,如果存儲(chǔ)引擎能夠自己實(shí)現(xiàn)行級(jí)鎖,例如innodb,則會(huì)在分區(qū)層釋放對(duì)應(yīng)表鎖。

如何使用分區(qū)表

  1. 日志系統(tǒng)可以用分區(qū),一般日志數(shù)量都是比較多的,按年或者月份來分區(qū),一般來說都需要在日志系統(tǒng)中查詢出某一段時(shí)間的歷史記錄,因?yàn)閿?shù)據(jù)量巨大,肯定不能走全表掃描,全表掃描會(huì)引發(fā)大量的隨機(jī)io,當(dāng)數(shù)據(jù)量超大的時(shí)候,索引也無法起作用;此時(shí)應(yīng)該考慮用分區(qū)進(jìn)行解決;
  2. 并不是數(shù)據(jù)量大才需要用分區(qū),數(shù)據(jù)量小的時(shí)候也可以用分區(qū),怎樣的場(chǎng)景下數(shù)據(jù)量小呢?答案是你每次查詢的數(shù)據(jù)都是某一個(gè)批次的時(shí)候就可以用分區(qū),比如說字典,業(yè)務(wù)的字典和用戶類型的字典一般都是存放在同一張表里面的,且你每次查詢的時(shí)候不是差一個(gè)業(yè)務(wù)或者一個(gè)用戶類型,而是查詢整個(gè)業(yè)務(wù)或者用戶類型,這就是一個(gè)批次,此時(shí)也可以用分區(qū)來實(shí)現(xiàn);
  3. 使用分區(qū)后,就可以不用索引了,因?yàn)橐话闶褂梅謪^(qū)的話都是范圍查詢,范圍查詢也就沒必要使用索引了;已經(jīng)將數(shù)據(jù)分布在不同的分區(qū)中了;
  4. 要使用索引的話,也可以,但是要分離熱數(shù)據(jù)和冷數(shù)據(jù),熱數(shù)據(jù)就是經(jīng)常要查詢的數(shù)據(jù),在熱數(shù)據(jù)的表上加索引來加快訪問速度;

注意事項(xiàng)

  1. null值會(huì)使分區(qū)過濾無效;分區(qū)是需要制定列名的,需要確保這個(gè)列名不會(huì)出現(xiàn)null值;
  2. 如果分區(qū)列和索引列不是同一列的話,會(huì)導(dǎo)致查詢無法進(jìn)行分區(qū)過濾,比如說你的id和age字段都加了索引,那么分區(qū)的時(shí)候最好把這2個(gè)列設(shè)為分區(qū)列:干PARTITION BY RANGE COLUMNS(id,age)
  3. 對(duì)分區(qū)表增刪改的成本很高,每次對(duì)表進(jìn)行次增刪改的時(shí)候會(huì)打開并鎖住所有的底層表,只要有一個(gè)鎖住了,其他的操作就無法進(jìn)行;
  4. 維護(hù)分區(qū)的時(shí)候,成本可能很高,特別是需要修改分區(qū)的時(shí)候,成本是最高的,

總結(jié)

到此這篇關(guān)于mysql表分區(qū)的使用與底層原理的文章就介紹到這了,更多相關(guān)mysql表分區(qū)底層原理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 創(chuàng)建mysql表分區(qū)的方法
  • MySQL的表分區(qū)詳解
  • Mysql數(shù)據(jù)表分區(qū)技術(shù)PARTITION淺析
  • MySQL數(shù)據(jù)庫(kù)表分區(qū)注意事項(xiàng)大全【推薦】
  • MySQL中表分區(qū)技術(shù)詳細(xì)解析
  • MySQL數(shù)據(jù)表分區(qū)策略及優(yōu)缺點(diǎn)分析
  • MySQL高級(jí)特性——數(shù)據(jù)表分區(qū)的概念及機(jī)制詳解

標(biāo)簽:揚(yáng)州 阿里 三明 定西 溫州 福州 無錫 山西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql表分區(qū)的使用與底層原理詳解》,本文關(guān)鍵詞  mysql,表,分區(qū),的,使用,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql表分區(qū)的使用與底層原理詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于mysql表分區(qū)的使用與底層原理詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    中文字幕一区二区三中文字幕| 欧美日韩国产美| 国产女人aaa级久久久级| 国产成人鲁色资源国产91色综| 国产香蕉久久精品综合网| 国产东北露脸精品视频| 亚洲日本成人在线观看| 欧美午夜一区二区三区| 人人狠狠综合久久亚洲| 久久精品人人做人人综合 | 波多野结衣亚洲一区| 中文字幕精品一区| 色噜噜狠狠成人网p站| 天天爽夜夜爽夜夜爽精品视频| 欧美一区二区三区视频在线| 国产电影一区二区三区| 一区二区三区在线观看视频| 日韩一区二区在线观看视频| 国产一区二区电影| 一区二区三区四区五区视频在线观看| 精品视频资源站| 国产一二三精品| 一区二区三区四区激情| 精品99一区二区三区| 一本到三区不卡视频| 久久精品国产一区二区| 国产精品久久久久久久浪潮网站| 欧美精选一区二区| 国产成人精品影视| 香蕉成人伊视频在线观看| 久久综合一区二区| 欧美性淫爽ww久久久久无| 国产精品1024| 亚洲福利视频导航| 中文在线一区二区| 91精品国产色综合久久不卡电影 | 国产精品18久久久久久久久| 亚洲精品乱码久久久久久黑人| 欧美精品视频www在线观看 | 国产精品成人网| 欧美电影影音先锋| aaa欧美日韩| 黄一区二区三区| 亚洲国产精品一区二区久久恐怖片| 久久久久亚洲蜜桃| 欧美妇女性影城| 99精品视频免费在线观看| 麻豆成人91精品二区三区| 一区二区激情视频| 国产精品狼人久久影院观看方式| 91精品国产一区二区| 欧美主播一区二区三区美女| 国产.欧美.日韩| 狠狠久久亚洲欧美| 日本在线不卡视频| 亚洲高清免费观看高清完整版在线观看| 国产免费成人在线视频| 欧美成人一区二区| 日韩一区二区不卡| 337p亚洲精品色噜噜狠狠| 欧美性视频一区二区三区| 成人aaaa免费全部观看| 成人手机在线视频| 国产盗摄精品一区二区三区在线| 久久激情综合网| 九九精品一区二区| 精品亚洲免费视频| 韩国一区二区三区| 狠狠色2019综合网| 国产自产2019最新不卡| 精品在线播放午夜| 精品一区二区国语对白| 麻豆成人在线观看| 精品午夜一区二区三区在线观看| 日本中文字幕一区二区视频| 污片在线观看一区二区| 亚洲一区二区在线播放相泽| 亚洲美女淫视频| 亚洲精品日韩综合观看成人91| 亚洲激情图片小说视频| 亚洲五月六月丁香激情| 日日夜夜一区二区| 美女mm1313爽爽久久久蜜臀| 日本亚洲电影天堂| 国产一区美女在线| 国产白丝网站精品污在线入口| 成人免费精品视频| 97精品久久久久中文字幕| 色悠悠久久综合| 在线成人免费观看| 精品91自产拍在线观看一区| 欧美国产日本视频| 一区二区在线电影| 日本不卡一二三| 国产福利一区二区三区| 91蝌蚪porny九色| 91精品婷婷国产综合久久性色 | 99久久免费视频.com| 色婷婷亚洲婷婷| 91精品国产综合久久福利| 26uuu国产电影一区二区| 国产精品免费久久久久| 亚洲女人****多毛耸耸8| 三级精品在线观看| 成人一区在线看| 欧美丝袜丝nylons| 久久亚洲春色中文字幕久久久| 中文字幕在线一区| 日本美女视频一区二区| 国产99久久久国产精品免费看| 97久久超碰国产精品电影| 欧美一区二区国产| 中文文精品字幕一区二区| 亚洲综合视频网| 国产精品亚洲人在线观看| 欧美视频精品在线观看| 久久婷婷久久一区二区三区| 亚洲精品videosex极品| 精品一区二区三区香蕉蜜桃 | 久久久99精品免费观看不卡| 亚洲男帅同性gay1069| 久久99久久久久| 色婷婷久久99综合精品jk白丝| 欧美一级高清片| 一区二区三区**美女毛片| 国产一区二区三区免费播放| 在线观看欧美精品| 日本一区二区三区四区在线视频| 午夜视频一区二区| av在线不卡网| 久久综合色天天久久综合图片| 亚洲一区二区三区在线播放| 国产91在线看| 日韩欧美成人激情| 一区二区三区四区激情| 成年人国产精品| 日韩精品一区二区三区老鸭窝| 一区二区三区四区不卡在线 | 亚洲国产乱码最新视频 | 成人深夜福利app| 精品国产伦一区二区三区免费| 亚洲一区二区在线免费看| a美女胸又www黄视频久久| 欧美成人福利视频| 日本vs亚洲vs韩国一区三区| 91老师片黄在线观看| 国产精品久99| 国产激情一区二区三区四区| 日韩色在线观看| 日韩国产欧美三级| 欧美日韩精品欧美日韩精品一综合| 亚洲婷婷在线视频| 国产盗摄女厕一区二区三区| 欧美成人video| 久久国产精品第一页| 69p69国产精品| 日本va欧美va瓶| 日韩一区二区电影| 美女网站色91| 精品日韩欧美一区二区| 蜜臀av性久久久久蜜臀aⅴ| 欧美高清精品3d| 免费的国产精品| 精品人在线二区三区| 另类调教123区| 26uuu精品一区二区在线观看| 久久国产精品99久久久久久老狼| 日韩欧美三级在线| 蜜桃av噜噜一区| 欧美xxxxxxxx| 国产一区二区导航在线播放| 久久理论电影网| 成人免费看视频| 亚洲免费电影在线| 欧美日韩中文国产| 天天av天天翘天天综合网色鬼国产| 欧美日韩精品一区二区三区四区| 午夜精品福利一区二区三区av | 日韩免费视频线观看| 精品一区二区三区在线播放 | 欧美国产日韩精品免费观看| www.欧美色图| 亚洲一区二区五区| 日韩一级视频免费观看在线| 国产主播一区二区三区| 国产精品久久久久久亚洲毛片| 91免费看`日韩一区二区| 亚洲国产精品嫩草影院| 日韩亚洲欧美综合| 成人av网在线| 亚洲成人av免费| 久久久久亚洲蜜桃| 日本电影亚洲天堂一区| 日本不卡视频在线观看| 欧美国产日产图区| 日本电影亚洲天堂一区| 精品中文字幕一区二区小辣椒| 国产精品久久久久四虎| 欧美久久久久久久久中文字幕| 韩国女主播成人在线|