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

10分鐘掌握MySQL的索引查詢優化技巧

數據庫 MySQL
本文的內容是總結一些MySQL的常見使用技巧,以供沒有DBA的團隊參考。以下內容以MySQL5.5為準,如無特殊說明,存儲引擎以InnoDB為準。

本文的內容是總結一些MySQL的常見使用技巧,以供沒有DBA的團隊參考。以下內容以MySQL5.5為準,如無特殊說明,存儲引擎以InnoDB為準。

MySQL的特點

了解MySQL的特點有助于更好的使用MySQL,MySQL和其它常見數據庫不同在于存在存儲引擎這個概念,存儲引擎負責存儲和讀取數據。不同的存儲引擎具有不同的特點,用戶可以根據業務的特點選擇適合的存儲引擎,甚至是開發一個新的引擎。MySQL的邏輯架構大致如下:

 

 

 

 

MySQL默認的存儲引擎是InnoDB,該存儲引擎的主要特點是:

  • 支持事務處理
  • 支持行級鎖
  • 數據存儲在表空間中,表空間由一些列數據文件組成
  • 采用MVVC(多版本并發控制)機制實現高并發
  • 表基于主鍵的聚簇索引建立

支持熱備份

其它常見存儲引擎特點概述:

  • MyISAM:老版本MySQL的默認引擎,不支持事務和行級鎖,開發者可以手動控制表鎖;支持全文索引;崩潰后無法安全恢復;支持壓縮表,壓縮表數據不可修改,但占用空間較少,可以提高查詢性能
  • Archive:只支持Insert和Select,批量插入很快,通過全表掃描查詢數據
  • SCV:把一個SCV文件當做一個表處理
  • Memory:數據存儲在內存中

還有很多,不再一一列舉。

數據類型優化

選擇數據類型的原則:

  • 選擇占用空間小的數據類型
  • 選擇簡單的類型
  • 避免不必要的可空列

占用空間小的類型更節省硬件資源,如磁盤、內存和CPU。盡量使用簡單的類型,如能用int就不用char,因為后者的排序涉及到字符集的選擇,比使用int復雜。可空列使用更多的存儲空間,如果在可空列上創建索引,MySQL需要額外的字節做記錄。創建表時,默認都是可空,容易被開發者忽視,手動改為不可空,如果要存儲的數據確實不會有空值的話。

整型類型

整型類型包括:

  • tinyint
  • smallint
  • mediumint
  • int
  • bigint

它們分別使用8、16、24、32和64位存儲數字,它們可以表示范圍的數字,前面可以加unsigned修飾,這樣可以讓正數的可表示范圍提高1倍,但是無法表示負數。另外,為整型指定長度沒什么卵用,數據類型定下來,長度也就相應定下來了。 

小數類型

  • float
  • double
  • decimal

float和double就是通常意義上的float和double,前者使用32位存儲數據,后者使用64位存儲數據,和整型一樣,為它們指定長度沒什么卵用。

decimal類型比較復雜,支持精確計算,占用的空間也大,decimal使用每4個字節表示9個數字,如decimal(18,9)表示數字長度是18,其中小數位9個數字,整數部分9個數字,加上小數點本身,共占用9個字節。考慮到decimal占用空間較多,以及精度計算很復雜,數據量大的時候可以考慮用bigint代替之,可以在持久化和讀取前對真實數據進行一些縮放操作。

字符串類型

  • varchar
  • char
  • varbinary
  • binary
  • blob
  • text
  • 枚舉

varchar類型數據實際占用空間等于字符串的長度加上1個或2個用來記錄字符串長度的字節(當row-format沒有被設置為fixed時),varchar很節省空間。當表中某列字符串類型的數據長度差別較大時適合使用varchar。

char的實際占用空間是固定的,當表中字符串數據的長度相差無幾或很短時適合使用chart類型。

與varchar和char對應的有varbinary和binary,后者存儲的是二進制字符串,和前者相比,后者大小寫敏感,不用考慮編碼方式,執行比較操作時更快。

需要注意的是:雖然varchar(5)和varchar(200)在存儲“hello”這個字符串時使用相同的存儲空間,但并不意味著將varchar的長度設置太大不會影響性能,實際上,MySQL的某些內部計算,比如創建內存臨時表時(某些查詢會導致MySQL自動創建臨時表),會分配固定大小的空間存放數據。

blob使用二進制字符串保存大文本,text使用字符保存大文本,InnoDB會使用專門的外部存儲區來存放此類數據,數據行內僅存放指向他們的指針,此類數據不宜創建索引(要創建也只能正對字符串前綴創建),不過也不會有人這么干。

如果某列字符串大量重復且內容有限,可使用枚舉代替,MySQL處理枚舉時維護了一個“數字-字符串”表,使用枚舉可以減少很多存儲空間。

時間類型

  • year
  • date
  • time
  • datetime
  • timestamp

datetime存儲范圍是1001到9999,精確到秒。timestamp存儲1970年1月1日午夜以來的秒數,可以表示到2038年。占用4個字節,是datetime占用空間的一半。timestamp表示的時間和時區有關,另外timestamp列還有個特性,執行insert或update語句時,MySQL會自動更新類型為timestamp的列的數據為當前時間。很多表中都有設計有一列叫做UpdateTime,這個列使用timestamp倒是挺合適的,會自動更新,前提是系統不會使用到2038年。

主鍵類型的選擇

盡可能使用整型,整型占用空間少,還可以設置為自動增長。尤其別使用GUID,MD5等哈希值字符串作為主鍵,這類字符串隨機性很大,由于InnoDB主鍵默認是聚簇索引列,所以導致數據存儲太分散。另外,InnoDB的二級索引列中默認包含主鍵列,如果主鍵太長,也會使得二級索引很占空間。

特殊類型的數據

存儲IP使用32位無符號整型,MySQL提供了函數inet_aton()和inet_ntoa()進行IP地址的數字表示和字符串表示之間的轉換。

索引優化

InnoDB使用B+樹實現索引,舉個例子,假設有個People,建表語句如下

  1. CREATE TABLE `people` ( 
  2.   `Id` int(11) NOT NULL AUTO_INCREMENT, 
  3.   `Namevarchar(5) NOT NULL
  4.   `Age` tinyint(4) NOT NULL
  5.   `Number` char(5) NOT NULL COMMENT '編號'
  6.   PRIMARY KEY (`Id`), 
  7.   KEY `i_name_age_number` (`Name`,`Age`,`Number`) 
  8. ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; 

插入數據:

 


 

 

它的索引結構大致是這樣的:

 

 

 

 

也就是說,索引列的順序很重要,如果兩行數據的Name列相同,則用Age列比較大小,如果Age列相同,則用Number列比較大小。先列排序,然后是第二列,然后是第三列。

查詢的使用應該盡量從左往右匹配,另外,如果左邊列范圍查找,右邊列無法使用索引;還有就是不能隔列查詢,否則后面的索引也無法使用到。如以下幾個SQL是正面范例:

  • SELECT * from people where Name =’Abel’ and Age = 2 AND Number = 12312
  • SELECT * from people where Name =’Abel’
  • SELECT * from people where Name like ‘Abel%’
  • SELECT * from people where Name = ‘Andy’ and Age BETWEEN 11 and 20
  • SELECT * from people ORDER BY NAME
  • SELECT * from people ORDER BY NAME, Age
  • SELECT * from people GROUP BY Name

以下幾個SQL是反面范例:

  • SELECT * from people where Age = 2
  • SELECT * from people where NAME like ‘%B’
  • SELECT * from people where age = 2
  • SELECT * from people where NAME = ‘ABC’ AND number = 3
  • SELECT * from people where NAME like ‘B%’ and age = 22

一個使用Hash值創建索引的技巧

如果表中有一列存儲較長字符串,假設名字為URL,在此列上創建的索引比較大,有個辦法可以緩解:創建URL字符串的數字哈希值的索引。再新建一個字段,比如叫做URL_CRC,專門放置URL的哈希值,然后給這個字段創建索引,查詢時這樣寫: 

  1. select * from t where URL_CRC = 387695885 and URL = 'www.baidu.com' 

如果數據量比較多,為防止哈希沖突,可自定義哈希函數,或用MD5函數返回值的一部分作為哈希值。

前綴索引

如果字符串列存儲的數據較長,創建的索引也很大,這時可以使用前綴索引,即:只針對字符串前幾個字符做索引,這樣可以縮短索引的大小,不過,顯然,此類索引在執行order by和group by時不起作用。

創建前綴索引時選擇前綴長度很重要,在不破壞原來數據分布的情況下盡可能選擇較短的前綴。舉個例子,如果如果大部分字符串是以”abc”開頭,那么如果限定前綴索引長度為4,索引值會包含太多的重復的”abcX”。

多列索引

  • 上面提到的“People”上創建的索引即為多列索引,多列索引往往比多個單列索引更好。
  • 對多個索引進行and查詢時,應該創建多列索引,而不是多個單列索引

可以試試這樣寫的效果: 

  1. select * from t where f1 = 'v1' and f2 <> 'v2' union all select * from t where f2 = 'v2' and f1 <> 'v1' 

多列索引的順序很重要,通常,不考慮排序和分組查詢時,應該把選擇性(選擇性是指某表索引列不同數據的個數/總行數。選擇性高意味著重復數據少)大的列放到前面。但也有例外,如果能確認某些查詢是頻繁執行的,則應該優先照顧這些查詢的選擇性,比如,如果上面的People表中Name的選擇性大于Age,查詢語句應該這樣寫: 

  1. select * from people where name = 'xxx' and age = xx 

Name列放了索引中的左側比較合適,但是如果某個SQL執行的評率較高,比如 

  1. select * from people where name = 'xxx' and age = 20 

當age=20的記錄在數據庫中非常少時,反而把age放到索引列的左端效率更高。把age放了索引左端可能對其它age不等于20的查詢來說不公平,如果不能確定age=20是最非常頻繁的查詢條件,還是要綜合考慮,把name放了左側合適。

聚簇索引

聚簇索引是一種數據存儲結構,InnoDB在主鍵的索引的葉子節點中直接保存了數據行,而不是像二級索引那樣只是保存了索引列的值和所指向行的主鍵值。由于這個特性,一個表只能有一個聚簇索引。如果一個表沒有定義主鍵也沒有定義具有索引的列,那么InnoDB會生成一個隱藏列,并且在此列設為聚簇索引列。

覆蓋索引

簡單地說,某些查詢只需要查詢索引列,那么就不用再根據索引B樹節點記錄的主鍵ID進行二次查詢了。

重復索引和冗余索引

如果重復在某列創建索引,并不會帶來任何好處,只有壞處,應該盡量避免。比如給主鍵創建索引和普通索引就是多于的,因為InnoDB的主鍵默認就是聚簇索引了。

冗余索引和重復索引不同,比如某個索引是(A,B),另一個索引是(A),這叫冗余索引,前者可以代替后者,后者不可以代替前者的作用。但是(A,B)和(B)以及(A,B)和(B,A)不算冗余索引,起作用誰也代替不了誰。

如果一個表中已經存在索引(A),現在又想創建索引(A,B),那么只需擴展就的索引就可以,沒有必要創建新的索引。需要注意的是如果已經存在索引(A),那么也沒有必要在創建索引(A,ID),其中ID指主鍵,因為索引A默認已經包含了主鍵了,也算是冗余主鍵。

但是,有時候,冗余索引也是可取的,假設已經存在索引(A),將其擴展為(A,B)后,因為B列是一個很長的類型,導致用A單獨查詢時沒有以前快了,這時可以考慮新創建索引(A,B)。

不使用的索引

不使用的索引徒然增加insert、update和delete的效率,應該及時刪除

索引使用總結

索引的三星原則:

  • 索引將查詢相關的記錄按順序放在一起則得一星
  • 索引中的數據順序和查詢結果的排序一致則得一星
  • 索引中包含了查詢所需要的全部列則得一星

where條件中查詢的順序和索引是一致的,就是前面說的從左到右使用索引。

索引不適用所有情況,當數據量巨大時,維護索引本身也是耗費性能的,應該考慮分區分表存儲。

查詢優化

查詢慢的原因

是否向數據庫請求了多余的行

比如應用程序只需要10條數據,但是卻向數據庫請求了所有的數據,在顯示在UI上之前拋棄了大部分數據。

是否向數據庫請求了多余的列

比如應用程序只需要展現5列,但卻通過select * from 把全部的列都查了出來

是否重復多次執行了相同的查詢

應用程序是否可以考慮一次查詢然后緩存,后面的用到時可以使用查詢出來的記錄。

MySQL是否在掃描額外的記錄

通過查看執行計劃可以大概了解需要掃描的記錄數,如果這個數字超出了預期,盡可能通過添加索引、優化SQL(就是本節的重點),或者改變表結構(如新增一個單獨的匯總表,專門供某個語句查詢用)來解決。

重構查詢的方式

  • 將一個復雜的查詢分解成多個簡單的查詢
  • 將大的查詢切分成小的查詢,每次查詢功能一樣,只完成一小部分
  • 分解關聯查詢。可以將一個大的關聯查詢改成分別查詢若干個表,然后在應用程序代碼中處理

雜七雜八

優化count()

Count有兩個作用,一是統計指定的列或表達式,二是統計行數。如果參數傳入一列名或者是一個表達式,那么count會統計所有結果不為NULL的行數,如果參數是*,那么count會統計所有行數。這里有一個傳表達式的例子: 

  1. SELECT count(name like 'B%'from people 
  • 可以使用近似值優化來代替count(),如執行計劃中的行數。
  • 索引覆蓋掃描
  • 增加匯總表
  • 增加內存緩存系統記錄數據條數

關聯查詢的優化

  • MySQL優化器關聯表查詢是這樣進行的,比如有兩個表A和B通過c列關聯,MySQL會遍歷A表,然后根據遍歷到的c列的值去B表中查找數據。綜上所述,通常,如無只需要給B表的c列加上索引即可
  • 確保order by和group by涉及到的列只屬于一個表,這樣才有可能發揮索引的作用

優化子查詢

對于MySQL5.5及以下版本,盡量用連接代替子查詢。

優化group by、distinct

如果可能,盡量對主鍵施加這兩種操作。

優化limit,比如有SQL 

  1. SELECT * from sa_stockinfo ORDER BY StockAcc LIMIT 400, 5 

MySQL優化器會查找405行所有列數據然后丟棄400。如果能利用覆蓋索引查詢則不必查詢出這么多列,先修改為: 

  1. SELECT * FROM sa_stockinfo i JOIN (SELECT StockInfoID FROM sa_stockinfo ORDER BY StockAcc LIMIT 400,5)t ON i.StockInfoID = t.StockInfoID 

StockAcc上建有索引,該查詢會利用索引覆蓋,較快找出符合條件的主鍵,然后在做聯合查詢,在數據量大的時候效果明顯。

優化union

如無必要,一定要用關鍵字 union all,這樣MySQL把數據放到臨時表時不會再做驗證

判斷某條記錄是否存在,通常的做法是 

  1. select count(*) from t where condition 

這樣寫: 

  1. SELECT IFNULL((SELECT 1 from tableName where condition LIMIT 1),0) 

參考書

《高性能MySQL》

 

責任編輯:龐桂玉 來源: PHP技術大全
相關推薦

2021-03-23 15:35:36

Adam優化語言

2017-01-10 09:07:53

tcpdumpGET請求

2017-07-06 08:12:02

索引查詢SQL

2025-01-24 08:38:47

2017-11-20 10:25:20

數據庫MySQL索引

2020-10-14 11:31:41

Docker

2019-07-28 20:49:37

回表查詢索引覆蓋MySQL

2022-05-30 07:51:13

數據庫MySQLQPS

2024-09-18 23:50:24

Python內存生成器

2019-07-24 15:29:55

JavaScript開發 技巧

2009-11-17 14:50:50

Oracle調優

2021-06-07 09:51:22

原型模式序列化

2024-03-21 09:51:22

Python爬蟲瀏覽網站

2021-01-11 09:33:37

Maven數目項目

2021-04-27 10:16:51

優化機器學習人工智能

2021-07-15 06:43:11

Bash調試腳本

2023-09-29 18:36:57

IDEA編程IDE

2020-12-07 11:23:32

Scrapy爬蟲Python

2020-12-17 10:00:16

Python協程線程

2021-03-12 09:45:00

Python關聯規則算法
點贊
收藏

51CTO技術棧公眾號

强伦女教师2:伦理在线观看| 91精品久久久久久久久久另类| 天天插天天射天天干| 网友自拍亚洲| 亚洲女爱视频在线| 欧美一区二区福利| 国产婷婷在线视频| 天堂影院一区二区| 欧美国产日韩免费| 俄罗斯毛片基地| 国产精品22p| 欧美日韩激情一区二区| 浮妇高潮喷白浆视频| 欧美另类极品| 久久亚洲一区二区三区明星换脸 | 免费观看亚洲视频| 你懂的视频在线观看| 国产黑丝在线一区二区三区| 国产成人精品免高潮在线观看| www.av成人| 欧美美乳视频| 日韩成人在线播放| 先锋资源在线视频| 免费视频观看成人| 色婷婷av一区二区三区gif| 国产精品久久久影院| 啊v在线视频| 久久婷婷成人综合色| 超碰97在线资源| 97在线视频人妻无码| 鲁大师成人一区二区三区| 色综合视频一区中文字幕| 女性裸体视频网站| jizzjizz欧美69巨大| 精品一区二区三区四区在线| 91精品啪在线观看国产| 亚洲3区在线| 欧美精品99久久久**| 看欧美ab黄色大片视频免费| 亚洲欧洲日本韩国| 午夜视频一区二区三区| 国产 欧美 日韩 一区| 二区三区四区高清视频在线观看| 国产日本一区二区| 欧美大香线蕉线伊人久久国产精品 | 手机在线免费av| 亚洲视频一区二区在线观看| 亚洲欧美日韩在线综合| 福利在线午夜| 国产精品女同一区二区三区| 亚洲福利av| 亚乱亚乱亚洲乱妇| 中文字幕精品在线不卡| 天天好比中文综合网| 搞黄视频在线观看| 中文字幕精品综合| 一本色道久久综合亚洲二区三区| 91精品专区| 自拍偷拍亚洲综合| 成人在线免费观看网址| 亚洲男同gay网站| 一区二区三区日本| www成人免费| а√在线天堂官网| 色综合久久精品| 成人性视频欧美一区二区三区| 日韩新的三级电影| 欧美日韩一卡二卡三卡| 五月天丁香花婷婷| 欧美h版在线观看| 亚洲国产日韩欧美在线99| 51调教丨国产调教视频| 国产亚洲一卡2卡3卡4卡新区| 一本色道久久88精品综合| 国产黄色录像片| 国内精品99| 欧美亚州一区二区三区| 中文字幕视频免费观看| 国产精品 欧美精品| 久久99精品久久久久久秒播放器| 国产一区二区三区不卡在线| 综合亚洲深深色噜噜狠狠网站| 国产精品自拍合集| 高清av不卡| 欧美日韩不卡一区| 国产精品果冻传媒| 国产成人精品999在线观看| 色久欧美在线视频观看| 久久网一区二区| 久久亚洲精品伦理| 亚洲xxxxx电影| 色视频免费在线观看| 国产精品欧美一区喷水| 9色porny| 日本中文字幕视频一区| 精品国产91久久久久久久妲己| 在线小视频你懂的| 欧美福利一区| 国产精品av在线播放| www.五月婷| 国产日韩精品视频一区| a天堂资源在线观看| 欧美与亚洲与日本直播| 欧美v日韩v国产v| 欧美激情久久久久久久| 在线欧美亚洲| 91精品美女在线| 九一在线视频| 亚洲不卡在线观看| 视频免费1区二区三区| 偷拍一区二区| 久久久久久97| 国产日韩欧美一区二区东京热 | 欧美成人官网二区| 卡一卡二卡三在线观看| 9久re热视频在线精品| 91午夜理伦私人影院| 毛片免费在线观看| 亚洲国产乱码最新视频| 捷克做爰xxxⅹ性视频| 国产精品欧美三级在线观看| 久久久亚洲国产| 国产免费无遮挡| 国产精品美女久久久久久2018| koreanbj精品视频一区| 99re8这里有精品热视频免费| 中文字幕亚洲欧美| 亚洲色成人www永久网站| 99久久久免费精品国产一区二区| 在线观看污视频| 精品三级在线| 中文字幕av一区中文字幕天堂| 国产成人在线播放视频| 高清在线成人网| 国产911在线观看| 国产高清精品二区| 日韩一区av在线| 日韩久久久久久久久久| 久久久久国色av免费看影院| 久久综合色视频| 日韩啪啪网站| 91高清视频免费| 亚洲av成人无码久久精品老人 | 一级黄色免费毛片| 亚洲欧美在线专区| 91在线视频一区| 超碰免费在线播放| 日韩欧美美女一区二区三区| 欧美卡一卡二卡三| 国产风韵犹存在线视精品| 国产免费xxx| 91精品国产自产在线丝袜啪| 久久91超碰青草是什么| 空姐吹箫视频大全| 天天操天天综合网| 人妻丰满熟妇aⅴ无码| 欧美综合二区| 日韩欧美第二区在线观看| 91国内外精品自在线播放| 在线看欧美日韩| 国产女人18毛片18精品| 亚洲精品欧美二区三区中文字幕| 在线播放av中文字幕| 欧美.日韩.国产.一区.二区| 成人在线视频网址| 蜜桃麻豆av在线| 亚洲欧美日韩天堂一区二区| 国产天堂第一区| 亚洲欧美日韩系列| 欧美图片自拍偷拍| 国产精品日韩欧美一区| 日韩电影在线播放| 精品视频在线观看网站| 午夜精品一区二区三区在线| 你懂的免费在线观看视频网站| 欧美三区免费完整视频在线观看| 午夜精品一区二区三级视频| 成人免费视频一区二区| 北条麻妃视频在线| 午夜av一区| 黄色99视频| 国产成人精品一区二区三区在线 | 最新国产精品久久| 9l亚洲国产成人精品一区二三| 国产91|九色| 欧美黄色激情| 亚洲精品成人av| 一级全黄裸体免费视频| 亚洲午夜精品网| 极品人妻videosss人妻| 国产精品自拍网站| 久久久久久久久久久久久国产精品| 日韩一区电影| 国产在线一区二| 国产精品亚洲综合在线观看| 1769国产精品| 国产不卡在线| 国产亚洲美女久久| 深夜福利视频网站| 欧美男同性恋视频网站| 国产精品国产三级国产专区52 | 国产午夜视频在线| 中文字幕av资源一区| 久草视频福利在线| 九九热在线视频观看这里只有精品| 欧美这里只有精品| 久久在线视频免费观看| 久久精品aaaaaa毛片| 日韩在线观看一区二区三区| 国产精品美女久久| 自由日本语热亚洲人| 欧美激情精品久久久久久蜜臀| 大胆av不用播放器在线播放 | 99精品视频网| 天堂а√在线中文在线 | 日韩亚洲精品视频| 欧美捆绑视频| 亚洲高清久久网| 国产区精品在线| 欧美日韩一区二区三区免费看| 九九热在线视频播放| 亚洲国产欧美在线| 男人的天堂久久久| 国产精品免费久久| 卡一卡二卡三在线观看| 久久新电视剧免费观看| a级片在线观看视频| 懂色中文一区二区在线播放| 性生生活大片免费看视频| 免费一区二区视频| 爱情岛论坛成人| 日韩一区欧美二区| 国产福利视频在线播放| 国产一区二区精品| 女人天堂av手机在线| 日韩香蕉视频| 国产精品免费入口| 亚洲在线网站| 国产主播在线看| 亚洲一区久久| 国产天堂在线播放| 人人狠狠综合久久亚洲| 国产精品人人爽人人爽| 日韩电影免费在线看| 国产成人av影视| 久热综合在线亚洲精品| 妞干网在线免费视频| 日韩在线播放一区二区| 免费看污污网站| 久久国产精品一区二区| 国产精品嫩草影院8vv8| 国产真实乱偷精品视频免| gogo亚洲国模私拍人体| 国产ts人妖一区二区| 国产极品一区二区| 91欧美一区二区| 国产精品一二三区在线观看| 国产精品污www在线观看| 免费观看特级毛片| 亚洲欧美日韩国产综合在线 | 日本高清中文字幕在线| 久久精品国产2020观看福利| av毛片在线看| 性日韩欧美在线视频| 美女福利一区二区| 国产精品影院在线观看| 欧州一区二区三区| 韩国成人动漫在线观看| 国产精品密蕾丝视频下载| 亚洲人成77777| 午夜欧美精品| 久久人妻精品白浆国产| 麻豆久久一区二区| 特黄特色免费视频| 久久夜色精品一区| 91狠狠综合久久久| 五月综合激情日本mⅴ| 天堂av免费在线观看| 91精选在线观看| 五月婷婷久久久| 色阁综合伊人av| 国产免费拔擦拔擦8x在线播放| 国产999精品| 麻豆视频久久| 日韩高清国产精品| 欧美视频导航| 中文字幕在线观看第三页| 国产成人三级在线观看| 乐播av一区二区三区| 亚洲欧美激情小说另类| 黄色在线观看国产| 欧美一区二区三区四区在线观看| 日韩精品系列| 欧美日韩成人在线播放| 欧美三区四区| 精品免费一区二区三区蜜桃| 国产精品国产三级国产在线观看 | 久久福利在线| 狠狠色综合色区| 91精品一区二区三区综合| 无码播放一区二区三区| 国产一区在线观看视频| 日韩精品无码一区二区三区久久久| 亚洲乱码国产乱码精品精98午夜| 亚洲AV无码成人精品区东京热| 欧美一区二区三区四区久久 | 日韩成人av在线资源| 中文字幕av久久| 日本在线观看不卡视频| 国产精品久久AV无码| 亚洲色图第一区| 日韩乱码一区二区三区| 精品中文字幕久久久久久| 欧美女同一区| 国产精品一区久久| 中文有码一区| 亚洲 高清 成人 动漫| 国产成人aaaa| 亚洲av鲁丝一区二区三区| 欧美日韩国产三级| 国产视频精品久久| 日本亚洲欧洲色α| 女同另类激情重口| 拔插拔插海外华人免费| 国内一区二区在线| 网站永久看片免费| 欧美亚洲综合网| 你懂的在线网址| 日韩av片免费在线观看| 妖精视频一区二区三区| 国产原创中文在线观看| 成人午夜视频免费看| 69av视频在线| 日韩亚洲电影在线| 国产成人在线视频免费观看| 成人天堂噜噜噜| 小处雏高清一区二区三区| 亚欧美在线观看| 国产精品国产三级国产普通话蜜臀| 天堂网一区二区| 亚洲欧洲一区二区三区在线观看| 天堂中文av在线资源库| 麻豆av福利av久久av| 免费日韩视频| 国产美女免费网站| 欧美性大战久久久| 欧美三级黄网| 91中文字幕一区| 黄色av一区| 熟女丰满老熟女熟妇| 色综合天天综合网天天狠天天 | 久久91精品国产91久久跳| 亚洲小说春色综合另类电影| 99在线免费视频观看| 91在线精品一区二区三区| 激情视频网站在线观看| 一区二区亚洲精品国产| 欧美亚洲二区| 超碰10000| heyzo一本久久综合| 懂色av蜜臀av粉嫩av分享吧最新章节| 国产亚洲视频在线观看| 亚洲成人a级片| 999一区二区三区| 久久亚洲二区三区| 一级黄色短视频| 欧美极品少妇xxxxⅹ裸体艺术| 日韩极品在线| 五月天激情播播| 午夜私人影院久久久久| 大胆av不用播放器在线播放| 91视频国产精品| 夜夜嗨av一区二区三区网站四季av| 少妇特黄一区二区三区| 欧美天堂一区二区三区| av毛片在线看| 久久久神马电影| 久久99久久精品欧美| 精品无码av在线| 国产一区二区三区高清在线观看| www欧美在线观看| 色综合久久久久无码专区| 国产精品毛片久久久久久久| 免费观看国产精品| 国产精品wwwwww| 精久久久久久| 手机免费观看av| 亚洲精品97久久| 色999韩欧美国产综合俺来也| 一本久道高清无码视频| 国产精品久久久久影院老司| 欧美视频久久久| 国产在线a不卡| 免费在线欧美黄色| 亚洲国产成人精品综合99| 亚洲人成在线电影| 午夜久久av| 成人日韩在线视频| 狠狠色狠狠色综合日日五| 18videosex性欧美麻豆|