中文字幕欧美日韩一区二区三区_高清久久一区_阳光姐妹淘韩国版_日韩精品免费视频一区二区三区_91在线成人_一级黄色免费_精品欧美黑人一区二区三区

北京北大青鳥學(xué)術(shù)部提供:SQL SERVER 建立索引

北京北大青鳥學(xué)術(shù)部提供:
假設(shè)你想找到本書中的某一個句子。你可以一頁一頁地逐頁搜索,但這會花很時間。而通過使用本書的索引,你可以很快地找到你要搜索的主題。表的索引與附在一本書后面的索引非常相似。它可以極大地提高查詢的速度。對一個較大的表來說,通過加索引,一個通常要花費幾個小時來完成的查詢只要幾分鐘就可以完成。

因此沒有理由對需要頻繁查詢的表增加索引。
注意:
當(dāng)你的內(nèi)存容量或硬盤空間不足時,也許你不想給一個表增加索引。對于包含索引的數(shù)據(jù)庫,SQL Sever 需要一個可觀的額外空間。例如,要建立一個聚簇索引,需要大約1.2倍于數(shù)據(jù)大小的空間。要看一看一個表的索引在數(shù)據(jù)庫中所占的空間大小,你可以使用系統(tǒng)存儲過程sp_spaceused,對象名指定為被索引的表名。

聚簇索引和非聚簇索引(北京北大青鳥)
假設(shè)你已經(jīng)通過本書的索引找到了一個句子所在的頁碼。一旦已經(jīng)知道了頁碼后,你很可能漫無目的翻尋這本書,直至找到正確的頁碼。通過隨機的翻尋,你最終可以到達正確的頁碼。但是,有一種找到頁碼的更有效的方法。

首先,把書翻到大概一半的地方,如果要找的頁碼比半本書處的頁碼小,就書翻到四分之一處,否則,就把書翻到四分之三的地方。通過這種方法,你可以繼續(xù)把書分成更小的部分,直至找到正確的頁碼附近。這是找到書頁的非常有效的一種方法。
SQL Sever 的表索引以類似的方式工作。一個表索引由一組頁組成,這些頁構(gòu)成了一個樹形結(jié)構(gòu)。根頁通過指向另外兩個頁,把一個表的記錄從邏輯上分成和兩個部分。而根頁所指向的兩個頁又分別把記錄分割成更小的部分。每個頁都把記錄分成更小的分割,直至到達葉級頁。

索引有兩種類型:聚簇索引和非聚簇索引。在聚簇索引中,索引樹的葉級頁包含實際的數(shù)據(jù):記錄的索引順序與物理順序相同。在非聚簇索引中,葉級頁指向表中的記錄:記錄的物理順序與邏輯順序沒有必然的聯(lián)系。

聚簇索引非常象目錄表,目錄表的順序與實際的頁碼順序是一致的。非聚簇索引則更象書的標(biāo)準(zhǔn)索引表,索引表中的順序通常與實際的頁碼順序是不一致的。一本書也許有多個索引。例如,它也許同時有主題索引和作者索引。同樣,一個表可以有多個非聚簇索引。通常情況下,你使用的是聚簇索引,但是你應(yīng)該對兩種類型索引的優(yōu)缺點都有所理解。每個表只能有一個聚簇索引,因為一個表中的記錄只能以一種物理順序存放。通常你要對一個表按照標(biāo)識字段建立聚簇索引。但是,你也可以對其它類型的字段建立聚簇索引,如字符型,數(shù)值型和日期時間型字段。從建立了聚簇索引的表中取出數(shù)據(jù)要比建立了非聚簇索引的表快。當(dāng)你需要取出一定范圍內(nèi)的數(shù)據(jù)時,用聚簇索引也比用非聚簇索引好。例如,假設(shè)你用一個表來記錄訪問者在你網(wǎng)點上的活動。如果你想取出在一定時間段內(nèi)的登錄信息,你應(yīng)該對這個表的DATETIME 型字段建立聚簇索引。

對聚簇索引的主要限制是每個表只能建立一個聚簇索引。但是,一個表可以有不止一個非聚簇索引。實際上,對每個表你最多可以建立249個非聚簇索引。你也可以對一個表同時建立聚簇索引和非聚簇索引。(北京北大青鳥)

假如你不僅想根據(jù)日期,而且想根據(jù)用戶名從你的網(wǎng)點活動日志中取數(shù)據(jù)。在這種情況下,同時建立一個聚簇索引和非聚簇索引是有效的。你可以對日期時間字段建立聚簇索引,對用戶名字段建立非聚簇索引。如果你發(fā)現(xiàn)你需要更多的索引方式,你可以增加更多的非聚簇索引。

非聚簇索引需要大量的硬盤空間和內(nèi)存。另外,雖然非聚簇索引可以提高從表中 取數(shù)據(jù)的速度,它也會降低向表中插入和更新數(shù)據(jù)的速度。每當(dāng)你改變了一個建立了非聚簇索引的表中的數(shù)據(jù)時,必須同時更新索引。因此你對一個表建立非聚簇索引時要慎重考慮。如果你預(yù)計一個表需要頻繁地更新數(shù)據(jù),那么不要對它建立太多非聚簇索引。另外,如果硬盤和內(nèi)存空間有限,也應(yīng)該限制使用非聚簇索引的數(shù)量。

索引屬性
這兩種類型的索引都有兩個重要屬性:你可以用兩者中任一種類型同時對多個字段建立索引(復(fù)合索引);兩種類型的索引都可以指定為唯一索引。
你可以對多個字段建立一個復(fù)合索引,甚至是復(fù)合的聚簇索引。假如有一個表記錄了你的網(wǎng)點訪問者的姓和名字。如果你希望根據(jù)完整姓名從表中取數(shù)據(jù),你需要建立一個同時對姓字段和名字字段進行的索引。這和分別對兩個字段建立單獨的索引是不同的。當(dāng)你希望同時對不止一個字段進行查詢時,你應(yīng)該建立一個對多個字段的索引。如果你希望對各個字段進行分別查詢,你應(yīng)該對各字段建立獨立的索引。(北京北大青鳥)

兩種類型的索引都可以被指定為唯一索引。如果對一個字段建立了唯一索引,你將不能向這個字段輸入重復(fù)的值。一個標(biāo)識字段會自動成為唯一值字段,但你也可以對其它類型的
字段建立唯一索引。假設(shè)你用一個表來保存你的網(wǎng)點的用戶密碼,你當(dāng)然不希望兩個用戶有相同的密碼。通過強制一個字段成為唯一值字段,你可以防止這種情況的發(fā)生。

用SQL建立索引
為了給一個表建立索引,啟動任務(wù)欄SQL Sever 程序組中的ISQL/w 程序。進入查詢窗
口后,輸入下面的語句:
CREATE INDEX mycolumn_index ON mytable (myclumn)
這個語句建立了一個名為mycolumn_index 的索引。你可以給一個索引起任何名字,但你應(yīng)該在索引名中包含所索引的字段名,這對你將來弄清楚建立該索引的意圖是有幫助的。
注意:
在本書中你執(zhí)行任何SQL語句,都會收到如下的信息:
This command did not return data,and it did not return any rows
這說明該語句執(zhí)行成功了。
索引mycolumn_index對表mytable 的mycolumn字段進行。這是個非聚簇索引,也是個非唯一索引。(這是一個索引的缺省屬性)如果你需要改變一個索引的類型,你必須刪除原來的索引并重建 一個。建立了一個索
引后,你可以用下面的SQL 語句刪除它:
DROP INDEX mytable.mycolumn_index
注意在DROP INDEX 語句中你要包含表的名字。在這個例子中,你刪除的索引是
mycolumn_index,它是表mytable 的索引。
要建立一個聚簇索引,可以使用關(guān)鍵字CLUSTERED。)記住一個表只能有一個聚簇索引。
(這里有一個如何對一個表建立聚簇索引的例子:(北京北大青鳥)

CREATE CLUSTERED INDEX mycolumn_clust_index ON mytable(mycolumn)
如果表中有重復(fù)的記錄,當(dāng)你試圖用這個語句建立索引時,會出現(xiàn)錯誤。但是有重復(fù)記錄的表也可以建立索引;你只要使用關(guān)鍵字ALLOW_DUP_ROW把這一點告訴SQL Sever 即可:
CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn)
WITH ALLOW_DUP_ROW
這個語句建立了一個允許重復(fù)記錄的聚簇索引。你應(yīng)該盡量避免在一個表中出現(xiàn)重復(fù)記錄,但是,如果已經(jīng)出現(xiàn)了,你可以使用這種方法。
要對一個表建立唯一索引,可以使用關(guān)鍵字UNIQUE。對聚簇索引和非聚簇索引都可以使用這個關(guān)鍵字。這里有一個例子:
CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn)
這是你將經(jīng)常使用的索引建立語句。無論何時,只要可以,你應(yīng)該盡量對一個對一個表建立唯一聚簇索引來增強查詢操作。最后,要建立一個對多個字段的索引──復(fù)合索引──在索引建立語句中同時包含多個字段名。下面的例子對firstname 和lastname兩個字段建立索引:
CREATE INDEX name_index ON username(firstname,lastname)
這個例子對兩個字段建立了單個索引。在一個復(fù)合索引中,你最多可以對16 個字段進
行索引。
一. 聚集索引B樹分析(北京北大青鳥)

  1.聚集索引按B樹結(jié)構(gòu)進行組織的,索引B樹種的每一頁稱為一個索引節(jié)點。B樹的頂端節(jié)點稱為根節(jié)點。
  索引中的低層節(jié)點稱為葉節(jié)點。根節(jié)點與葉節(jié)點之間的任何索引級別統(tǒng)稱為中間級。在聚集索引中,葉節(jié)點包含基礎(chǔ)表的數(shù)據(jù)頁。
  根節(jié)點和中間級節(jié)點包含存有索引行的索引頁。每個索引行包含一個鍵值和一個指針,該指針指向 B 樹上的某一中間級頁或葉級索引中的某個數(shù)據(jù)行.每級索引中的頁均被連接在雙向鏈接列表中。
  2.索引使用的每一個分區(qū)的index_id = 1 ,默認(rèn)情況下聚集索引單個分區(qū),當(dāng)使用分區(qū)表的時候,每個分區(qū)都有一個包含該特定分區(qū)相關(guān)數(shù)據(jù)的B樹結(jié)構(gòu),我是這么理解的不知道對不對?
  3.SQL Server 寫入的數(shù)據(jù),數(shù)據(jù)鏈內(nèi)的頁和行將按聚集索引鍵值進行排序。
  4.SQL Server 將在索引中查找該范圍的起始鍵值,然后用向前或向后在數(shù)據(jù)頁中進行掃描。為了查找數(shù)據(jù)頁鏈的首頁,SQL Server 將從索引的根節(jié)點沿最左邊的指針進行掃描。
  聚集索引B樹圖 :

二 .優(yōu)化 Transact-SQL 語句經(jīng)常使用的語句 (北京北大青鳥)

  1.SET STATISTICS IO {ON| OFF} /*Transact-SQL 語句生成的磁盤活動量的信息*/
  2.SET SHOWPLAN_ALL ON {ON| OFF} /*返回有關(guān)語句執(zhí)行情況的詳細(xì)信息,并估計語句對資源的需求*/
  3.SET STATISTICS TIME {ON| OFF} /*顯示分析、編譯和執(zhí)行各語句所需的毫秒數(shù)*/
  4.使用T-SQL語句創(chuàng)建索引的語法:
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]

  INDEX index_name

  ON table_name (column_name)

  [WITH FILLFACTOR=x]


  一. 聚集索引B樹分析
  1.聚集索引按B樹結(jié)構(gòu)進行組織的,索引B樹種的每一頁稱為一個索引節(jié)點。B樹的頂端節(jié)點稱為根節(jié)點。
  索引中的低層節(jié)點稱為葉節(jié)點。根節(jié)點與葉節(jié)點之間的任何索引級別統(tǒng)稱為中間級。在聚集索引中,葉節(jié)點包含基礎(chǔ)表的數(shù)據(jù)頁。
  根節(jié)點和中間級節(jié)點包含存有索引行的索引頁。每個索引行包含一個鍵值和一個指針,該指針指向 B 樹上的某一中間級頁或葉級索引中的某個數(shù)據(jù)行.每級索引中的頁均被連接在雙向鏈接列表中。
  2.索引使用的每一個分區(qū)的index_id = 1 ,默認(rèn)情況下聚集索引單個分區(qū),當(dāng)使用分區(qū)表的時候,每個分區(qū)都有一個包含該特定分區(qū)相關(guān)數(shù)據(jù)的B樹結(jié)構(gòu),我是這么理解的不知道對不對?
  3.SQL Server 寫入的數(shù)據(jù),數(shù)據(jù)鏈內(nèi)的頁和行將按聚集索引鍵值進行排序。
  4.SQL Server 將在索引中查找該范圍的起始鍵值,然后用向前或向后在數(shù)據(jù)頁中進行掃描。為了查找數(shù)據(jù)頁鏈的首頁,SQL Server 將從索引的根節(jié)點沿最左邊的指針進行掃描。(北京北大青鳥)

  聚集索引B樹圖 :

  二 .優(yōu)化 Transact-SQL 語句經(jīng)常使用的語句
  1.SET STATISTICS IO {ON| OFF} /*Transact-SQL 語句生成的磁盤活動量的信息*/
  2.SET SHOWPLAN_ALL ON {ON| OFF} /*返回有關(guān)語句執(zhí)行情況的詳細(xì)信息,并估計語句對資源的需求*/
  3.SET STATISTICS TIME {ON| OFF} /*顯示分析、編譯和執(zhí)行各語句所需的毫秒數(shù)*/
  4.使用T-SQL語句創(chuàng)建索引的語法:
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]

  INDEX index_name

  ON table_name (column_name)

  [WITH FILLFACTOR=x]
 
三 創(chuàng)建數(shù)據(jù)測試下上面學(xué)到的理論知識(北京北大青鳥)

--創(chuàng)建表

CREATE TABLE employee

(

emp_username varchar (20),

emp_register DATETIME

)

 

--插入測試數(shù)據(jù)

DECLARE @startid INT

DECLARE @endid INT

SELECT @startid= 1,@endid = 100

WHILE @startid <=@endid

BEGIN

INSERT INTO employee (

    emp_username,

    emp_register

) VALUES (

    /* emp_username - varchar (20) */ '劉'+CAST(@startid AS NVARCHAR(20)),

    /* emp_register - DATETIME */ GETDATE() )

SELECT @startid =@startid +1;

END

 

-- 查詢employee的執(zhí)行計劃 和 io  信息

SET STATISTICS IO ON

SELECT * FROM employee WHERE emp_username = '劉'

查看消息輸出的 IO 信息
  表'employee'。(1)1掃描計數(shù)1,(2)邏輯讀取1 次,(3)物理讀取0 次,(4)預(yù)讀0 次,lob 邏輯讀取0 次,lob 物理讀取0 次,lob 預(yù)讀0 次。
  輸出的信息和上面的圖片講解的是對應(yīng)的
  1. 執(zhí)行的掃描次數(shù) 。
  2. 從磁盤讀取的頁數(shù)。
  3. 為進行查詢而放入緩存的頁數(shù)。
  4. 預(yù)讀
  T_SQL transaction 語句有很多種的寫法,但是決定那條語句是最優(yōu)的是根據(jù)(logical reads) 邏輯讀取來判斷。(北京北大青鳥)

  添加聚集索引 查詢邏輯讀取是否會變少
CREATE CLUSTERED INDEX Idx_emp_username ON employee (emp_username);

--然后再執(zhí)行查詢

SET STATISTICS IO ON

SELECT * FROM employee WHERE emp_username = '劉'

查看消息輸出的 IO 信息
  表'employee'。掃描計數(shù)1,邏輯讀取2 次,物理讀取0 次,預(yù)讀0 次,lob 邏輯讀取0 次,lob 物理讀取0 次,lob 預(yù)讀0 次。
  Q 這次邏輯讀取是2次為什么呢 ?
  A.難道查詢比表掃描還要慢,答案是對的,數(shù)據(jù)量小的時候,聚集索引的優(yōu)勢體現(xiàn)不出來。
  Q 為什么是2次邏輯讀取
  A 現(xiàn)在查詢的時候如聚集索引圖,先查詢索引頁 ,查找到對應(yīng)的鍵值后,掃描數(shù)據(jù)頁,如果有包含索引,直接在索引頁就可以提取到需要的數(shù)據(jù)。
  上面說了小數(shù)據(jù)量的時候聚集索引體現(xiàn)不出效果,下面我們繼續(xù)填充數(shù)據(jù)測試 。
  填充測試數(shù)據(jù)到1000
  表掃描
  消息:
  表'employee'。掃描計數(shù)1,邏輯讀取36 次,物理讀取0 次,預(yù)讀0 次,lob 邏輯讀取0 次,lob 物理讀取0 次,lob 預(yù)讀0 次。
  聚集索引掃描
  消息:
  表'employee'。掃描計數(shù)1,邏輯讀取2 次,物理讀取0 次,預(yù)讀0 次,lob 邏輯讀取0 次,lob 物理讀取0 次,lob 預(yù)讀0 次。
  這個時候聚集索引的優(yōu)勢就先顯示出來了 O(∩_∩)O
  下面在來講講transaction sql 語句 ,大家在網(wǎng)上看到的一些人說 In like left 不使用索引 ,我們動手來測試下看他們說的對不對 ?
  刪除employee表的索引
DROP INDEX employee.Idx_emp_username
 
  打開IO信息(北京北大青鳥)

SET STATISTICS IO ON

SELECT * FROM employee WHERE employee.emp_username in ('劉10000')

消息:
  表 'employee'。掃描計數(shù) 1,邏輯讀取 371 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
--添加Idx_emp_username聚集索引

CREATE CLUSTERED INDEX Idx_emp_username ON employee (emp_username);

SELECT * FROM employee WHERE employee.emp_username in ('劉10000');

消息:
  表 'employee'。掃描計數(shù) 1,邏輯讀取 3 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
  使用索引后邏輯讀取3次,沒有使用索引是371次,IN 很好的使用了索引!
  下面我們來測試下 LIKE 是否很好的使用索引
  刪除索引
DROP INDEX employee.Idx_emp_username
   打開IO 信息
SET STATISTICS IO ON
   執(zhí)行查詢
SELECT * FROM employee WHERE  employee.emp_username like   ('劉1000%')
 
消息:
  表 'employee'。掃描計數(shù) 1,邏輯讀取 371 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
  添加索引
CREATE CLUSTERED INDEX Idx_emp_username ON employee (emp_username);
SET STATISTICS IO ON
SELECT * FROM employee WHERE employee.emp_username  like  ( '劉1000%');

   表 'employee'。掃描計數(shù) 1,邏輯讀取 3 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
  網(wǎng)上很多優(yōu)化的文章寫到查詢不要使用 in like left ,其實自己動手測試下看看查詢計劃就一幕了然了(北京北大青鳥)

北大青鳥網(wǎng)上報名
北大青鳥招生簡章
中文字幕欧美日韩一区二区三区_高清久久一区_阳光姐妹淘韩国版_日韩精品免费视频一区二区三区_91在线成人_一级黄色免费_精品欧美黑人一区二区三区
欧美精品一二三| av一二三不卡影片| 欧美色男人天堂| 国产资源在线一区| 午夜久久久久久久久| 久久嫩草精品久久久久| 色婷婷综合久久久中文一区二区| 蜜桃视频第一区免费观看| 91福利精品视频| 欧美96一区二区免费视频| 国产精品美女久久久久久2018| 欧美色图在线观看| 美女视频网站久久| 精品久久久三级丝袜| 日韩不卡一二三区| 中文字幕一区二区5566日韩| av在线不卡电影| 午夜电影久久久| 国产精品美女久久久久av爽李琼| 欧美三级中文字幕| 国产中文一区二区三区| 奇米精品一区二区三区在线观看一| 欧美日本在线看| 一本一道久久a久久精品综合蜜臀| 亚洲欧洲制服丝袜| 99精品久久99久久久久| 久久电影国产免费久久电影| 中文字幕中文乱码欧美一区二区 | 国产综合色在线视频区| 国产精品国产三级国产专播品爱网 | 色94色欧美sute亚洲线路二| 91黄视频在线观看| 懂色av一区二区夜夜嗨| 国产精品国产三级国产普通话蜜臀 | 日本女优在线视频一区二区| 色噜噜狠狠色综合欧洲selulu| 看电视剧不卡顿的网站| 亚洲福中文字幕伊人影院| 亚洲欧洲日产国码二区| 日韩欧美123| 日韩一级二级三级精品视频| 精品视频999| 51久久夜色精品国产麻豆| 3751色影院一区二区三区| 欧美无乱码久久久免费午夜一区 | 国产99精品国产| 国产高清久久久| 99综合电影在线视频| 91免费看`日韩一区二区| 成人国产精品免费观看视频| 色综合一个色综合亚洲| 狠狠色丁香久久婷婷综| 高潮精品一区videoshd| 国产91露脸合集magnet| 99国产精品视频免费观看| 色综合久久综合网| 欧美日韩三级一区二区| 日韩一区二区电影网| 久久久久久久久久美女| 自拍偷拍亚洲综合| 日韩精品一级中文字幕精品视频免费观看 | 91碰在线视频| 日韩美女在线视频| 精品国产制服丝袜高跟| 中文字幕综合网| 日本亚洲电影天堂| 国产69精品久久久久毛片| 91美女在线观看| 波多野结衣中文字幕一区二区三区| 美美哒免费高清在线观看视频一区二区| 亚洲视频在线观看三级| 午夜婷婷国产麻豆精品| 亚洲人精品一区| 国产日韩影视精品| 欧美成人三级电影在线| 国产伦精一区二区三区| 国产精品久线观看视频| 日韩一区二区三区视频在线 | 国产精品午夜在线观看| 欧美日韩不卡视频| 日本久久一区二区| 99久久精品免费| 亚洲免费视频中文字幕| 日韩一区二区三区精品视频| 91麻豆自制传媒国产之光| 日韩一级大片在线| 在线观看av一区| 欧美国产精品一区二区| 国产九色精品成人porny | 国产在线看一区| 亚洲色图清纯唯美| 亚洲免费色视频| 亚洲成av人片观看| 亚洲影视在线播放| 日韩二区在线观看| 国产麻豆91精品| 欧美色精品在线视频| 亚洲欧美国产三级| 亚洲第一福利视频在线| 国产乱子伦一区二区三区国色天香| 亚洲国产日韩精品| 日韩精品高清不卡| 亚洲欧美另类小说视频| 午夜视频一区在线观看| 亚洲桃色在线一区| 天天av天天翘天天综合网| 亚洲国产一二三| 欧美日韩视频专区在线播放| 精品动漫一区二区三区在线观看| 91精品国产一区二区三区香蕉| 中文字幕av资源一区| 一区二区三区精品在线| 日韩av一区二区在线影视| 99久久国产免费看| 国产精品一区二区在线播放| 日韩欧美你懂的| 久久97超碰色| 久久久久久亚洲综合影院红桃 | 天天综合日日夜夜精品| 欧美一区二区女人| 亚洲成人自拍网| 亚洲精品在线电影| av网站一区二区三区| 全部av―极品视觉盛宴亚洲| 欧美日韩国产一级二级| 国产中文一区二区三区| 久热成人在线视频| 国产精品99久久久| 欧美日韩一区二区三区四区 | 亚洲愉拍自拍另类高清精品| 日韩欧美国产精品一区| 91在线视频观看| 精彩视频一区二区三区| 一区二区三区不卡在线观看| 欧美国产激情一区二区三区蜜月| 欧美久久高跟鞋激| 色婷婷综合久久久久中文 | 精品sm在线观看| 欧美日韩视频在线观看一区二区三区 | 91精品国产色综合久久久蜜香臀| 成人夜色视频网站在线观看| 三级影片在线观看欧美日韩一区二区 | 日韩精品高清不卡| 国产剧情一区二区三区| 欧美日韩国产影片| 99免费精品视频| 国产91精品在线观看| 久久精品久久久精品美女| 亚欧色一区w666天堂| 亚洲一级不卡视频| 亚洲最大成人网4388xx| 夜夜夜精品看看| 亚洲一线二线三线久久久| 亚洲狠狠丁香婷婷综合久久久| 国产精品久久久久久户外露出| 国产精品视频一区二区三区不卡| 久久久久久久久久久久电影| 久久久久国产精品厨房| 久久久久久久久久久久久夜| 久久久国产一区二区三区四区小说 | 色视频成人在线观看免| 国产成人综合亚洲91猫咪| 国产精品亚洲人在线观看| www.日本不卡| 一本久久a久久精品亚洲| 日韩精品一区二区三区老鸭窝| 亚洲激情五月婷婷| 亚洲国产精品影院| 美女久久久精品| 国产东北露脸精品视频| 91免费版pro下载短视频| 欧美日韩国产天堂| 国产性做久久久久久| 日韩伦理电影网| 免费人成精品欧美精品| 国产v综合v亚洲欧| 欧美日韩一区二区不卡| 日韩欧美亚洲国产精品字幕久久久| 久久综合精品国产一区二区三区| 中文av一区二区| 精品一区二区三区在线观看| a级高清视频欧美日韩| 欧美一级日韩不卡播放免费| 国产精品视频一二| 91精品国产综合久久久久久久| 在线免费观看日本欧美| 欧美草草影院在线视频| 亚洲美女免费在线| 国产一区 二区| 欧美精选午夜久久久乱码6080| 国产网红主播福利一区二区| 亚洲国产视频一区| 91视频观看视频| 欧美激情一区二区三区蜜桃视频| 日本免费在线视频不卡一不卡二| 一本久久综合亚洲鲁鲁五月天| 久久精品一区二区三区av| 视频精品一区二区| www日韩大片| 免费视频一区二区|