欧美亚洲自拍偷拍_日本一区视频在线观看_国产二区在线播放_亚洲男人第一天堂

二維碼
企資網

掃一掃關注

當前位置: 首頁 » 企資快報 » 服務 » 正文

MySql 索引及優化

放大字體  縮小字體 發布日期:2021-08-21 18:11:28    作者:媒體小英    瀏覽次數:34
導讀

1、Mysql的執行計劃1.1、為什么需要執行計劃?有的sql語句執行效率高,有的執行效率低,需要對sql語句做調整和優化,所以就會涉及到執行計劃1.2、執行計劃是什么?執行計劃具體來說就是一條sql語句的執行過程可以看

1、Mysql的執行計劃

1.1、為什么需要執行計劃?

有的sql語句執行效率高,有的執行效率低,需要對sql語句做調整和優化,所以就會涉及到執行計劃

1.2、執行計劃是什么?

執行計劃具體來說就是一條sql語句的執行過程

可以看到執行過程中用到了哪些關鍵的信息,并根據這些信息做判斷

1.3、如何使用執行計劃?

就是在sql語句前面加上關鍵字explain,在sql語句前面加上explain之后,她會輸出n多個列

1.4、案例

1)數據表

testnd5

2)執行計劃

 explain SELECt * FROM testnd5

3)執行結果

4)結果分析

  • id

    當sql語句非常復雜的時候,會有一個id序號的排列,根據序號的排列能顯示出來哪個子查詢或者子句優先執行,哪個字句后執行,僅此而已,有時候需要看,有時候不需要看,她不是一個關鍵信息

  • select_type

    查詢的類型(簡單查詢、聯合查詢、子查詢),一般沒什么用

  • table

    sql語句執行的表的名稱

    type

    很重要,表示查詢對應的類型,mysql默認的是ALL

    有這幾種

    system

    const

    ref

    range

    index

    all

    從前往后,效率依次降低,即system的效率是最高的,all要進行全表掃描,效率低,所以我們最少要保證type在range這個級別(通過加索引、調整當前子句…),達到ref更好但是某些情況是沒法優化的,優化知識為了在一定程度上解決問題,并不是一定有解。可以優化但并不是優化完一定有效果

    有的sql語句非常簡單,sql語句越簡單,優化的程度就越低

  • possible_keys

    可能用到的索引把可能用到的索引都列出來,意義不大

  • key

    很重要,表示當前的sql語句中到底有沒有用到索引,這個值盡量不要為空

  • rows

    過濾的行數,只是預估值,不是精確值

  • Extra

    比較重要,表示額外的信息

    當出現的是using index:表示使用了索引覆蓋

    using index condition表示使用了索引下推

    using filesort表示使用了臨時空間進行排序,沒有使用索引進行排序

    2、索引介紹

    2.1、什么是索引?

    索引是數據結構,可以高效地獲取數據

    索引存儲在文件系統中

    索引的文件存儲形式與存儲引擎有關

    索引文件結構:

    hash

    二叉樹

    B樹

    B+樹 (MySql索引文件結構)

    2.2、索引分類

  • 主鍵索引

    主鍵是一種唯一性索引,她必須指定為PRIMARY KEY,不能為空,每個表只能有一個主鍵

    一個主鍵并非一定只有一個列,也可以是多個列組成的聯合主鍵

    MySql會自動為主鍵創建索引

  • 唯一索引

    索引列的所有值都只能出現一次,即必須唯一,值可以為空;一張表可以在不同的字段建多個唯一索引

  • 普通索引

    基本的索引類型,值可以為空,沒有唯一性的限制

  • 全文索引

    全文索引的索引類型為FULLTEXT。全文索引可以在varchar、char、text類型的列上創建

  • 組合索引

    多列值組成一個索引,專門用于組合搜索

    又稱:復合索引、聯合索引

    3、索引 增刪查改

    3.1、增加(創建)

    ALTER TABLE

    推薦

    適用于表創建完畢之后再添加

    alter [???lt?r] 修改、更改

    ALTER TABLE 表名 ADD 索引類型 (unique,primary key,fulltext,index) [索引名](字段名)

     -- 索引名,可要可不要;如果不要,當前的索引名就是該字段名 ALTER TABLE `table_name` ADD INDEX `index_name` (`column_list`)   ALTER TABLE `table_name` ADD UNIQUE (`column_list`)  ALTER TABLE `table_name` ADD PRIMARY KEY (`column_list`)  ALTER TABLE `table_name` ADD FULLTEXT KEY (`column_list`)
    CREATE INDEX

    適用于表創建完畢之后再添加

    CREATE INDEX 可對表增加 普通索引UNIQUE索引

     -- 只能添加  普通索引 或 UNIQUE索引 CREATE INDEX index_name ON table_name (column_list)  CREATE UNIQUE INDEX index_name ON table_name (column_list)
    建表時添加

    不推薦

     CREATE TABLE `test1` (    `id` smallint(5) UNSIGNED AUTO_INCREMENT NOT NULL, -- 注意,下面創建了主鍵索引,這里就不用創建了    `username` varchar(64) NOT NULL COMMENT '用戶名',    `nickname` varchar(50) NOT NULL COMMENT '昵稱/姓名',    `intro` text,    PRIMARY KEY (`id`),     UNIQUE KEY `unique1` (`username`), -- 索引名稱,可要可不要,不要就是和列名一樣    KEY `index1` (`nickname`),    FULLTEXT KEY `intro` (`intro`)  ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='后臺用戶表';

    3.2、刪除

     DROP INDEX `index_name` ON `talbe_name`   ALTER TABLE `table_name` DROP INDEX `index_name`  -- 這兩句都是等價的,都是刪除掉 table_name 中的索引 index_name  ALTER TABLE `table_name` DROP PRIMARY KEY -- 刪除主鍵索引,注意主鍵索引只能用這種方式刪除

    3.3、查看

     show index from `table_name`;

    3.4、更改

    刪掉重建一個既可

    3.5、創建索引的技巧

    1. 維度高的列創建索引
    2. 數據列中不重復值出現的個數,這個數量越高,維度就越高。
    3. 如數據表中存在8行數據a,b,c,d,a,b,c,d這個表的維度為4。要為維度高的列創建索引,如性別和年齡,那年齡的維度就高于性別。性別這樣的列不適合創建索引,因為維度過低。對 where,on,group by,order by 中出現的列使用索引。對較小的數據列使用索引,這樣會使索引文件更小,同時內存中也可以裝載更多的索引鍵
    4. 為較長的字符串使用前綴索引。
    5. 不要過多創建索引,除了增加額外的磁盤空間外,對于DML(數據庫管理語言,如增、刪、改)操作的速度影響很大,因為其每增刪改一次就得重新建立索引。
    6. 使用組合索引,可以減少文件索引大小,在使用時速度要優于多個單列索引
    7. 更新頻繁,數據區分度不高的字段,不宜建立索引

    4、存儲引擎

    MyIsam、InnoDB、Memory

    Memory 底層數據結構為哈希表

    比較

    MYISAM

    INNODB(默認)

    索引類型

    非聚簇索引 數據和索引不在一起存儲 (只存地址)

    聚簇索引 數據和索引在一起存儲

    事務

    不支持

    支持

    數據表鎖定

    支持

    支持

    數據行鎖定

    不支持

    支持

    外鍵約束

    不支持

    支持

    全文檢索

    支持

    支持(5.6及以后)

    所占空間

    大,約2倍

    底層數據結構

    B + 樹

    B + 樹

    適合操作類型

    大量select

    大量insert、delete、update

    聚簇索引數據跟索引存儲在一起非聚簇索引數據跟索引不存儲在一起

    5、索引 技術點

    索引系統設計要點

    1)索引應該存哪些信息

    2)索引和數據存儲位置

    對于InnoDB

    索引和實際的數據都是存儲在磁盤上的,只不過在進行數據讀取的時候會優先把索引加載到內存中

    存儲引擎:不同的數據文件在磁盤中有不同的組織形式

  • MyIsam存儲引擎.frm 表結構.MYD 數據文件.MYI 索引

  • InnoDb存儲引擎.frm 表結構.ibd 索引文件+數據文件

    3)索引存儲什么格式的數據?

    K-V格式(鍵-值對)

    類似于查字典,根據頁數定位要查找的內容

    4)選擇合理的數據結構進行存儲

    為什么是B+數(為什么不是B樹或者hash表)

    當表非常大的時候,索引會不會一起變大? 因為往表里存數據的時候,是沒法判斷這個表能夠存多少數據的,表中數據量在增大的時候,索引也在增大 索引在變大的過程中,沒辦法直接加載到內存怎么辦? 可能內存只有8G,但是mysql數據的索引達到了16G,則可以分塊讀取,1G 1G地讀,分而治之 盡可能多地提高IO效率 1:減少IO量 2:減少IO次數

    6、操作系統基礎知識

    6.1、局部性原理

  • 時間局部性

    之前被訪問過的數據很有可能再次被訪問

  • 空間局部性

    數據和程序都有聚集成群的傾向

    6.2、磁盤預讀

    內存跟磁盤再進行交互的時候有一個最小的邏輯單位,這個單位稱之為頁,或者datapage,一般是4kb或者8kb,由操作系統決定,我們在進行數據讀取的時候,一般是讀取頁的整數倍,也就是4k,8k,16k;Innodb存儲引擎在進行數據讀取的時候讀取的是16kb的數據

    舉例:如下圖,我們可以看到,實際的文件大小是758字節,但是占用了4kb的大小(可以把磁盤看成一個一個的小格子,每一個格子都是4kb的大小,不管你有沒有占滿,都是4kb)

    7、MySql 為什么選擇B+樹?

    7.1、hash表

    缺點:

    hash存儲需要將所有的數據文件添加到內存,浪費內存空間

    如果是等值查詢,hash很快;但實際工作中范圍(range)查找的更多,而不是等值查詢,所以hash就不合適了

    哈希索引

    簡要說下,類似于數據結構中簡單實現的HASH表(散列表)一樣,當我們在mysql中用哈希索引時,也是對索引列計算一個散列值(類似md5、sha1、crc32),然后對這個散列值以順序(默認升序)排列,同時記錄該散列值對應數據表中某行的指針,當然這只是簡略模擬圖

    比如對姓名列建立hash索引,生成hash值按順序排列,但是順序排列的hash值并不對應表中記錄,從地址指針可反應出來,而且,hash索引可能建立在兩列或者更多列上,取得是多列數據后的hash值,她不存儲表中數據。她先計算列數據的hash值,與索引中的hash值比較,找到了然后比對列數據是否相等,可能涉及其他列條件,然后返回數據。hash當然會有沖突,即碰撞,除非有很多沖突,一般hash索引效率很高,否則hash維護成本較高,因此哈希索引通常用在選擇性較高的列上面。哈希索引的結構決定了她的特點:

    1. hash索引只是hash值順序排列,跟表數據沒有關系,無法應用于order by
    2. hash索引是對她的所有列計算哈希值,因此在查詢時,必須帶上所有列,比如有(a, b)哈希索引,查詢時必須 where a = 1 and b = 2,少任何一個不行;
    3. hash索引只能用于比較查詢 = 或 IN,其他范圍查詢無效,本質還是因不存儲表數據;一旦出現碰撞,hash索引必須遍歷所有的hash值,將地址所指向數據一一比較,直到找到所有符合條件的行。

    7.2、二叉樹

    缺點:

    會因為樹的深度過深而造成IO次數變多,影響讀取效率

    7.3、B樹

    缺點:

    會因為樹的深度過深而造成IO次數變多,影響讀取效率


    7.4、B+樹

    B+Tree每個節點可以包含更多的節點,這個做的原因有兩個:

    1、為了降低樹的高度,減少IO次數

    2、將數據范圍變為多個區間,區間越多,數據檢索越快


    非葉子節點存儲key,葉子節點存儲key和數據


    葉子節點兩兩指針相互連接(符合磁盤的預讀特性),順序查詢性能更高


    在B+Tree上有兩個頭指針,一個指向根節點,另一個指向關鍵字最小的葉子節點,而且所有葉子節點(即數據節點)之間是一種鏈式環結構。因此可以對B+Tree進行兩種查找運算:

    1、對于主鍵的范圍查找和分頁查找

    2、從根節點開始,進行隨機查找


    一般情況下3-4層的B+樹足以支撐千萬級的數據量存儲


    Innodb是通過B+Tree結構對主鍵創建索引,然后葉子節點中存儲記錄,如果沒有主鍵,選擇唯一鍵,如果沒有唯一鍵,選擇6字節的row_id來進行存儲

    如果創建的索引是其她字段(不是主鍵),那么在葉子節點中存儲的是該記錄的主鍵(不是數據),然后再通過主鍵索引查找對應的記錄


    MyIsam 葉子節點中只存儲地址,不存具體記錄數據,通過地址再查找數據

    8、索引優化

    8.1、常見名詞

    案例表:

    id(主鍵)

    name(普通索引)

    age

    1

    張三

    22

    2

    李四

    25

    3

    王五

    28

    1)回表

    如果創建的索引是其她字段(普通索引,不是主鍵),那么在葉子節點中存儲的是該記錄的主鍵(不是數據),然后再通過主鍵去 主鍵索引表 查找對應的記錄

    經過了兩個表的查詢:

    普通索引表:查到主鍵

    主鍵索引表:查詢記錄數據

    -- name是普通索引,在普通索引表中存儲的是主鍵id的值,即1
    -- 要想得到記錄的值,需經過二次查詢
    select * from table where name='張三'

    2)索引覆蓋

    -- 一次查詢就可以得到結果,不需要回表
    select id from table where name='張三'根據name的值去name的B+樹檢索對應的記錄,能獲取到id的屬性值,索引的葉子結點中包含了查詢的所有列,此時不需要回表,這個額過程叫做索引覆蓋,會有using index的提示,推薦使用在某些場景中,可以考慮將要查詢的所有列都變成組合索引 ,此時會使用索引覆蓋(不會回表),加快查詢效率。

    3)最左匹配

    -- id主鍵 (name,age)組合索引/聯合索引/復合索引
    -- 會用組合索引
    select * from user where name = '張三' and age = '22';
    -- 會用組合索引
    select * from user where name = '張三';
    -- 不會用組合索引,因為沒有 name
    select * from user where age = '22';
    -- 會用組合索引,因為 age 和 name 都有,優化器會調整 age 和 name 的順序
    select * from user where age = '22' and name = '張三';

    對于復合索引來說,不總是匹配所有字段列,但是可以匹配索引中靠左的列

    4)索引下推

    把原來在server層進行的條件過濾下推到存儲引擎層,索引下推是默認開啟的

    select * from user where name = '張三' and age = '22';沒有索引下推前

    先根據 name 從存儲引擎中拉取數據到 server 層,然后在 server 層中對 age 進行數據過濾

    有索引下推后

    根據 name 和 age,直接在存儲引擎中做數據過濾,把結果返給 server 層

    可以減少返給 server 層的數據量

    5)前綴索引

    如果索引列長度過長,這種列索引時將會產生很大的索引文件,不便于操作,可以使用前綴索引方式進行索引;前綴索引應該控制在一個合適的點,控制在0.31黃金值即可(大于這個值就可以創建)。

     -- 這個值大于0.31就可以創建前綴索引,Distinct去重復 SELECt COUNT(DISTINCT(LEFt(title,10)))/COUNT(*) FROM Arctic;   -- 增加前綴索引SQL,將人名的索引建立在10,這樣可以減少索引文件大小,加快索引查詢速度 ALTER TABLE user ADD INDEX `uname`(title(10)); 

    8.2、優化小細節

  • 當使用索引列進行查詢的時候,盡量不要使用表達式,把計算邏輯放到業務層,減輕數據庫運算壓力
  • 盡量使用主鍵查詢,而不是其她索引,因為主鍵索引不會觸發回表查詢
  • 如果 索引列 長度過長,可以使用前綴索引,否則會產生很大的索引文件,不便于操作
  • 使用索引掃描來排序 mysql有兩種方式可以生成有序的結果:通過 排序操作 或者 按索引順序掃描如果explain出來的type列的值為index,則說明mysql使用了索引掃描來做排序掃描索引本身是很快的,因為只需要從一條索引記錄移動到緊接著的下一條記錄但如果索引不能覆蓋查詢所需的全部列,那么就不得不每掃描一條索引記錄就得回表查詢一次對應的行這基本都是隨機IO,因此按索引順序讀取數據的速度通常要比順序地全表掃描慢mysql可以使用同一個索引即滿足排序,又用于查找行,如果可能的話,設計索引時應該盡可能地同時滿足這兩種任務只有當索引的列順序和order by子句的順序完全一致,并且所有列的排序方式都一樣時,mysql才能夠使用索引來對結果進行排序如果查詢需要關聯多張表,則只有當order by子句引用的字段全部為第一張表時,才能使用索引做排序order by子句和查找型查詢的限制是一樣的,需要滿足索引的最左前綴的要求否則,mysql都需要執行順序操作,而無法利用索引排序
  • union all,in,or 都可以使用索引對于 索引列 最好使用 union all因為復雜的查詢【包含運算等】將使 or、in 放棄索引而全表掃描,除非確定 or、in 會使用索引對于 非索引字段 用 or 或者 in,因為要全表掃描,而 union all 會成倍增加表掃描的次數對于既有 索引字段【索引字段有效】又包含 非索引字段,使用三者都可以,推薦使用 or、in
  • 范圍列可以用到索引范圍條件是:<、<=、>、>=、between范圍列可以用到索引,但是范圍列后面的列無法用到索引,索引最多用于一個范圍列
  • 強制類型轉換會全表掃描 -- 數據庫中的電話號碼是 字符串形式(varchar),并建立了索引
    -- 全表掃描,不會觸發索引;因為以 數值 的形式查詢,強制進行了類型轉換
    explain select * from user where phone = 13800001234;
    -- 觸發了索引,不會全表掃描
    explain select * from user where phone = '13800001234';更新頻繁,數據區分度不高的字段,不宜建立索引
  • 創建索引的列,不允許為null,可能會得到不符合預期的結果
  • 當需要進行表連接的時候,最好不要超過三張表,因為需要join的字段,數據類型必須一致
  • 能使用 limit 的時候,盡量使用 limit
  • 單表索引建議控制在5個以內
  • 組合索引中單索引字段在5個以內索引的正確概念:索引不是越多越好;索引也是要維護的,過多時會降低性能在不了解系統的情況下,不要過早優化
  •  
    (文/媒體小英)
    免責聲明
    本文僅代表作發布者:媒體小英個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
     

    Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

    粵ICP備16078936號

    微信

    關注
    微信

    微信二維碼

    WAP二維碼

    客服

    聯系
    客服

    聯系客服:

    在線QQ: 303377504

    客服電話: 020-82301567

    E_mail郵箱: weilaitui@qq.com

    微信公眾號: weishitui

    客服001 客服002 客服003

    工作時間:

    周一至周五: 09:00 - 18:00

    反饋

    用戶
    反饋

    欧美亚洲自拍偷拍_日本一区视频在线观看_国产二区在线播放_亚洲男人第一天堂

          欧美日韩国产限制| 99视频在线精品国自产拍免费观看| 亚洲精品久久| 欧美一乱一性一交一视频| 欧美激情综合网| 韩国精品一区二区三区| 欧美一级成年大片在线观看| 欧美另类一区二区三区| 亚洲国产精品久久| 欧美精品v日韩精品v国产精品| 好吊成人免视频| 久久视频在线免费观看| 国产伦理一区| 久久福利资源站| 国产免费观看久久黄| 欧美一区视频在线| 一区二区三区在线视频观看| 欧美一区二区视频在线观看| 国产一区二区黄| 欧美电影免费网站| 亚洲免费成人av| 国产精品美女在线观看| 亚洲伊人伊色伊影伊综合网| 国产精品国产福利国产秒拍| 香蕉久久夜色精品| 亚洲国产成人高清精品| 欧美经典一区二区三区| 亚洲一区观看| 在线成人激情视频| 欧美日韩一本到| 亚洲欧美日韩国产精品| 亚洲国产美国国产综合一区二区| 欧美丝袜一区二区三区| 久久精品国产v日韩v亚洲| 亚洲第一页自拍| 欧美性大战久久久久久久| 久久躁日日躁aaaaxxxx| 亚洲一区日韩| 在线观看欧美日本| 国产精品主播| 欧美日韩国产a| 久久国产婷婷国产香蕉| 亚洲一区二区免费| 亚洲美女少妇无套啪啪呻吟| 国产欧美日韩在线视频| 欧美色图麻豆| 欧美精品在线观看| 久久午夜电影| 蜜桃精品一区二区三区| 久久精品一区二区三区四区| 亚洲少妇一区| 亚洲一区观看| 久久精品成人一区二区三区| 99国产精品国产精品久久| 亚洲激情亚洲| 亚洲午夜高清视频| 亚洲综合不卡| 欧美亚洲日本一区| 一本色道久久综合亚洲精品不| 1000部国产精品成人观看| 国产啪精品视频| 国产日韩欧美一区| 在线观看亚洲一区| 在线亚洲+欧美+日本专区| 亚洲视频碰碰| 欧美一区二区三区视频在线观看 | 欧美精品国产一区| 欧美日韩亚洲91| 久久精品视频免费播放| 女生裸体视频一区二区三区| 欧美成人精品h版在线观看| 麻豆亚洲精品| 欧美日韩精品在线视频| 国产精品久久网| 国产一区二区无遮挡| 国内精品久久久久影院薰衣草| 国产亚洲一级| 一本色道久久综合亚洲精品不卡| 一区二区三区久久| 久久视频国产精品免费视频在线| 欧美三区不卡| 红桃av永久久久| 一区二区三区成人| 美国成人直播| 国产日韩精品在线| 亚洲国产精品ⅴa在线观看| 亚洲欧美日韩在线高清直播| 麻豆9191精品国产| 国产免费观看久久| 一本色道久久综合亚洲精品高清| 久久一区二区三区四区五区| 国产日产欧美一区| 亚洲一区欧美激情| 国产精品国产福利国产秒拍| 亚洲经典在线看| 欧美freesex交免费视频| 国产日韩精品一区观看| 一区二区三区精品国产| 老司机午夜免费精品视频| 国产女人18毛片水18精品| 9色国产精品| 欧美日韩国产经典色站一区二区三区| 狠狠久久五月精品中文字幕| 亚洲一区欧美一区| 国产麻豆一精品一av一免费| 亚洲综合成人婷婷小说| 国产精品国产三级国产普通话99| 亚洲视频高清| 国产日韩亚洲欧美精品| 亚洲欧美日韩在线播放| 国产亚洲午夜| 欧美久久电影| 亚洲一区二区在线看| 国产日韩欧美在线视频观看| 久久五月天婷婷| 一本色道久久99精品综合| 国产精品久久久久7777婷婷| 久久午夜视频| 一区二区毛片| 好吊一区二区三区| 欧美性一二三区| 美日韩精品免费观看视频| 一区二区三区视频观看| 国内精品福利| 欧美日韩国产片| 久久精品日产第一区二区| 亚洲精品在线一区二区| 国产精品视频专区| 欧美精品国产精品| 久久琪琪电影院| 亚洲午夜激情网站| 一本大道久久精品懂色aⅴ| 国产私拍一区| 欧美视频一区二区| 欧美激情精品| 免费成人美女女| 亚洲欧美日韩天堂| 亚洲一区二区欧美日韩| 亚洲六月丁香色婷婷综合久久| 国产伦精品一区二区三区免费迷| 久久中文字幕一区二区三区| 性欧美xxxx视频在线观看| 亚洲精品四区| 一区二区三区色| 亚洲午夜在线观看| 亚洲欧美视频在线观看视频| 一区二区三区视频在线观看| 亚洲精品欧美| 制服诱惑一区二区| 一区二区欧美日韩视频| 亚洲一级黄色| 欧美亚洲视频| 久久久精品2019中文字幕神马| 欧美一区免费| 久久亚洲精品视频| 久热国产精品| 欧美日韩黄视频| 国产欧美一区二区三区久久人妖| 国产一区二区日韩精品| 黄页网站一区| 99视频精品全国免费| 欧美一区二区三区四区在线观看| 性做久久久久久| 欧美77777| 国产日韩一区二区三区在线| 国外成人在线视频网站| 亚洲精品欧美日韩专区| 亚洲一区中文| 久久久久久9| 欧美视频亚洲视频| 韩国欧美一区| 性感少妇一区| 久久夜色精品亚洲噜噜国产mv| 欧美精品一区在线发布| 一区二区三区在线视频播放| 一区二区精品在线| 欧美激情一区二区| 尤物九九久久国产精品的分类| 亚洲欧美在线磁力| 欧美另类高清视频在线| 国内成+人亚洲| 欧美一区永久视频免费观看| 欧美精品一区二区三区蜜臀| 尤物yw午夜国产精品视频明星| 亚洲在线视频免费观看| 欧美性理论片在线观看片免费| 在线播放日韩专区| 久久久久国产精品一区三寸 | 国产精品视频专区| 一区二区国产日产| 欧美日在线观看| 亚洲精品自在久久| 蜜桃久久精品乱码一区二区| 国产日产欧美精品| 久久久久国内| 91久久精品一区二区三区| 欧美精品在线视频| 亚洲黑丝一区二区| 欧美激情一区在线| 日韩午夜电影av|