成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > MySQL多表鏈接查詢核心優(yōu)化

MySQL多表鏈接查詢核心優(yōu)化

熱門標(biāo)簽:地圖標(biāo)注專員入駐 如何辦理400客服電話 西藏地圖標(biāo)注改進(jìn)點 安陽手機(jī)自動外呼系統(tǒng)原理是什么 地圖標(biāo)注什么軟件好用 外呼系統(tǒng)線路經(jīng)常出問題嗎 神行者百貨商場地圖標(biāo)注 地圖標(biāo)注百度競價 外呼系統(tǒng)怎樣才能不封號

概述

在一般的項目開發(fā)中,對數(shù)據(jù)表的多表查詢是必不可少的。而對于存在大量數(shù)據(jù)量的情況時(例如百萬級數(shù)據(jù)量),我們就需要從數(shù)據(jù)庫的各個方面來進(jìn)行優(yōu)化,本文就先從多表查詢開始。其他優(yōu)化操作,后續(xù)另外更新,敬請關(guān)注。

數(shù)據(jù)背景

現(xiàn)假設(shè)有一個中學(xué)學(xué)校,學(xué)校中的年級有一年級、二年級、三年級,每個年級有兩個班級。分別為101、102、201、202、301、302.

現(xiàn)在我們要為這個學(xué)校建立一個考試成績統(tǒng)計系統(tǒng)。為此,我們對數(shù)據(jù)庫的設(shè)計畫了如下ER圖:

根據(jù)ER圖,我們設(shè)計了數(shù)據(jù)表,結(jié)構(gòu)如下:
class 班級表:

+------------+---------+------+-----+---------+----------------+
| Field      | Type    | Null | Key | Default | Extra          |
+------------+---------+------+-----+---------+----------------+
| id         | int(11) | NO   | PRI | NULL    | auto_increment |
| class_name | int(11) | NO   |     | NULL    |              |
| master_id  | int(11) | YES  |     | NULL    |                |
| is_key     | int(11) | NO   |     | NULL    |                   |
+------------+---------+------+-----+---------+----------------+

student 學(xué)生表:

+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| school_id  | int(11)     | NO   |     | NULL    |                |
| name       | varchar(30) | NO   |     | NULL    |                |
| sex        | int(11)     | NO   |     | NULL    |                |
| age        | int(11)     | NO   |     | NULL    |                |
| class_name | int(11)     | NO   |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+

course 課程表:

+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| id           | int(11)     | NO   | PRI | NULL    | auto_increment |
| course_name  | varchar(10) | NO   |     | NULL    |                |
| grade        | int(11)     | NO   |     | NULL    |                |
| president_id | int(11)     | YES  |     | NULL    |                |
| is_neces     | int(11)     | NO   |     | NULL    |                |
| credit       | int(11)     | NO   |     | NULL    |                |
| class_name   | int(11)     | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+

score 成績表:

+-----------+---------+------+-----+---------+----------------+
| Field     | Type    | Null | Key | Default | Extra          |
+-----------+---------+------+-----+---------+----------------+
| id        | int(11) | NO   | PRI | NULL    | auto_increment |
| course_id | int(11) | NO   |     | NULL    |                |
| school_id | int(11) | NO   |     | NULL    |                |
| score     | int(11) | YES  |     | NULL    |                |
+-----------+---------+------+-----+---------+----------------+

注:關(guān)于本文的數(shù)據(jù)庫數(shù)據(jù)大家可以在文章最下方的相關(guān)下載中獲取。資源鏈接中有兩個版本的數(shù)據(jù)庫,school.sql為初始數(shù)據(jù)庫,school_2.sql為優(yōu)化后的數(shù)據(jù)庫。

連接(JOIN)簡介

內(nèi)連(INNER JOIN)

INNER JOIN 關(guān)鍵字在表中存在至少一個匹配時返回行。

我們也用下面的交集維恩圖來描述內(nèi)連操作:

上面的維恩圖只是表達(dá)了一個有限制情況(即存在JOIN ON),而對于沒有約束的情況下,其實就是一個笛卡爾積運算。

*注:**INNER JOIN 與 JOIN 是相同的。一般情況下,在SQL語句中可以省略*INNER關(guān)鍵字。

左連接(LEFT JOIN)

LEFT JOIN 關(guān)鍵字從左表(table1)返回所有的行,即使右表(table2)中沒有匹配。如果右表中沒有匹配,則結(jié)果為 NULL。

使用維恩圖描述內(nèi)連操作:

對于上面結(jié)果為 NULL的這一條,通過對實際測試的數(shù)據(jù)表進(jìn)行操作,得到如下的測試結(jié)果:

+------------+-------+
| class_name | name  |
+------------+-------+
|        202 | NULL  |
|        301 | Bob   |
|        302 | Alice |
+------------+-------+

右連接(RIGHT JOIN)

RIGHT JOIN 關(guān)鍵字從右表(table2)返回所有的行,即使左表(table1)中沒有匹配。如果左表中沒有匹配,則結(jié)果為 NULL。

注:右連接可以理解成左連接的對稱互補(bǔ),詳細(xì)說明可參見左連接。

全連(FULL JOIN)

FULL OUTER JOIN 關(guān)鍵字只要左表(table1)和右表(table2)其中一個表中存在匹配,則返回行.

FULL OUTER JOIN 關(guān)鍵字結(jié)合了 LEFT JOIN 和 RIGHT JOIN 的結(jié)果。

聯(lián)合(UNION)

UNION 操作符用于合并兩個或多個 SELECT 語句的結(jié)果集。

請注意,UNION 內(nèi)部的每個 SELECT 語句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類型。同時,每個 SELECT 語句中的列的順序必須相同。

MySQL的JOIN實現(xiàn)原理

在MySQL 中,只有一種Join 算法,就是大名鼎鼎的Nested Loop Join,他沒有其他很多數(shù)據(jù)庫所提供的Hash Join,也沒有Sort Merge Join。顧名思義,Nested Loop Join 實際上就是通過驅(qū)動表的結(jié)果集作為循環(huán)基礎(chǔ)數(shù)據(jù),然后一條一條的通過該結(jié)果集中的數(shù)據(jù)作為過濾條件到下一個表中查詢數(shù)據(jù),然后合并結(jié)果。如果還有第三個參與Join,則再通過前兩個表的Join 結(jié)果集作為循環(huán)基礎(chǔ)數(shù)據(jù),再一次通過循環(huán)查詢條件到第三個表中查詢數(shù)據(jù),如此往復(fù)。
                                       – 《MySQL性能調(diào)優(yōu)與架構(gòu)設(shè)計》

多表查詢實戰(zhàn)

查詢各個班級的班長姓名

優(yōu)化分析

對于這個多表的查詢使用where是可以很好地完成查詢,而查詢的結(jié)果從表面上看,完全沒什么問題,如下:

+------------+---------+
| class_name | name    |
+------------+---------+
|        101 | William |
|        102 | Peter   |
|        201 | Judy    |
|        202 | Polly   |
|        301 | Grace   |
|        302 | Sunny   |
+------------+---------+

可是,由于我們使用的是where,這個與內(nèi)連接在有條件限制的情況下是一樣的,其維恩圖也可以一并參考??墒?,如果現(xiàn)在我們假設(shè),有一個新的班級303,或是這個303的班級暫時還沒有班長。這個時候通過where就無法完成查詢了。上面的結(jié)果中就已經(jīng)很好地給出解釋。

這個時候,我們就需要通過外連接中的左連接(如果采用右連接,那么相應(yīng)的表位置也要進(jìn)行替換)來進(jìn)行查詢了。在左連的查詢中,因為是包含了”左表“的全部行,所以對于未選出班長的303來說,這個很有必要。采用左連操作的結(jié)果如下:

+------------+---------+
| class_name | name    |
+------------+---------+
|        101 | William |
|        102 | Peter   |
|        201 | Judy    |
|        202 | Polly   |
|        301 | Grace   |
|        302 | Sunny   |
|        303 | NULL    |
+------------+---------+

SQL展示

樸素的WHERE

SELECT cl.class_name, st.name
FROM class cl, student st
WHERE cl.master_id=st.school_id;

INNER JOIN

SELECT cl.class_name, st.name
FROM class cl
JOIN student st
ON cl.master_id=st.school_id;

LEAF JOIN

SELECT cl.class_name, st.name
FROM class cl
LEFT JOIN student st
ON cl.master_id=st.school_id;

RIGHT JOIN

SELECT cl.class_name, st.name
FROM student st
RIGHT JOIN class cl
ON cl.master_id=st.school_id;

利用 EXPLAIN 檢查優(yōu)化器

通過EXPLAIN我們分別檢查上面WHERE語句和LEFT JOIN的優(yōu)化過程。結(jié)果如下:

WHERE

+----+-------------+-------+------+---------------+------+---------+------+------+--------------------------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra                          |
+----+-------------+-------+------+---------------+------+---------+------+------+--------------------------------+
|  1 | SIMPLE      | cl    | ALL  | NULL          | NULL | NULL    | NULL |    7 |                                |
|  1 | SIMPLE      | st    | ALL  | NULL          | NULL | NULL    | NULL |  301 | Using where; Using join buffer |
+----+-------------+-------+------+---------------+------+---------+------+------+--------------------------------+

LEFT JOIN

+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
|  1 | SIMPLE      | cl    | ALL  | NULL          | NULL | NULL    | NULL |    7 |       |
|  1 | SIMPLE      | st    | ALL  | NULL          | NULL | NULL    | NULL |  301 |       |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+

對于上面的兩個結(jié)果,我們可以看到有一個很明顯的區(qū)別在于Extra。

Using where說明進(jìn)行了where的過濾操作,Using join buffer說明進(jìn)行join緩存。

從上面的結(jié)果中,還可以看到每種情況的兩種查詢操作都是經(jīng)過了全表掃描。而這對于大量數(shù)據(jù)而言是很不利的。

現(xiàn)在,我們可以為被驅(qū)動表的join字段添加索引,再對其進(jìn)行EXPLAIN檢查。

添加索引

ALTER TABLE student ADD INDEX index_school_id (school_id);

通過EXPLAIN我們分別檢查上面WHERE語句和LEFT JOIN的優(yōu)化過程。結(jié)果如下:

WHERE

+----+-------------+-------+------+-----------------+-----------------+---------+---------------------+------+-------+
| id | select_type | table | type | possible_keys   | key             | key_len | ref                 | rows | Extra |
+----+-------------+-------+------+-----------------+-----------------+---------+---------------------+------+-------+
|  1 | SIMPLE      | cl    | ALL  | NULL            | NULL            | NULL    | NULL                |    7 |       |
|  1 | SIMPLE      | st    | ref  | index_school_id | index_school_id | 4       | school.cl.master_id |    1 |       |
+----+-------------+-------+------+-----------------+-----------------+---------+---------------------+------+-------+

LEFT JOIN

+----+-------------+-------+------+-----------------+-----------------+---------+---------------------+------+-------+
| id | select_type | table | type | possible_keys   | key             | key_len | ref                 | rows | Extra |
+----+-------------+-------+------+-----------------+-----------------+---------+---------------------+------+-------+
|  1 | SIMPLE      | cl    | ALL  | NULL            | NULL            | NULL    | NULL                |    7 |       |
|  1 | SIMPLE      | st    | ref  | index_school_id | index_school_id | 4       | school.cl.master_id |    1 |       |
+----+-------------+-------+------+-----------------+-----------------+---------+---------------------+------+-------+

現(xiàn)在,可以很明顯地看出rows列的數(shù)值,在被驅(qū)動表處都是1,這大降低了查詢的復(fù)雜度。而且對于type列,也從一開始的ALL變成了現(xiàn)在的ref。還有一些其他的列也被修改了。

查詢番外

根據(jù)學(xué)號查詢一個學(xué)生的成績單

WHERE 查詢

EXPLAIN SELECT st.name, co.course_name, sc.score
FROM student st, score sc, course co
WHERE sc.school_id=st.school_id
AND co.id=sc.course_id
AND st.school_id=100005;

JOIN 查詢

EXPLAIN SELECT st.name, co.course_name, sc.score
FROM student st
JOIN score sc ON sc.school_id=st.school_id
JOIN course co ON co.id=sc.course_id
WHERE st.school_id=100005;

結(jié)果

+----+-------------+-------+--------+---------------------------------------+--------------------+---------+---------------------+------+-------+
| id | select_type | table | type   | possible_keys                         | key                | key_len | ref                 | rows | Extra |
+----+-------------+-------+--------+---------------------------------------+--------------------+---------+---------------------+------+-------+
|  1 | SIMPLE      | st    | ref    | index_school_id                       | index_school_id    | 4       | const               |    1 |       |
|  1 | SIMPLE      | sc    | ref    | index_school_id_sc,index_course_id_sc | index_school_id_sc | 4       | const               |    3 |       |
|  1 | SIMPLE      | co    | eq_ref | PRIMARY                               | PRIMARY            | 4       | school.sc.course_id |    1 |       |
+----+-------------+-------+--------+---------------------------------------+--------------------+---------+---------------------+------+-------+

優(yōu)化總結(jié)

  • 對于要求全面的結(jié)果時,我們需要使用連接操作(LEFT JOIN / RIGHT JOIN / FULL JOIN);
  • 不要以為使用MySQL的一些連接操作對查詢有多么大的改善,核心是索引;
  • 對被驅(qū)動表的join字段添加索引;

SQL語句表

創(chuàng)建數(shù)據(jù)庫

CREATE DATABASE school;

創(chuàng)建數(shù)據(jù)表

學(xué)生表

CREATE TABLE student(
id INT NOT NULL AUTO_INCREMENT, /* 學(xué)生表id */
school_id INT(11) NOT NULL, /* 學(xué)號 */
name VARCHAR(30) NOT NULL, /* 姓名 */
sex INT NOT NULL, /* 性別 */
age INT NOT NULL, /* 年齡 */
class_name INT NOT NULL, /* 班級名稱 */
PRIMARY KEY (id) /* 學(xué)生表主鍵 */
);
INSERT INTO student(school_id, name, sex, age, class_name) VALUES(100005, 'Bob', 1, 17, 301);

班級表

CREATE TABLE class(
id INT NOT NULL AUTO_INCREMENT, /* 班級表id */
class_name INT NOT NULL, /* 班級名稱 */
master_id INT, /* 班長id */
is_key INT NOT NULL, /* 是否重點班級 */
PRIMARY KEY (id) /* 班級表主鍵 */
);
INSERT INTO class(class_name, master_id, is_key) VALUES(301, 100001, 1);

課程表

CREATE TABLE course(
id INT NOT NULL AUTO_INCREMENT, /* 課程表id */
course_name VARCHAR(10) NOT NULL, /* 課程名稱 */
grade INT NOT NULL, /* 當(dāng)前課程所屬年級 */
president_id INT, /* 課代表id */
is_neces INT NOT NULL, /* 是否必修課 */
credit INT NOT NULL, /* 學(xué)分 */
PRIMARY KEY (id) /* 課程表主鍵 */
);
INSERT INTO course(course_name, grade, president_id, is_neces, credit) VALUES('math', 3, 100214, 1, 4);
ALTER table course ADD column class_name INT;

成績表

CREATE TABLE score(
id INT NOT NULL AUTO_INCREMENT, /* 成績表id */
course_id INT NOT NULL, /* 課程id */
school_id INT NOT NULL, /* 學(xué)號 */
score INT, /* 考試成績 */
PRIMARY KEY (id) /* 成績表主鍵 */
);
INSERT INTO score(course_id, school_id, score) VALUES(1, 100005, 88);

導(dǎo)入導(dǎo)出

/* 導(dǎo)出數(shù)據(jù)庫 */
MYSQLDUMP -u root -p school > F:/Data/MySQL/school.sql
/* 導(dǎo)入數(shù)據(jù)庫 */
SOURCE /root/upload/school.sql;

索引操作

/* 添加索引 */
ALTER TABLE class ADD INDEX index_master_id (master_id);
/* 刪除索引 */
DROP INDEX index_name ON talbe_name;

查詢實戰(zhàn)

查詢所有課程名稱

SELECT course_name FROM course GROUP BY course_name;

查詢一個學(xué)生全部課程

/* 子查詢 */
SELECT course_name FROM course WHERE id in (SELECT course_id FROM score WHERE school_id=100005);

統(tǒng)計每個班級有多少學(xué)生

SELECT class_name, count(*) FROM student GROUP BY class_name;

根據(jù)學(xué)號查詢一個學(xué)生的成績單

/* WHERE */
SELECT st.name, co.course_name, sc.score
FROM student st, score sc, course co
WHERE sc.school_id=st.school_id
AND co.id=sc.course_id
AND st.school_id=100005;
/* JOIN */
SELECT st.name, co.course_name, sc.score
FROM student st
JOIN score sc ON sc.school_id=st.school_id
JOIN course co ON co.id=sc.course_id
AND st.school_id=100005;

查詢各個班級的班長姓名

/* WHERE */
SELECT cl.class_name, st.name
FROM class cl, student st
WHERE cl.master_id=st.school_id;
/* 子查詢 */
SELECT st.class_name, st.name
FROM student st
WHERE st.school_id in
(SELECT master_id FROM class);
/* JOIN */
SELECT cl.class_name, st.name
FROM class cl
JOIN student st
ON cl.master_id=st.school_id;
/* LEFT JOIN */
SELECT cl.class_name, st.name
FROM class cl
LEFT JOIN student st
ON cl.master_id=st.school_id;
/* RIGHT JOIN */
SELECT cl.class_name, st.name
FROM student st
RIGHT JOIN class cl
ON cl.master_id=st.school_id;

其他查詢

SELECT name, class_name FROM student GROUP BY class_name
UNION ALL
SELECT id, class_name FROM class;

原文鏈接:http://blog.csdn.net/lemon_tree12138/article/details/50921193

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 詳解MySQL數(shù)據(jù)庫--多表查詢--內(nèi)連接,外連接,子查詢,相關(guān)子查詢
  • MySQL左聯(lián)多表查詢where條件寫法示例
  • 解析Mysql多表查詢的實現(xiàn)
  • MySQL 多表查詢實現(xiàn)分析
  • MySQL中基本的多表連接查詢教程
  • 詳解Mysql多表聯(lián)合查詢效率分析及優(yōu)化
  • 淺談mysql中多表不關(guān)聯(lián)查詢的實現(xiàn)方法
  • MySQL多表數(shù)據(jù)記錄查詢詳解
  • mysql多表連接查詢實例講解
  • MySQL多表查詢實例詳解【鏈接查詢、子查詢等】

標(biāo)簽:雞西 酒泉 阜陽 張掖 衡水 貴港 AXB 萍鄉(xiāng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL多表鏈接查詢核心優(yōu)化》,本文關(guān)鍵詞  MySQL,多表,鏈接,查詢,核心,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL多表鏈接查詢核心優(yōu)化》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL多表鏈接查詢核心優(yōu)化的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    成人性生交大片免费看视频在线| 国产精品亚洲一区| 白嫩少妇丰满一区二区| 99精品国产99久久久久久白柏| 六月丁香久久丫| 欧美日韩午夜剧场| 亚洲欧美小说国产图片| 国产伦精品一区二区三区千人斩| 免费男女羞羞的视频网站中文子暮| 国产精品天干天干在线综合| h在线视频免费观看完整版| 国产精品国产自产拍高清av| 黑人巨大狂躁日本妞在线观看| 黑人巨大精品欧美一区二区奶水| 日韩男人的天堂| 免费理论片在线观看播放老| 亚洲欧洲一区二区福利| 欧美黄色小说| 国产96在线 | 亚洲| 午夜精品国产更新| 国产成人啪午夜精品网站男同| 国产在线精品自拍| 中文字幕不卡免费视频| 亚洲成人福利| 久久久国产精品久久久| 日韩毛片一区| 伊人久久大香| 尤物视频网站在线观看| 国产精品传媒在线| 亚洲精品aaaa精品| 国产不卡在线视频| 亚洲最大成人免费视频| 91香蕉国产线在线观看| 亚洲欧美一区二区三区在线播放| 国产欧美va欧美不卡在线| 国产91对白刺激露脸在线观看| 风间由美一区二区三区在线观看| 国产精品人人爽人人爽| 欧美三级中文字| 一级特黄录像免费看| 国产成人在线视频网站| 综合分类小说区另类春色亚洲小说欧美| 成人激情直播| 国产精品视频26uuu| 亚洲一区二区三区美女| 日韩毛片免费视频一级特黄| 欧美中文高清| 狠狠躁夜夜躁av无码中文幕| 亚州av电影免费在线观看| 日韩一级黄色片| 欧美黄色小视频| av图片在线观看| 日韩精品欧美国产精品忘忧草| 国产免费一区二区三区在线观看| 国产呦小j女精品视频| 夜级特黄日本大片_在线| 国产成人精品一区二区无码呦| 99久久精品一区| 蜜桃av噜噜一区二区三| 国产日产欧美一区二区| 国产免费黄色一级片| 午夜欧美激情| 国产午夜三级一区二区三| a级网站在线播放| 超碰97av在线| 久久视频这里只有精品| 久久久久久久久免费| 国产又色又爽又黄刺激在线视频| 免费看91视频| 国产精品亚洲不卡a| 国产亚洲精品久久久久久打不开| 国产99精品视频| 蜜臀视频一区二区三区| 精品在线观看一区二区| 亚洲精品午夜国产va久久成人| 亚洲图片视频小说| 在线视频免费观看一区| 国产调教精品| 五月天福利视频| 欧美国产日韩在线播放| 国产女主播视频一区二区| 亚洲不卡1卡2卡三卡2021麻豆| 三大队在线观看| 国产盗摄在线视频网站| 26uuu久久噜噜噜噜| 两个人日本在线观看视频| 日皮视频在线观看| 欧美h在线观看| 欧美日韩精品在线| 丝袜老师办公室里做好紧好爽| 欧美一区二区三区视频在线观看| 国产啪精品视频网站| 作爱视频免费观看视频在线播放激情网| 国产日产精品一区二区三区四区的观看方式| 亚洲精选一区二区三区| 捆绑调教美女网站视频一区| 精品久久久久久久中文字幕| 亚洲av成人精品毛片| 中文字幕在线观看第三页| 亚洲欧美在线x视频| 欧美中文字幕在线| 国产免费视频在线| 日韩电影在线免费看| 久久久久亚洲无码| 五月天久久久| 欧美一级搡bbbb搡bbbb| 国产一二三四区| 红杏成人性视频免费看| 四虎成人精品一区二区免费网站| 久久婷婷久久| a天堂视频在线观看| 国产成人av在线播放| 亚洲成a人v欧美综合天堂麻豆| 男女超爽视频免费播放| 91麻豆精品成人一区二区| 成人爽a毛片一区二区免费| 粗大的内捧猛烈进出在线视频| 国产精品揄拍100视频| 久青青在线观看视频国产| 国产一级视频在线| 91视频在线免费| 国产a一区二区| 欧美激情黄色片| 特黄特色特刺激视频免费播放| 一区二区三区无码高清视频| 午夜在线观看91| 正在播放精油久久| 亚洲精品aⅴ中文字幕乱码| 日日夜夜精品视频免费| 成人伊人精品色xxxx视频| 国产精品一级二级| 日韩成人小视频| 26uuu另类亚洲欧美日本老年| 欧美日韩精选| 人妻体内射精一区二区三区| 国产视频久久| 欧美亚州一区二区三区| 午夜精品成人在线视频| 亚洲美女黄色| 亚洲免费视频播放| 国产精品一区二区久久精品爱涩| 精品欧美一区二区三区免费观看| 一区二区精品视频| 日本中文字幕在线观看视频| 妺妺窝人体色777777| 国产老熟女伦老熟妇露脸| 91在线免费视频| 国产中文字幕第一页| 久久av资源| 亚洲一区二区偷拍精品| 久久综合网色—综合色88| 日韩精品免费在线播放| 国产xxxx振车| 欧美一级淫片aaaaaaa视频| 91免费视频观看| 在线免费看毛片| 日韩欧美精品| mm131国产精品| 国产成人一区二区| 四虎永久在线精品免费一区二区| 91精品国产综合久久久久久久久| 久久经典综合| 日韩欧美xxxx| 亚洲人吸女人奶水| 久久久久久久久久久免费视频| 国产欧美一区二区三区精品酒店| 欧美老女人另类| 99re热久久这里只有精品34| 亚洲精品91美女久久久久久久| 日本.亚洲电影| 欧美人与禽zoz0善交| h视频在线免费观看| 欧美国产二区| 91网站黄www| 青青热久免费精品视频在线18| 少妇bbw搡bbbb搡bbbb| 亚洲综合网站| 日韩黄色免费网站| 久久91亚洲| a黄色片在线观看| 最新69国产成人精品视频免费| 久久99精品久久久久久久久久久久| 18成人在线观看| av资源一区二区| 中文字幕高清在线观看| 欧美成人女星排名| 欧美午夜不卡影院在线观看完整版免费| 最近免费看av| 欧美老熟妇喷水| 国产成人在线免费观看视频| 伊人365影院| 一区二区三区在线视频播放| 色网站在线看| 国产成人无码精品久久二区三| 久久av资源网| 777a∨成人精品桃花网| 欧美女王vk| 在线观看日韩av电影| 中文字幕在线日本| 唐人社导航福利精品| 91麻豆精品国产综合久久久| 日韩中文字幕无砖| 日本深夜福利视频| 国产午夜一区| 中文字幕日本一区二区| 亚洲国产99精品国自产| 国产精品久久777777| 久久久亚洲综合网站| 久久免费少妇高潮久久精品99| 中文字幕在线视频网站| 亚洲不卡1卡2卡三卡2021麻豆| eeuss影院www在线观看免费| 在线看片不卡| 精品国产999| 欧洲精品在线视频| 午夜影院在线看| 佐佐木明希av| 日韩一级免费在线观看| 国产亚洲精久久久久久| 成人免费黄色网址| 日韩视频一区二区三区在线播放| 免费看片黄色| 亚洲xxx在线| 亚洲少妇诱惑| 国产欧美一区二区三区精品观看| 亚洲国产欧美自拍| 麻豆国产在线播放| 成人午夜剧场视频网站| 国产十六处破外女视频| 九色蝌蚪性视频| 亚洲欧美日韩一区在线| 人妻无码视频一区二区三区| 18禁裸乳无遮挡啪啪无码免费| 久久精品国产sm调教网站演员| 成人精品电影| 91福利免费观看| 国产精品v一区二区三区| 阿v天堂2017| 中文字幕精品综合| 五月婷婷六月香| 精品人在线二区三区| 另类高清dbsm日本tvav| 亚洲国产欧美国产第一区| 日本激情小视频| 久草成人资源| 私拍精品福利视频在线一区| 精品国产欧美日韩一区二区三区| jizzjizzjizz国产| 欧美自拍偷拍第一页| 欧美老**bbbb毛片| 青青青手机在线视频| 成人国产精品免费视频| 欧美精品一区二区三区视频| 欧美一区二区在线视频| 精品久久久精品| 中文字幕一二三区| 伊人五月天婷婷| 夜夜躁狠狠躁日日躁2021日韩| 91丨九色丨国产| 韩国av在线免费观看| 亚洲精品字幕在线观看| 欧美精品九九久久| 日韩国产欧美精品一区二区三区| www插插插无码免费视频网站| 亚洲 欧美 变态 另类 综合| jizz中国免费| 永久免费看mv网站入口78| 免费日韩av片| 国产精品呻吟| 中文字幕日韩欧美一区二区三区| 天天操天天干天天玩| 色综合久久88色综合天天看泰| 中文字幕欧美专区| 亚洲欧美一区二区三区情侣bbw| 亚洲国产精品电影在线观看| 日韩a**中文字幕| 国产精品97| 亚洲一区二区三区观看| 国产精品自产拍在线观看2019| 大地资源网在线观看免费官网| 国产精品久久久久一区二区三区厕所| 欧美国产日韩一区| 日本一欧美一欧美一亚洲视频| 91一区一区三区| 有码av在线| 91蜜桃网站免费观看| 精品视频麻豆入口| 美女扒开大腿让男人桶| 无码人妻丰满熟妇区五十路百度| 97视频一区| 欧美xxxx在线| 日韩精品在线免费视频| 欧美激情一级精品国产| 天使と恶魔の榨精在线播放| 韩日精品视频| 日韩电影免费网址| 成人xxxx视频| 毛片基地一级大毛片| 国产xxxxx18| 免费黄色在线播放| 92精品国产成人观看免费| 国产女主播一区二区三区| 免费的黄色av| 欧美日韩国产a| 亚洲一区二区三区视频播放| 在线视频亚洲欧美| 亚洲国产精品一区二区第一页| 中文字幕日韩综合av| 欧美高清dvd| 久久精品二区三区| 浅井舞香一区二区| 亚洲精品无吗| 日本亚洲欧美美色| 麻豆网址在线观看| 亚洲成人黄色影院| 久久狠狠婷婷| 亚洲欧洲国产日本综合| 久久激情五月激情| 国产精品第一页在线观看| 久久成人综合| 免费观看成人www动漫视频| 欧美绝品在线观看成人午夜影视| 在线日韩精品视频| 成人ssswww在线播放| 欧美妇女性影城| 国产一区二区三区在线观看精品| 亚洲国产你懂的| 成人高潮成人免费观看|