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

MySQL 8.0.23新特性 - 不可見列

數(shù)據(jù)庫 MySQL
在MySQL 8.0.23之前,表中所有的列都是可見的(如果您有權(quán)限的話)。現(xiàn)在可以指定一個(gè)不可見的列,它將對(duì)查詢隱藏。如果顯式引用,它可以被查到。

[[379225]]

 在新的MySQL 8.0.23中,引入了新的有趣功能:不可見列。

這是第一篇關(guān)于這個(gè)新功能的文章,我希望寫一個(gè)3篇的系列。這是前言。

在MySQL 8.0.23之前,表中所有的列都是可見的(如果您有權(quán)限的話)。現(xiàn)在可以指定一個(gè)不可見的列,它將對(duì)查詢隱藏。如果顯式引用,它可以被查到。

讓我們看看它是怎樣的: 

  1. create table table1 (  
  2.    id int auto_increment primary key,   
  3.    name varchar(20),   
  4.    age int invisible); 

在表結(jié)構(gòu)中我們?cè)贓xtra列可以看到INVISIBLE 關(guān)鍵字: 

  1. desc table1;  
  2. +-------+-------------+------+-----+---------+----------------+  
  3. | Field | Type        | Null | Key | Default | Extra          |  
  4. +-------+-------------+------+-----+---------+----------------+  
  5. | id    | int         | NO   | PRI | NULL    | auto_increment |  
  6. | name  | varchar(20) | YES  |     | NULL    |                |  
  7. | age   | int         | YES  |     | NULL    | INVISIBLE      |  
  8. +-------+-------------+------+-----+---------+----------------+ 

查看show create table語句,注意到有一個(gè)不同,當(dāng)我創(chuàng)建表時(shí),我希望看到INVISIBLE 關(guān)鍵字,但事實(shí)并非如此: 

  1. show create table table1\\G  
  2. ************************* 1. row *************************  
  3.         Table: table1  
  4.  Create Table: CREATE TABLE `table1` ( 
  5.    id int NOT NULL AUTO_INCREMENT,  
  6.    name varchar(20) DEFAULT NULL,  
  7.    age int DEFAULT NULL /*!80023 INVISIBLE */,  
  8.    PRIMARY KEY (id)  
  9.  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 

但是我確認(rèn)這個(gè)語句在創(chuàng)建表時(shí)會(huì)將age 列設(shè)置為不可見。所以我們有2個(gè)不同的語法來創(chuàng)建不可見列。

INFORMATION_SCHEMA 中也可以看到相關(guān)信息: 

  1. SELECT TABLE_NAME, COLUMN_NAME, EXTRA  
  2.   FROM INFORMATION_SCHEMA.COLUMNS  
  3.   WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'table1' 
  4. +------------+-------------+----------------+  
  5. | TABLE_NAME | COLUMN_NAME | EXTRA          |  
  6. +------------+-------------+----------------+  
  7. | table1     | id          | auto_increment |  
  8. | table1     | name        |                |  
  9. | table1     | age         | INVISIBLE      |  
  10. +------------+-------------+----------------+ 

插入一些數(shù)據(jù),繼續(xù)觀察: 

  1. insert into table1 values (0,'mysql', 25),   
  2.                           (0,'kenny', 35),   
  3.                           (0, 'lefred','44');  
  4.  ERROR: 1136: Column count doesn't match value count at row 1 

如預(yù)期,插入語句中如果我們不引用它,會(huì)報(bào)錯(cuò)。引用這些列: 

  1. insert into table1 (id, name, age)   
  2.        values (0,'mysql', 25),   
  3.               (0,'kenny', 35),   
  4.               (0, 'lefred','44');  
  5.  Query OK, 3 rows affected (0.1573 sec 

查詢表中數(shù)據(jù): 

  1. select * from table1;  
  2. +----+--------+  
  3. | id | name   |  
  4. +----+--------+  
  5. |  1 | mysql  |  
  6. |  2 | kenny  |  
  7. |  3 | lefred |  
  8. +----+--------+ 

再一次,如預(yù)期,我們看到不可見列沒有顯示。

如果我們指定它: 

  1. select name, age from table1;  
  2. +--------+-----+  
  3. | name   | age |  
  4. +--------+-----+  
  5. | mysql  |  25 |  
  6. | kenny  |  35 |  
  7. | lefred |  44 |  
  8. +--------+-----+ 

當(dāng)然我們可以將列從可見轉(zhuǎn)為不可見或者將不可見轉(zhuǎn)為可見: 

  1. alter table table1 modify name varchar(20) invisible,   
  2.                    modify age integer visible;  
  3. Query OK, 0 rows affected (0.1934 sec)  
  4. select * from table1;  
  5. +----+-----+  
  6. | id | age |  
  7. +----+-----+  
  8. |  1 |  25 |  
  9. |  2 |  35 |  
  10. |  3 |  44 |  
  11. +----+-----+ 

我對(duì)這個(gè)新功能感到非常高興,在下一篇文章中我們將會(huì)看到為什么這對(duì)InnoDB來說是一個(gè)重要的功能。

本文是與MySQL不可見列相關(guān)的系列文章的第二部分。

這篇文章介紹了為什么不可見列對(duì)InnoDB存儲(chǔ)引擎很重要。

首先,讓我簡(jiǎn)單解釋一下InnoDB是如何處理主鍵的,以及為什么一個(gè)好的主鍵很重要。最后,為什么主鍵也很重要。

InnoDB如何存儲(chǔ)數(shù)據(jù)?

InnoDB在表空間存儲(chǔ)數(shù)據(jù)。這些記錄存儲(chǔ)并用聚簇索引排序(主鍵):它們被稱為索引組織表。

所有的二級(jí)索引也將主鍵作為索引中的最右邊的列(即使沒有公開)。這意味著當(dāng)使用二級(jí)索引檢索一條記錄時(shí),將使用兩個(gè)索引:二級(jí)索引指向用于最終檢索該記錄的主鍵。

主鍵會(huì)影響隨機(jī)I/O和順序I/O之間的比率以及二級(jí)索引的大小。

隨機(jī)主鍵還是順序主鍵?

如上所述,數(shù)據(jù)存儲(chǔ)在聚簇索引中的表空間中。這意味著如果您不使用順序索引,當(dāng)執(zhí)行插入時(shí),InnoDB不得不重平衡表空間的所有頁。

如果我們用InnoDB Ruby來說明這個(gè)過程,下面的圖片顯示了當(dāng)使用隨機(jī)字符串作為主鍵插入記錄時(shí)表空間是如何更新的:

每次有一個(gè)插入,幾乎所有的頁都會(huì)被觸及。

當(dāng)使用自增整型作為主鍵時(shí),同樣的插入:

自增主鍵的情況下,只有第一個(gè)頁和最后一個(gè)頁才會(huì)被觸及。

讓我們用一個(gè)高層次的例子來解釋這一點(diǎn):

假設(shè)一個(gè)InnoDB頁可以存儲(chǔ)4條記錄(免責(zé)聲明:這只是一個(gè)虛構(gòu)的例子),我們使用隨機(jī)主鍵插入了一些記錄:

插入新記錄,主鍵為AA!

修改所有頁以"重新平衡"聚簇索引,在連續(xù)主鍵的情況下,只有最后一個(gè)頁面會(huì)被修改。想象一下成千上萬的插入發(fā)生時(shí)所要做的額外工作。

這意味著選擇好的主鍵是重要的。需要注意兩點(diǎn):

  1.  主鍵必須連續(xù)。
  2.  主鍵必須短。

UUID怎么樣?

我通常建議使用自增整型(或bigint)作為主鍵,但是不要忘記監(jiān)控它們!

但我也明白越來越多的開發(fā)人員喜歡使用uuid。

如果您打算使用UUID,您應(yīng)該閱讀MySQL8.0中UUID的支持,這篇文章推薦您用binary(16) 存儲(chǔ)UUID。

如: 

  1. CREATE TABLE t (id binary(16) PRIMARY KEY);   
  2. INSERT INTO t VALUES(UUID_TO_BIN(UUID())); 

然而,我并不完全同意這個(gè)觀點(diǎn),為什么?

因?yàn)槭褂胾uid_to_bin() 可能會(huì)改變MySQL的UUID實(shí)現(xiàn)的順序行為(有關(guān)更多信息,請(qǐng)參閱額外部分)。

但是如果您需要UUID,你需要在大索引上花費(fèi)一定代價(jià),索引不要浪費(fèi)存儲(chǔ)和內(nèi)存在不需要的二級(jí)索引上: 

  1. select * from sys.schema_unused_indexes where object_schema not in ('performance_schema', 'mysql'); 

沒有任何主鍵?

對(duì)InnoDB表來說,當(dāng)沒有定義主鍵,會(huì)使用第一個(gè)唯一非空列。如果沒有可用的列,InnoDB會(huì)創(chuàng)建一個(gè)隱藏主鍵(6位)。

這類主鍵的問題在于您無法控制它,更糟糕的是,這個(gè)值對(duì)所有沒有主鍵的表是全局的,如果您同時(shí)對(duì)這些表執(zhí)行多次寫操作,可能會(huì)產(chǎn)生爭(zhēng)用問題(dict_sys->mutex)。

不可見列的用處

有了新的不可見列,如果應(yīng)用不允許添加新列,我們現(xiàn)在就可以向沒有主鍵的表添加合適的主鍵。

首先先找到這些表: 

  1. SELECT tables.table_schema , tables.table_name , tables.engine    
  2. FROM information_schema.tables  LEFT JOIN (       
  3.    SELECT table_schema , table_name  
  4.    FROM information_schema.statistics  
  5.    GROUP BY table_schema, table_name, index_name   
  6.    HAVING SUM(  
  7.       case when non_unique = 0 and nullable != 'YES' then 1 else 0 end ) = count(*) ) puks     
  8.    ON tables.table_schema = puks.table_schema   
  9.   AND tables.table_name = puks.table_name     
  10.   WHERE puks.table_name IS null   
  11.   AND tables.table_type = 'BASE TABLE'   
  12.   AND Engine="InnoDB" 
  13. +--------------+--------------+--------+  
  14. | TABLE_SCHEMA | TABLE_NAME   | ENGINE |  
  15. +--------------+--------------+--------+  
  16. | test         | table2       | InnoDB |  
  17. +--------------+--------------+--------+ 

您也可以使用MySQL Shell中的校驗(yàn)插件:https://github.com/lefred/mysqlshell-plugins/wiki/check#getinnodbtableswithnopk

讓我們查看表定義: 

  1. show create table table2\\G  
  2. *************** 1. row ***************  
  3.        Table: table2  
  4. Create Table: CREATE TABLE table2 (  
  5.   name varchar(20) DEFAULT NULL,  
  6.   age int DEFAULT NULL  
  7. ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 

其中的數(shù)據(jù): 

  1. select * from table2; 
  2. +--------+-----+  
  3. | name   | age |  
  4. +--------+-----+  
  5. | mysql  |  25 |  
  6. | kenny  |  35 |  
  7. | lefred |  44 |  
  8. +--------+-----+ 

現(xiàn)在添加指定不可見主鍵: 

  1. alter table table2   
  2.      add column id int unsigned auto_increment   
  3.      primary key invisible first; 

插入一條新記錄: 

  1. insert into table2 (name, age) values ('PHP', 25);  
  2. select * from table2;  
  3. +--------+-----+  
  4. | name   | age |  
  5. +--------+-----+  
  6. | mysql  |  25 |  
  7. | kenny  |  35 |  
  8. | lefred |  44 |  
  9. | PHP    |  25 |  
  10. +--------+-----+ 

如果我們想要查看主鍵: 

  1. select id, table2.* from table2;  
  2. +----+--------+-----+  
  3. | id | name   | age |  
  4. +----+--------+-----+  
  5. |  1 | mysql  |  25 |  
  6. |  2 | kenny  |  35 |  
  7. |  3 | lefred |  44 |  
  8. |  4 | PHP    |  25 |  
  9. +----+--------+-----+ 

總結(jié)

現(xiàn)在您知道InnoDB中為什么主鍵很重要,為什么一個(gè)好的主鍵更重要。

從MySQL8.0.23開始,您可以用不可見列解決沒有主鍵的表。

額外

僅為娛樂,并說明我對(duì)使用UUID_TO_BIN(UUID()) 作為主鍵的看法,讓我們重新使用UUID作為不可見列重復(fù)這個(gè)例子。 

  1. alter table table2 add column id binary(16) invisible first;  
  2. alter table table2 modify column id binary(16)   
  3.       default (UUID_TO_BIN(UUID())) invisible;  
  4. update table2 set id=uuid_to_bin(uuid());  
  5. alter table table2 add primary key(id); 

到目前還沒什么特別的,只是創(chuàng)建不可見主鍵需要一些技巧。

查詢: 

  1. select * from table2;  
  2. +--------+-----+  
  3. | name   | age |  
  4. +--------+-----+  
  5. | mysql  |  25 |  
  6. | kenny  |  35 |  
  7. | lefred |  44 |  
  8. +--------+-----+ 

現(xiàn)在,我們?cè)傧蜻@個(gè)表插入一條新數(shù)據(jù): 

  1. insert into table2 (name, age) values ('PHP', 25);  
  2. select * from table2;  
  3. +--------+-----+  
  4. | name   | age |  
  5. +--------+-----+  
  6. | PHP    |  25 |  
  7. | mysql  |  25 |  
  8. | kenny  |  35 |  
  9. | lefred |  44 |  
  10. +--------+-----+ 

Mmmm...為什么PHP現(xiàn)在是第一行?

因?yàn)閡uid() 并不連續(xù)... 

  1. select bin_to_uuid(id), table2.* from table2;  
  2. +--------------------------------------+--------+-----+  
  3. | bin_to_uuid(id)                      | name   | age |  
  4. +--------------------------------------+--------+-----+  
  5. | 05aedcbd-5b36-11eb-94c0-c8e0eb374015 | PHP    |  25 |  
  6. | af2002e8-5b35-11eb-94c0-c8e0eb374015 | mysql  |  25 |  
  7. | af20117a-5b35-11eb-94c0-c8e0eb374015 | kenny  |  35 |  
  8. | af201296-5b35-11eb-94c0-c8e0eb374015 | lefred |  44 |  
  9. +--------------------------------------+--------+-----+ 

我們還有別的選擇嗎?

是的,如果我們參考官檔,我們可以使用uuid_to_bin() 函數(shù)。 

  1. alter table table2 add column id binary(16) invisible first;  
  2. alter table table2 modify column id binary(16)          
  3.                   default (UUID_TO_BIN(UUID(),1)) invisible;  
  4. update table2 set id=uuid_to_bin(uuid(),1); 

現(xiàn)在我們每次插入一條新記錄,插入如期望一樣是順序的: 

  1. select bin_to_uuid(id,1), table2.* from table2;  
  2. +--------------------------------------+--------+-----+  
  3. | bin_to_uuid(id,1)                    | name   | age |  
  4. +--------------------------------------+--------+-----+  
  5. | 5b3711eb-023c-e634-94c0-c8e0eb374015 | mysql  |  25 |  
  6. | 5b3711eb-0439-e634-94c0-c8e0eb374015 | kenny  |  35 |  
  7. | 5b3711eb-0471-e634-94c0-c8e0eb374015 | lefred |  44 |  
  8. | f9f075f4-5b37-11eb-94c0-c8e0eb374015 | PHP    |  25 |  
  9. | 60ccffda-5b38-11eb-94c0-c8e0eb374015 | PHP8   |   1 |  
  10. | 9385cc6a-5b38-11eb-94c0-c8e0eb374015 | Python |  20 |  
  11. +--------------------------------------+--------+-----+ 

我們之前看了從MySQL8.0.23后,新的不可見列的功能。如果主鍵沒有定義,我們?nèi)绾问褂盟鼮镮nnoDB表添加主鍵。

如之前所述,好的主鍵對(duì)InnoDB很重要(存儲(chǔ),IOPS,二級(jí)索引,內(nèi)存等)但是MySQL中主鍵還有一個(gè)重要的作用:復(fù)制!

異步復(fù)制

當(dāng)使用"傳統(tǒng)復(fù)制"時(shí),如果您修改了一行記錄(更新和刪除),那么要在副本上修改的記錄將使用索引來標(biāo)識(shí),當(dāng)然如果有主鍵的話,還會(huì)使用主鍵。InnoDB自動(dòng)生成的隱藏全局6字節(jié)主鍵永遠(yuǎn)不會(huì)被使用,因?yàn)樗侨值模圆荒鼙WC源和副本之間是相同的。你根本不應(yīng)該考慮它。

如果算法不能找到合適的索引,或者只能找到一個(gè)非唯一索引或者包含null值,則需要使用哈希表來識(shí)別表記錄。該算法創(chuàng)建一個(gè)哈希表,其中包含更新或者刪除操作的記錄,并用鍵作為該行之前完整的映像。然后,該算法遍歷目標(biāo)表中的所有記錄,如果找到了所選索引,則使用該索引,否則執(zhí)行全表掃描(參見官檔)。

因此,如果應(yīng)用程序不支持使用額外的鍵作為主鍵,則使用隱藏列作為主鍵是加快復(fù)制的一個(gè)方法。 

  1. mysql> create table t1 (name varchar(20), age int);  
  2. mysql> insert into t1 values ('mysql',25),('kenny', 35),('lefred', 44); 

現(xiàn)在添加一個(gè)自增列作為主鍵: 

  1. mysql> alter table t1 add id int auto_increment primary key first; 

然后按照應(yīng)用程序中指定的INSERT語句添加一條記錄: 

  1. mysql > insert into t1 values ('python',20);  
  2. ERROR: 1136: Column count doesn't match value count at row 1 

最好的方法是修改應(yīng)用的INSERT 語句,但是可能嗎?

多少應(yīng)用程序仍然是使用SELECT * ,并且引用列時(shí)如col[2]?

如果是這樣,您有兩種方法:

  1.  分析所有的查詢,使用重寫查詢插件
  2.  使用不可見列

在這種情況下,選擇是容易的(至少對(duì)像我這樣的懶人說)。 

  1. mysql > alter table t1 modify id int auto_increment invisible;  
  2. mysql > insert into t1 values ('python',20);  
  3. Query OK, 1 row affected (0.0887 sec) 

很簡(jiǎn)單,不是嗎?

組復(fù)制

MySQL InnoDB Cluster使用另一種復(fù)制:Group Replication。

使用組復(fù)制的要求之一是要有一個(gè)主鍵(這就是為什么可以使用sql_require_primary_key)。

我們使用上例中重構(gòu)表,不加主鍵,檢查該實(shí)例能否作為InnoDB Cluster:

https://lefred.be/wp-content/uploads/2021/01/Selection_9991017-1024x561.png

提示很清楚,該表上的修改不會(huì)復(fù)制到其他節(jié)點(diǎn)。

添加不可見主鍵,重新檢查:

https://lefred.be/wp-content/uploads/2021/01/Selection_9991018-1024x89.png

https://lefred.be/wp-content/uploads/2021/01/Selection_9991019-1024x384.png

這意味著,如果應(yīng)用程序使用的表沒有主鍵,不允許遷移到MySQL InnoDB Cluster等高可用架構(gòu)中,現(xiàn)在多虧了不可見列,這可以做到了。

這也解決了Hadoop Hive對(duì)MySQL InnoDB Cluster的支持(參見Hive-17306)。 

 

責(zé)任編輯:龐桂玉 來源: 老葉茶館
相關(guān)推薦

2015-02-10 11:15:46

Android 5.1Google

2015-02-05 09:29:25

Android 5.1

2009-01-16 10:01:57

MySQL復(fù)制特性測(cè)試

2012-05-07 13:45:45

Oraclen 11g虛擬列數(shù)據(jù)庫

2023-05-10 08:04:55

MySQL離線模式生效

2021-03-08 08:18:53

onStar Activity 界面

2018-09-19 16:15:18

MySQL直方圖數(shù)據(jù)庫

2010-07-08 13:38:42

SQL Server不

2015-07-17 13:45:12

MySQL 5.7

2009-02-09 09:38:41

新特性MySQL 6.0MySQL

2023-07-03 08:20:35

MySQL窗口函數(shù)

2015-07-17 13:43:09

MySQL 5.7

2010-05-12 17:55:30

MySQL 5.0

2015-07-17 13:27:16

MySQL 5.7

2021-09-27 06:50:06

MySQL參數(shù)持久化

2021-07-14 14:24:14

Python密碼程序員

2009-06-03 16:10:34

OpenSolaris

2020-09-28 07:56:16

Python3.9Python開發(fā)

2025-06-30 00:22:00

JavaScript語言原生

2024-09-11 09:30:58

IDEA工具編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

色播五月激情综合网| 337p粉嫩大胆噜噜噜噜噜91av | 黄色在线观看av| 高清在线视频不卡| 久久久久久久电影| 亚洲a级在线观看| 天堂网一区二区三区| 成人精品中文字幕| 亚洲成avwww人| 国产情侣av自拍| 手机在线免费观看av| 久久人人97超碰com| 亚洲va欧美va国产综合剧情| www.欧美色| 亚洲国产高清一区| 按摩亚洲人久久| 国产麻豆天美果冻无码视频 | 国产精品乱码一区二区三区| 亚洲国产无线乱码在线观看| 极品av少妇一区二区| 最近中文字幕2019免费| 麻豆精品国产传媒av| 日韩成人一区| 日本丶国产丶欧美色综合| 青青青在线观看视频| 九色在线免费| 99久久精品国产精品久久| 成人在线播放av| 中国a一片一级一片| 国产精品久久久久久模特| 久久亚洲国产精品| 日本成人免费在线观看| 伊人春色之综合网| 精品性高朝久久久久久久| 亚洲精品一区二区18漫画 | 欧美性受极品xxxx喷水| 欧美一级欧美一级| 青草视频在线免费直播| 国产精品美日韩| 日产中文字幕在线精品一区 | 日韩成人视屏| 欧美日韩国产美| 一区二区三区网址| 在线观看精品| 在线视频综合导航| 久久人妻精品白浆国产| 希岛爱理一区二区三区av高清| 亚州成人在线电影| 免费看国产曰批40分钟| 大黄网站在线观看| 亚洲成人免费视| 久久久久久久久久网| zzzwww在线看片免费| 亚洲国产毛片aaaaa无费看| 欧美一级免费播放| 国产在线88av| 日本韩国欧美国产| 天堂在线资源视频| 欧美日韩免费电影| 91精品欧美福利在线观看| 亚洲第一区第二区第三区| 欧美在线se| 日韩亚洲欧美中文三级| 亚洲 自拍 另类 欧美 丝袜| 日韩欧美中文字幕一区二区三区 | 成人写真视频福利网| 亚洲一卡二卡在线观看| 韩国一区二区三区| av成人午夜| 日本成人一区二区三区| 久久久精品影视| 在线不卡日本| 国产理论电影在线| 狠狠色狠狠色综合日日五| 可以免费观看av毛片| 久久久加勒比| 精品精品国产高清a毛片牛牛| 日本三级日本三级日本三级极| 亚洲成人一品| 久久精品99国产精品酒店日本| 欧美国产日韩综合| 中国女人久久久| 国产精品视频久久| 亚洲AV无码成人片在线观看| 99久久久国产精品| 亚洲国产午夜伦理片大全在线观看网站 | www.欧美黄色| 外国成人直播| 日韩一区二区在线观看视频 | 亚洲精品国产无天堂网2021 | 一区二区三区电影大全| 欧美日韩中字一区| 国产成人av片| 欧美日韩激情| 欧美国产日韩一区二区三区| 亚洲黄网在线观看| 国产老妇另类xxxxx| 欧美日韩成人一区二区三区| 国产原创精品视频| 欧美性黄网官网| 免费在线观看污网站| 女人抽搐喷水高潮国产精品| 色偷偷88888欧美精品久久久| 国产亚洲欧美久久久久| 日韩电影免费在线看| www.成人av| 91大神xh98hx在线播放| 精品福利樱桃av导航| 毛片毛片毛片毛| 竹菊久久久久久久| 欧美大片网站在线观看| 在线免费看av的网站| 97精品超碰一区二区三区| 激情六月天婷婷| 国产美女久久| 亚洲欧美日韩高清| 97超碰人人干| 国产精品1区二区.| 中文字幕一区二区三区在线乱码| 波多野结衣亚洲| 精品福利在线导航| 老湿机69福利| 极品美女销魂一区二区三区| 日本高清不卡三区| 密臀av在线播放| 日韩一级二级三级精品视频| 三级黄色录像视频| 日韩国产精品大片| 欧美日韩国产三区| 免费看男女www网站入口在线| 日韩欧美国产一区在线观看| 91香蕉视频污在线观看| 日韩电影在线免费| 欧洲精品国产| 亚洲永久av| 日韩av中文字幕在线| 久久黄色免费视频| 国产盗摄女厕一区二区三区| 无码人妻精品一区二区三区99v| 成人国产精品一区二区免费麻豆| 亚洲色图美腿丝袜| aaaaaa毛片| 久久欧美中文字幕| 国产a级片免费观看| 国产精品毛片av| 久久久噜噜噜久久中文字免| 成人精品在线播放| 亚洲影院久久精品| 国产婷婷在线观看| 中文精品视频| 欧美精品一区二区视频| 日韩新的三级电影| 伊人久久大香线蕉av一区二区| 中文字幕在线欧美| 国产日韩欧美亚洲| 日本中文字幕精品—区二区| 91亚洲国产| 91免费看片在线| 欧美日韩色网| 亚洲精品久久久久久下一站| 亚洲精品午夜国产va久久成人| 91啦中文在线观看| 国产又黄又猛又粗| 欧美一区91| 国产亚洲自拍偷拍| www.youjizz.com在线| 亚洲欧美日韩久久久久久| 中文字幕永久在线| 中文字幕一区不卡| 久久精品aⅴ无码中文字字幕重口| 亚洲日本欧美| 视频一区二区三| 国产精品日本一区二区三区在线 | 国产亚洲成年网址在线观看| 视色视频在线观看| 欧美阿v一级看视频| 国产综合动作在线观看| 欧美福利在线播放| 久热精品视频在线观看一区| 天堂在线中文网| 日本道在线观看一区二区| √天堂中文官网8在线| 成人一区二区三区视频| wwwxxx黄色片| 欧美一区二区三区久久精品| 久久人人爽爽人人爽人人片av| a屁视频一区二区三区四区| 欧美成人免费全部| 亚洲欧美日韩免费| 欧美精选午夜久久久乱码6080| 18精品爽视频在线观看| 久久精品一区二区三区四区| 99中文字幕在线| 亚洲欧美日韩精品一区二区| 特级毛片在线免费观看| 亚洲免费毛片| av蓝导航精品导航| 电影一区二区三| 欧美理论电影在线播放| 国产福利在线看| 亚洲电影中文字幕| 亚洲一区二区激情| 日韩欧美精品网站| 黄色一级视频免费| 中文字幕av一区二区三区高| 国产精品麻豆入口| 国精产品一区一区三区mba桃花| 日韩欧美视频网站| 中文字幕亚洲精品乱码| 色一情一区二区三区四区| 波多野结衣欧美| 成人信息集中地欧美| 久久爱91午夜羞羞| 高清一区二区三区日本久| 日本精品在线| 国产亚洲一区精品| 午夜成人免费影院| 精品久久久三级丝袜| 91成人一区二区三区| 在线看不卡av| 午夜婷婷在线观看| 亚洲国产成人va在线观看天堂 | 天天影视涩香欲综合网| 麻豆一区产品精品蜜桃的特点| 国产精品另类一区| 久久只有这里有精品| eeuss国产一区二区三区| 特级黄色片视频| 激情五月婷婷综合网| 亚洲一级免费观看| 日本不卡在线视频| www.日日操| 免费人成在线不卡| 成人免费在线观看视频网站| 日本欧美一区二区在线观看| 成人免费观看毛片| 米奇777在线欧美播放| 欧美亚洲另类色图| 久久精品亚洲| 无码人妻丰满熟妇区五十路百度| 奶水喷射视频一区| 一本大道熟女人妻中文字幕在线 | 国产精品亚洲第一区| 日本中文字幕一区二区| 国产精品aaa| 日本一区二区三区视频在线| 国产精品扒开腿做爽爽爽男男| 欧美日韩精品免费观看视完整| 青青久久av北条麻妃黑人| 在线日韩影院| 国产精品久久久久久影视| 精品视频一区二区三区四区五区| 国产精品爽黄69天堂a| 日本一区二区三区中文字幕| 成人有码视频在线播放| 日韩在线成人| 好吊妞www.84com只有这里才有精品| 国内视频在线精品| 久久久久久久久一区二区| 嫩草影视亚洲| 亚洲一卡二卡区| 中国成人一区| 欧美 日韩 亚洲 一区| 亚洲在线国产日韩欧美| 欧美伦理视频在线观看| 久久99久久久欧美国产| 欧美一区二区三区影院| 成人成人成人在线视频| 丰满少妇高潮一区二区| 亚洲国产成人在线| 欧美精品一级片| 日韩欧美亚洲一二三区| 亚洲无码久久久久| 日韩欧美国产一区在线观看| 深夜福利视频在线免费观看| 在线亚洲午夜片av大片| 中文字幕有码在线视频| 18一19gay欧美视频网站| 国产一区二区主播在线| 亚洲va电影大全| 欧美亚洲大陆| 亚洲一区二区三区精品视频| 午夜性色一区二区三区免费视频| 欧美日韩二三区| 美腿丝袜在线亚洲一区| 亚洲熟女一区二区| 国产精品日日摸夜夜摸av| 久久黄色免费网站| 欧美性猛交xxxx黑人交| 性色av蜜臀av| 一区二区三区www| 国产天堂在线播放视频| 国产精品久久网| 激情小说一区| 精品91一区二区三区| 男人的天堂成人在线| 小早川怜子一区二区三区| 91丝袜国产在线播放| 成年人午夜剧场| 日本电影亚洲天堂一区| 懂色av一区二区三区四区 | 国产网红女主播精品视频| 国产精品无av码在线观看| 国产女人18毛片水真多18精品| 樱花www成人免费视频| 性娇小13――14欧美| 欧美性猛交乱大交| 国产精品区一区二区三区| 国产精品国产三级国产专区52| 4hu四虎永久在线影院成人| 精彩国产在线| 97碰碰碰免费色视频| 久久在线观看| 亚洲一区二区三区欧美| 麻豆成人在线| 91av在线免费| 亚洲午夜精品在线| 99久久免费国产精精品| 色婷婷av一区二区三区在线观看| 欧美日韩视频网站| 久久国产精品久久| 国产精品vip| 日本中文字幕在线不卡| 国产精品免费免费| 中文文字幕一区二区三三| 精品视频在线播放免| av资源中文在线天堂| 99视频日韩| 欧美va天堂| 亚洲成人激情小说| 一级女性全黄久久生活片免费| 国产尤物在线观看| 久久精品国产一区| 亚洲欧洲日韩精品在线| 先锋影音网一区| 美女网站在线免费欧美精品| 日韩在线免费观看av| 日本高清免费不卡视频| 久久久久久女乱国产| 日本免费久久高清视频| 久久99国产精品视频| 熟妇人妻无乱码中文字幕真矢织江| 91麻豆成人久久精品二区三区| 日韩精品一区二区亚洲av| 精品在线欧美视频| 国产精品伦理| 日韩片电影在线免费观看| 蜜臀av一区二区三区| 国产一二三av| 欧美一个色资源| 96av在线| 日本成人黄色免费看| 久久精品72免费观看| 中国毛片直接看| 日韩精品一区二区三区老鸭窝| 超黄网站在线观看| 久久综合九色欧美狠狠| 丝袜国产日韩另类美女| 91视频免费看片| 69成人精品免费视频| 久久99亚洲网美利坚合众国| 精品久久久久久一区| 日韩精品电影在线| 一级片一级片一级片| 欧美成人三级在线| 手机在线观看av网站| 亚洲国产一区在线| 国产美女主播视频一区| 免费观看一级视频| 亚洲欧洲在线免费| 色999久久久精品人人澡69| japanese在线播放| 97久久超碰国产精品电影| 中文字幕在线观看精品| 欧美日韩国产123| 偷拍亚洲精品| 亚洲av无日韩毛片久久| 亚洲va韩国va欧美va精品 | 中文字幕av一区二区三区高 | www.国产色| 日韩中文字幕视频在线| 成人h动漫免费观看网站| 国产熟女高潮视频| 亚洲女性喷水在线观看一区| 天天干天天干天天干| 国产精品日日做人人爱 | 欧美在线观看视频网站| 亚洲欧美日韩系列| 欧美777四色影视在线 | 国产黄色高清视频| 日本久久久久久| 欧美欧美全黄| 国产黄色录像视频| 亚洲国产成人精品久久| 五月天色综合| 成年人小视频网站| 亚洲午夜精品一区二区三区他趣| 午夜免费福利在线观看| 久久婷婷人人澡人人喊人人爽| 国产在线麻豆精品观看|