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

一篇帶給你MySQL索引知識詳解

數據庫 MySQL
索引的出現其實就是為了提高數據查詢的效率,在表數據量較大時,索引的重要性尤為突出,可以理解為索引就像書的目錄一樣。

引言

通過本篇文章,我們可以收獲:

1、熟悉MySQL索引的基礎知識:

  • 索引是什么
  • 常見索引模型
  • InnoDB索引模型
  • 索引種類有哪些
  • 索引的應用場景

2、如何提高開發、DBA和QA 在項目過程中關于 Mysql 索引相關操作的技術分析能力。

一、背景

分享這篇文章的目的:提升開發、DBA、QA在項目過程中關于提測 sql 和 sql 變更中關于添加、修改、刪除索引合理性的分析能力。

二、MySQL索引

1概念說明

簡單來說,索引的出現其實就是為了提高數據查詢的效率,在表數據量較大時,索引的重要性尤為突出,可以理解為索引就像書的目錄一樣。

例如:一本1000頁的書,如果你想快速找到其中某個知識點,如果不按照目錄來查找,直接一頁頁翻開查找,無疑效率是十分低下的。

類比于數據庫的表而言,索引其實就是它的“目錄”。

2、常見索引模型

哈希表

哈希表是一種以鍵-值(Key-Value)格式存儲數據的結構,通過輸入待查找的 Key值,就可以找到該 Key 對應的 Value。

哈希的思想比較簡單,將值放在數組里,再使用哈希函數將輸入的 Key 值換算成一個確定位置的值,最后把 Value 放在數組的這個確定的位置。

因為多個輸入的 Key 值在使用哈希函數進行換算時,會出現多個 Key 換算出來是同一個值的情況,如下圖中的 id1 和 idn 換算的結果都為:x,這種情況下哈希表給出的處理方案是拉出一個鏈表。

例如,現有一張用戶表信息,需要根據用戶 id 來查找用戶 name,對應的哈希索引示意圖如下:

這時當你要查 id1 對應的名字是什么,處理步驟是:

首先,將 id1 通過哈希函數算出 x。

然后,按照順序遍歷,找到 User1,即可查詢到對應的 name 名稱。

注意:

圖中的 id 的值并不是有序遞增的,這樣做的好處是增加新的 User 時速度比較快,只需要往后追加。

但缺點也很明顯,因為不是有序的,所以哈希索引做區間查詢的速度是很慢的。因為需要進行全表掃描一遍。

小結:

哈希表這種結構適用于只有等值查詢的場景,比如一些NoSQL(非關系型數據庫)引擎。

有序數組

有序數組在等值查詢和范圍查詢場景中的性能是十分優秀的。

還是上面的根據用戶 id 來查找用戶 name 的例子,如果使用有序數組來實現的話,對應的示意圖如下:

假設這里的 id 沒有重復,數組就是按照 id 遞增的順序進行保存的,這時如果你要查 id2 對應的名字,用二分法就可以快速得到,這個時間復雜度是O(log(N))。這種索引結構能很好的支持范圍查詢 。

例如你想要查詢 [idm, idn] 區間的 User 的 name 信息,可以先用二分法找到 idm,如果不存在 idm,就去尋找大于 idm 的第一個 User,然后依次向右遍歷,直至查詢到第一個大于 idn 的 id 號,退出循環。

注意:

單從查詢效率來看,有序數組就是最好的數據結構了。思考一個問題,當這種數據結構在遇到更新數據(插入或刪除)時,會怎樣?

比如你刪除或插入一條記錄,就會非常麻煩,因為插入數據需要將后半部分的數據往后挪動一個位置,刪除數據需要將后半部分的數據往前挪動一個位置,成本太高了。

小結:

有序數組索引只適用于靜態存儲引擎,適合存儲不會再修改的數據。

二叉搜索樹

如果還是用上面使用 id 來查詢 name 的例子,來看下使用二叉搜索樹的數據結構來實現,對應的示意圖如下:

二叉搜索樹的特點:

父節點左子樹所有結點的值小于父節點的值,右子樹所有結點的值大于父節點的值。

如果你要查id2的信息話,按照圖中的搜索順序就是按照UserA—>UserC—>UserF—>User2這個路徑得到,這個時間復雜度是O(log(N))。

樹有二叉,也可以有多叉,多叉樹就是每個節點有多個兒子,兒子之間的大小保證從左到右是遞增的。

二叉樹是搜索效率最高的,但是實際上大多數的數據庫存儲卻并不使用二叉樹。原因是索引不僅存在內存中,也要寫到磁盤上。

3InnoDB索引模型

在 Mysql 中,索引是在存儲引擎層實現的,所以并沒有統一的索引標準,即使用不同的存儲引擎,其對應索引的工作方式并不一樣。

InnoDB存儲引擎在Mysql數據庫中使用最為普遍,下面來看下InnoDB的索引模型。

在InnoDB中,表都是根據主鍵順序以索引的形式存放的,這種存儲方式的表稱為索引組織表,且數據都是存儲在B+樹中的。

為什么使用的是B+樹,而不是其他的數據索引模型呢?

(1) 減少磁盤IO次數

B+樹的數據結構模型將所有數據都放到葉子節點,且葉子節點形成一個列表(可以做范圍查詢),非葉子節點只放鍵值,這樣每個數據葉中可存放的有效數據就多了,可以有效減少磁盤IO次數。

(2) 每次查詢的時間復雜度是固定的

在B+樹中,由于分支節點只是葉子節點的索引,所以對于任意關鍵字的查找都必須從根節點走到分支節點,所有關鍵字查詢路徑長度相同,每次查詢的時間復雜度是固定的。但是在B樹中,其分支節點上也保存有數據,對于每一個數據的查詢所走的路徑長度是不一樣的,所以查詢效率也不一樣。

(3) 遍歷效率更高

由于B+樹的數據都存儲在葉子節點上,分支節點均為索引,方便掃庫,只需掃一遍葉子即可。但是B樹在分支節點上都保存著數據,要找到具體的順序數據,需要執行一次中序遍歷來查找。所以B+樹更加適合范圍查詢的情況,在解決磁盤IO性能的同時解決了B樹元素遍歷效率低下的問題。

索引分類

聚簇索引

主鍵索引

在Innodb中,Mysql中的數據是按照主鍵的順序來存放的。那么聚簇索引就是按照每張表的主鍵來構造一顆B+樹,葉子節點存放的就是整張表的行數據。由于表里的數據只能按照一顆B+樹排序,因此一張表只能有一個聚簇索引。

在Innodb中,聚簇索引默認就是主鍵索引。

假如表沒有設定主鍵,則按照下列規則來創建聚簇索引。

  • 沒有主鍵時,會用一個唯一且不為空的索引列做為主鍵,成為此表的聚簇索引。
  • 如果沒有這樣的索引,InnoDB會隱式定義一個主鍵來作為聚簇索引。

例如現有一個主鍵列為id的user表,表中有字段 t 和 name,并且在 t 上有索引。

建表語句如下:

create table user(
id int primary key,
t int not null,
name varchar(16),
index (t))engine=InnoDB;

非聚簇索引

聯合索引

使用多個列字段建立的索引,稱為聯合索引,也叫組合索引。

聯合索引為:(t,name)。

其建表語句如下:

create table user(
id int primary key,
t int not null,
name varchar(16),
index(t),
index(t,name) )engine=innodb;

說到聯合索引,一定要談談最左匹配原則。

所謂最左匹配原則指的就是如果 SQL 語句中用到了聯合索引中的最左邊的索引,那么這條 SQL 語句就可以利用這個聯合索引去進行匹配,值得注意的是,當遇到范圍查詢(>、<、between、like)就會停止匹配。

設定表T已建立聯合索引(id, name)。

where條件為:

  • id = 1 或者
  • id = 1 and name = 'tom'

滿足聯合索引的最左匹配原則,是可以匹配索引來執行sql的。

where條件為:

  • name = 'tom' and id = 1

也滿足聯合索引的最左匹配原則,因為Mysql優化器會自動調整id,name的順序與索引順序一致,這樣就能用到聯合索引了。

where條件為:

  • name = 'tom'

不滿足聯合索引的最左匹配原則,也就無法使用(id, name)的聯合索引了。

設定表T已建立聯合索引(a, b, c, d)。

where條件為:

  • a = 10 and b = 20 and c >100 and d = 5

這個where條件,只有a, b, c能使用到聯合索引,d無法使用索引,因為c>100屬于范圍查詢,將后面d的索引匹配給中斷了。

前綴索引

當索引列的字符比較多時,索引很大且速度很慢,此時可以優化索引列,只索引列開始的部分字符串,以此節約索引空間,提高索引效率。

前綴索引的使用原則是:降低重復的索引值。

例如有以下一張學生表,st_num為學號:

從上表可以發現 st_num 字段前7位都是重復的,都是以0102021開頭的。

如果使用前1-7位字符來做前綴索引就會出現大量索引值重復的情況。

此時索引值重復性高,查詢效率低下,不符合前綴索引的原則,因此可以依據具體需求來決定使用前8-10位字符來做前綴索引。

前綴索引創建方式如下:

create table `student` (
`st_num` varchar(255) not null,
`sex` int(10) not null,
`name` varchar(255) not null,
index (st_num(8))
)engine=InnoDB;

普通索引

如下user建表語句中的 t 就是一個普通索引,普通索引與主鍵索引的區別在于,普通索引的葉子節點存放的不是行數據,而是主鍵值。(在索引原理中會詳細說明)。

例如現有一個主鍵列為id的user表,表中有字段 t 和 name,并且在 t 上有索引。

建表語句如下:

create table user(
id int primary key,
t int not null,
name varchar(16),
index (t))engine=InnoDB;

例如:

select * from user where t=100;

這個查詢sql會通過 t 這個普通索引在自身的 B+ 樹上找到對應主鍵:1,然后再使用1在主鍵索引所在的B+樹上查詢出真實表的行數據后返回結果,這個操作被稱為回表。

唯一索引

與普通索引類似,不同點在于唯一索引的索引列的值必須唯一,但允許有空值,這點與主鍵不同(主鍵索引列的值唯一,但不能為空)。

如果是多個字段組成的聯合索引,則列值的組合必須唯一,創建方法與普通索引類似。

全文索引

5.6版本之后InnoDB存儲引擎開始支持全文索引,Mysql允許在char、varchar、text類型上建立全文索引。

Mysql支持三種模式的全文檢索模式:

  • 自然語言模式:通過match against 傳遞某個特定的字符串進行檢索。
  • 布爾模式:可以為檢查的字符串增加操作符。

布爾操作符可以通過以下sql語句查看:

  • 查詢擴展模式:當查詢的關鍵字太短,用戶需要隱含知識時進行。

例如,對于單詞operating system的查詢,用戶可能希望查詢的結果除了包含operating system的文檔,還應該包含linux,windows,unix的單詞。

這種查詢會分2次執行檢索,第1次是使用給定的operating system的短語進行檢索,第2次結合第一次相關性比較高的進行檢索。

索引原理

聚簇索引

以下面一張學生表student為例,其中s_id為主鍵。

對應的聚簇索引結構圖如下:

從圖中可以看下結構圖共分為上下部分,上部分是:由主鍵s_id形成聚簇索引(B+樹),下部分是:student表存儲在磁盤上的真實數據。

當我們使用主鍵s_id作為查詢條件時,來看下以下sql的執行過程。

select * from student where s_id='25';

如上圖所示,從根開始,經過3次查找,就可以找到s_id=25對應的真實數據。如果不使用索引,那就要在磁盤上,進行逐行掃描,直到找到數據位置。

顯然,使用索引速度會快。但是在寫入數據的時候,需要維護這顆B+樹的結構,因此寫入性能會下降!

聚簇索引(主鍵索引)的葉子節點存儲的是整行數據。

非聚簇索引

還是以上述的學生表 student 為例,給該表添加普通索引 name 后,結構圖中新增一棵 name 字段的非聚簇索引的 B+ 樹。

如下圖所示:

因此, 我們每加一個索引,就會增加表的體積,占用磁盤存儲空間。

請注意看name字段的非聚簇索引B+樹上的葉子節點,非聚簇索引的葉子節點并不是真實數據,它的葉子節點依然是索引節點,存放的是該索引字段的值以及對應的主鍵(s_id)索引(聚簇索引)。

此時執行下列查詢語句:

select * from student where name='Candy';

通過上圖紅線可以看出,查詢路徑是先從非聚簇索引樹開始查找,然后找到聚簇索引后根據聚簇索引,在s_id的聚簇索引的B+樹上,找到完整的數據!這個過程稱為回表。

也就是說,基于非主鍵索引的查詢需要多掃描一棵索引樹。因此,我們在應用中應該盡量使用主鍵查詢。

索引維護

因為B+樹為了維護索引有序性,在插入新值或刪除數據的時候需要做必要的維護。

以上圖為示例,如果需要插入新的s_id值為50,則需要在s_id=44的記錄后面插入一行新記錄。但如果插入的s_id的值為:28,則需要將s_id=31的數據往后挪動。

假如s_id=44所在的數據頁滿了,根據B+樹的算法,此時需要申請一個新的數據頁,然后將部分數據挪動到新的數據頁上,這個過程稱為頁分裂。這種情況下,性能自然會受到影響。

頁分裂帶來的不僅是性能的影響,還會影響數據頁的利用率。原本放在一個頁的數據,現在分到2個數據頁上,整體空間利用率大幅下降。

當相鄰兩個頁由于刪除了數據,利用率很低之后,會將數據頁做合并。合并的過程,可以認為是分裂過程的逆過程。

基于上述對索引維護過程的說明,下面來討論一個具體案例:

  • 哪些場景下應該使用自增主鍵?
  • 哪些場景下又不應該使用自增主鍵?

我們知道自增主鍵是指自增列上定義的主鍵,在建表語句中一般是使用關鍵字:NOT NULL PRIMARY KEY AUTO_INCREMENT來定義的。

這樣在插入新的記錄時,是不需要指定自增主鍵列 id 值的,因為系統會獲取當前 id 最大值后+1作為下一條記錄的自增主鍵列 id 的值。

這種插入數據的模式都是追加操作,不涉及到挪動其他記錄的操作,也就不會觸發葉子節點的分裂了。

從性能角度看:

如果使用業務邏輯的字段做主鍵,則相比自增主鍵id,不太容易保證有序插入,這樣寫數據成本相對較高。

從存儲空間角度看:

假設user表中有一個字符串類型的身份證號字段,且是唯一不重復的,此時是用身份證號做主鍵,還是使用自增字段做主鍵比較好呢?

前面講索引原理中講到非聚簇索引的葉子節點上都是主鍵的值,如果使用身份證號做主鍵,那么每個非主鍵索引的葉子節點占用約20個字節,而如果使用整型做主鍵,則只需要4個字節,如果是長整型(bigint)則是8個字節。

由此可知,主鍵長度越小,普通索引的葉子節點就越小,普通索引整體占用的空間也就越小。

因此從性能和存儲空間兩方面來考慮,使用自增主鍵作為索引是更優的選擇。

單個索引的值字符長度不能過大,因為B+樹索引并不能直接找到行,只是找到行所在的頁,通過從磁盤把整頁讀入內存,再在內存中查找。

其中每頁的大小是有規定的,頁是InnoDB管理存儲空間的基本單位:1頁=16kb,原則是盡量在一個頁內存放多個索引。

覆蓋索引

還是以上述例子來講解,現將下列查詢語句:

select * from student where name='Candy';

修改為:

select s_id from student where name='Candy';

這時只需要查 s_id 的值,而 s_id 的值已經在普通索引 name上了,因此可以從非聚簇索引B+樹上直接返回查詢結果,不需要回表操作。

也就是說,在這個查詢里面,索引name已經覆蓋了我們的查詢需求,因此稱為覆蓋索引。

由于覆蓋索引可以減少樹的搜索次數,顯著提升查詢性能,所以使用覆蓋索引是一個常用的性能優化手段。

應用場景

  1. 當只有一個索引,且該索引一定是唯一索引。這種場景適合用業務字段直接做主鍵。業務使用時盡量使用主鍵查詢,避免回表。
  2. 當表是經常需要更新的不適合做索引,頻繁更新會導致索引也會頻繁更新,降低寫的效率。
  3. 使用索引進行模糊查詢時,切記 like 后的關鍵字的前面不能使用%(例如:name like "%三"),只能在關鍵字的后面加上%,因為索引是從左至右匹配的,如果在前面加上%就無法找到索引。
  4. 數據表過大時,當索引字段的字符長度過長則不適合作為索引。因為查詢大量數據時,索引即使有效,但是速度依然慢。
  5. 表數據量大且字段值有較多相同值的時候適合選擇使用普通索引。
  6. 當字段多且字段值沒有重復的時候用唯一索引。
  7. 當where條件后查詢字段較多,適合建立聯合索引。
  8. 不會出現在where條件后的查詢字段,不要建立索引。

三、總結

  1. 項目代碼在 code diff 時會發現常用的業務查詢 sql,根據 where 條件來判斷頻繁查詢字段,再根據本文分享的索引知識,來判斷在sql審核中關于索引相關的操作是否合理且有效。
  2. 測試過程中通過設置 slow sql 查詢參數,找出對應的 sql 查詢語句,分析 slow sql 產生的原因,并給出自己的解決方案,如添加必要的字段索引。
責任編輯:姜華 來源: 今日頭條
相關推薦

2021-03-18 08:53:44

MySQL數據庫索引

2022-04-29 14:38:49

class文件結構分析

2021-04-14 14:16:58

HttpHttp協議網絡協議

2022-03-29 08:18:32

位圖算法索引技術

2021-03-15 10:03:17

MySQL數據庫索引

2021-03-12 09:21:31

MySQL數據庫邏輯架構

2021-04-01 10:51:55

MySQL鎖機制數據庫

2021-03-28 09:12:58

多線程死鎖技術熱點

2021-08-06 17:47:46

Kotin高階函數函數

2023-03-09 07:47:56

BeanFactorSpring框架

2024-04-15 08:17:21

Spring依賴注入循環依賴

2021-07-12 06:11:14

SkyWalking 儀表板UI篇

2021-09-06 08:31:11

Kafka架構主從架構

2021-04-08 11:00:56

CountDownLaJava進階開發

2021-07-21 09:48:20

etcd-wal模塊解析數據庫

2024-06-13 08:34:48

2022-02-17 08:53:38

ElasticSea集群部署

2021-06-21 14:36:46

Vite 前端工程化工具

2022-03-22 09:09:17

HookReact前端

2021-01-28 08:55:48

Elasticsear數據庫數據存儲
點贊
收藏

51CTO技術棧公眾號

91精品麻豆日日躁夜夜躁| 99国产欧美久久久精品| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 亚洲色图18p| 手机av在线网| 动漫一区二区| 中文字幕精品在线不卡| 成人国产视频在线观看| 亚洲人成小说网站色在线| 国产在线一区二区三区播放| 国语对白做受69按摩| 久久国产小视频| 欧美成人女星排名| 日韩一级理论片| 男男gaygays亚洲| 久久精品欧美日韩精品| 91福利视频导航| 中文字幕av片| 亚洲一区二区毛片| 日韩视频中文字幕| 91精品人妻一区二区三区蜜桃欧美| 精品久久99| 欧美日韩亚洲一区二区三区| 久久av秘一区二区三区| 天堂中文在线8| 成人夜色视频网站在线观看| 国产精品久久久久久一区二区| 伊人365影院| 国产ts一区| 日韩免费看网站| 亚洲黄色片免费| 视频一区在线免费看| 欧美日韩国产黄| 成人在线视频一区二区三区| 欧美三级电影一区二区三区| 久久久99精品免费观看不卡| 国产精品夜夜夜一区二区三区尤| 国产精品成人一区二区| 国产成人av免费观看| jizz亚洲女人高潮大叫| 欧美性猛xxx| 97在线国产视频| 亚洲奶水xxxx哺乳期| 国产精品久久久久影院亚瑟| 欧美婷婷久久| 色鬼7777久久| 成人av在线一区二区三区| 91九色精品视频| 亚洲一区二区三区网站| 日韩一区精品视频| 国产成人av网址| 中文在线第一页| 欧美专区在线| 日本久久久久久久| 欧美国产一级片| 日本大胆欧美人术艺术动态| 国产精品福利网站| 欧美激情一区二区三区免费观看| 日韩va亚洲va欧美va久久| 国产精品高清在线| 亚洲无码久久久久久久| 精品一区二区在线看| 成人国产精品av| 999国产精品视频免费| 国产一级精品在线| 成人激情直播| 午夜视频福利在线| 91免费视频观看| 日韩福利视频| 精品孕妇一区二区三区| 亚洲男人电影天堂| 国产真人做爰毛片视频直播| 国产h片在线观看| 日韩欧美在线视频观看| 9久久婷婷国产综合精品性色 | 国产精品永久免费在线| 一二三区在线播放| 国产成a人亚洲精品| http;//www.99re视频| 日韩福利视频| 亚洲黄网在线观看| 美国十次了思思久久精品导航| 成人黄色影片在线| 黄色小视频免费在线观看| 97久久精品人人澡人人爽| 日韩高清国产一区在线观看| 老司机在线看片网av| 亚洲午夜激情网站| 麻豆av免费在线| 91视频成人| 日韩成人激情在线| 精品手机在线视频| 激情久久久久| 国产精品麻豆va在线播放| 99热这里只有精品3| 99这里只有精品| 一本色道久久综合亚洲精品婷婷 | 囯产精品一品二区三区| 久久久噜噜噜久久人人看| 中文字幕中文字幕在线中心一区| 国产第一页在线视频| 91高清在线观看| 麻豆免费在线观看视频| 菠萝蜜一区二区| 欧美精品videofree1080p| 国产成人a v| 成人动漫一区二区在线| 一区二区三区精品国产| 日韩深夜视频| 欧美mv和日韩mv的网站| 长河落日免费高清观看| 亚洲久久视频| 51成人做爰www免费看网站| 免费福利在线视频| 亚洲国产aⅴ成人精品无吗| 中文字幕中文在线| 国产亚洲一区| 97超级碰碰碰| 国产91免费在线观看| 亚洲欧洲成人自拍| 男女男精品视频站| 日韩福利视频一区| 欧美精品激情视频| 国产丰满美女做爰| 国产精品久久久久久一区二区三区| 色综合久久久久无码专区| 一区二区视频国产| 日韩另类视频| 国产精品婷婷| 欧美另类高清videos| 最近日韩免费视频| 国产午夜精品一区二区三区视频| 日本福利视频一区| 9l亚洲国产成人精品一区二三| 精品久久久91| 97超碰国产在线| 国产精品日日摸夜夜摸av| 久久久久久久久久福利| 色婷婷狠狠五月综合天色拍 | 国产精品一区二区黑丝| 在线电影看在线一区二区三区| 日韩中文影院| 这里只有精品视频在线| 无码人妻av免费一区二区三区| 91欧美一区二区| 欧美牲交a欧美牲交aⅴ免费下载| 日韩人体视频| 日本亚洲欧洲色α| 国产原创av在线| 欧美最猛黑人xxxxx猛交| 娇妻被老王脔到高潮失禁视频| 久久久久久网| 亚洲成色www久久网站| 岛国精品在线| 久久久999成人| 亚洲av无码一区二区三区dv| 一区二区三区在线视频免费| 亚洲性图第一页| 亚洲午夜电影| 久草一区二区| 三上悠亚激情av一区二区三区 | 肉丝袜脚交视频一区二区| 日本一区二区精品视频| 69堂免费精品视频在线播放| 中文字幕亚洲欧美日韩2019| 91麻豆一区二区| 一区二区三区精品| 亚洲的天堂在线中文字幕| 欧洲成人午夜精品无码区久久| 久久久久久久久久久久久久久久久久 | 日本免费一区二区视频| 久久免费国产视频| 青青草超碰在线| 欧美日韩另类一区| 五月婷婷一区二区| av亚洲精华国产精华精华| 激情网站五月天| 性欧美69xoxoxoxo| 国内视频一区二区| jizz免费一区二区三区| 欧美日本高清一区| 九色在线观看视频| 欧美一区二区大片| 五月天综合激情网| 国产精品视频你懂的| 自拍视频第一页| 免费日韩av片| 91成人在线视频观看| 久久精品福利| 国产精品露脸自拍| av电影免费在线看| 色诱女教师一区二区三区| 好吊色一区二区| 欧美日韩一区中文字幕| 国产亚洲色婷婷久久99精品| 国产拍揄自揄精品视频麻豆| 欧美污在线观看| 翔田千里一区二区| 亚洲av综合色区| 国产精品一区二区av交换| 91亚洲永久免费精品| 成人免费短视频| 欧美黑人国产人伦爽爽爽| 猫咪在线永久网站| 欧美r级在线观看| 一区二区不卡视频在线观看| 精品色蜜蜜精品视频在线观看| 久久久久久久久久97| 久久蜜桃av一区二区天堂| 久久久久亚洲av片无码v| 婷婷国产在线| 中文字幕在线观看一区二区| 中国极品少妇videossexhd | 国产成人激情小视频| 国产传媒在线播放| 亚洲性av在线| 视频一区二区在线播放| 日韩一区二区免费在线电影| 无码人妻av一区二区三区波多野| 亚洲地区一二三色| 成人免费黄色小视频| 中文字幕不卡的av| 深爱五月激情网| 99热精品一区二区| 日韩成人av影院| 国产在线国偷精品免费看| 男人天堂成人在线| 久久精品女人天堂| 男女高潮又爽又黄又无遮挡| 合欧美一区二区三区| 视频一区二区视频| 欧美a级成人淫片免费看| 日韩国产伦理| 欧美日韩在线二区| 国产尤物91| 国产精品极品国产中出| 99在线观看视频网站| 国产aⅴ精品一区二区四区| 国产视频999| 欧美成a人片免费观看久久五月天| 日韩女优人人人人射在线视频| 亚洲十八**毛片| 97婷婷涩涩精品一区| 97天天综合网| 性欧美xxxx视频在线观看| 中文字幕中文字幕在线十八区| 日韩性生活视频| 久久日韩视频| 香蕉久久国产| 麻豆91蜜桃| 免费久久精品| 日韩三级在线播放| 日本不卡二三区| 亚洲欧洲久久| 99re6这里只有精品| 尤物一区二区三区| 在线一区免费| 91亚洲精品国产| av不卡在线| 免费激情视频在线观看| 日韩成人免费电影| 在线观看免费av网址| 国产成人在线视频免费播放| 稀缺小u女呦精品呦| 99re视频精品| 国产精品天天干| 国产精品久久久久久久久久久免费看 | 欧洲免费在线视频| 正在播放欧美一区| h片在线免费| 91国产精品视频在线| 日韩成人影音| 91久久精品美女高潮| 99热这里只有精品首页| 免费99视频| 91精品国产自产在线观看永久∴| 免费人成在线观看视频播放| 国产精品尤物| 亚洲激情在线看| va亚洲va日韩不卡在线观看| a资源在线观看| 夜夜夜精品看看| 亚洲大尺度在线观看| 制服丝袜亚洲色图| 深夜福利在线看| 久久香蕉国产线看观看网| 三妻四妾的电影电视剧在线观看| 国产精品你懂得| 国产在线播放精品| 亚洲在线色站| 国产精品主播| 黑人巨大猛交丰满少妇| 国产亚洲欧美日韩俺去了| 日韩在线高清视频| 国产三级在线免费观看| 色综合天天综合网国产成人网| 午夜av不卡| 91精品天堂| 成人高清电影网站| 黄页免费在线观看视频| 久久se精品一区二区| 日本黄色网址大全| 一区二区三区日韩欧美| 欧美成人一区二区视频| 日韩电影中文字幕av| av免费看在线| 国产精品久久97| 日韩福利视频一区| 国产一区二区三区乱码| 麻豆成人免费电影| 深爱五月激情网| 亚洲成人免费视频| 国产裸体永久免费无遮挡| 亚洲午夜精品久久久久久久久久久久| 污的网站在线观看| 成人有码在线播放| 成人羞羞视频在线看网址| 女性女同性aⅴ免费观女性恋| 国产在线播精品第三| 久久一级免费视频| 欧美午夜影院一区| 国产小视频免费在线网址| 国模视频一区二区| 一区二区网站| 9色视频在线观看| 精品在线亚洲视频| 98精品在线视频| 国产成人高清精品免费5388| av电影一区二区三区| 老司机精品视频一区二区三区| 小早川怜子久久精品中文字幕| 精品久久久久久电影| 日韩永久免费视频| 久久久影视精品| 大型av综合网站| 久久国产精品网| 不卡一二三区首页| www.国产成人| 亚洲精品成人久久电影| 嗯啊主人调教在线播放视频| 国产91免费视频| 最新日韩av| 欧美高清性xxxx| 日韩欧美黄色动漫| 国产粉嫩一区二区三区在线观看 | 国产精品久久乐| 一区二区日本伦理| 国产专区欧美精品| a级片在线观看免费| 精品国产人成亚洲区| 波多野结衣久久| 精品久久中出| 久久婷婷久久| 国产又粗又猛又爽又黄的视频小说| 欧美在线制服丝袜| 日本免费在线观看| 91成人免费在线观看| 亚洲精品1234| 四虎永久免费在线观看| 欧美性做爰猛烈叫床潮| 九色网友自拍视频手机在线| 国产精品爽爽ⅴa在线观看| 日韩精品一区二区久久| 国产又粗又长又爽又黄的视频| 一区二区三区在线视频免费观看 | 夜夜嗨av色一区二区不卡| 国产精品4hu.www| 老司机午夜免费福利视频| 成人免费av资源| 中文在线第一页| 久久精品成人欧美大片古装| 日韩在线观看一区二区三区| av高清在线免费观看| 国产三级三级三级精品8ⅰ区| 正在播放木下凛凛xv99| 美女精品视频一区| 日韩精选在线| 性欧美在线视频| 精品久久久久久久久久国产| 超碰国产在线| 国产精品福利视频| 免费高清在线一区| 欧美日韩偷拍视频| 亚洲视频在线免费观看| 激情视频亚洲| 可以免费在线看黄的网站| 亚洲人成小说网站色在线 | 不卡亚洲精品| 国产情侣第一页| 中文字幕欧美区| 六月婷婷中文字幕| 国产精品视频yy9099| 亚洲一级高清| 蜜桃视频最新网址| 亚洲高清免费观看高清完整版| 成人国产激情在线| 动漫av网站免费观看| 亚洲欧美韩国综合色| 青青草手机在线| 国产精品国产三级欧美二区|