99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

MySQL索引與SQL優(yōu)化:從B+樹到慢查詢排查實戰(zhàn)

MySQL索引與SQL優(yōu)化:從B+樹到慢查詢排查實戰(zhàn) 很多同學學 MySQL 都是靠視頻入門索引、B樹、SQL優(yōu)化這些詞聽起來都很熟但一到線上問題就露餡明明建了索引查詢還是慢明明 SQL 看著沒問題explain 一執(zhí)行卻走了全表掃描面試背了一堆“最左前綴”“索引失效”被追問底層原因時直接卡住。這套知識之所以難不是因為它有多高深而是因為大多數(shù)教程把“原理”和“實踐”拆開了。講 B樹的時候不講 SQL 怎么寫才走索引講 SQL 優(yōu)化的時候又不解釋為什么 MySQL 要這樣執(zhí)行。結(jié)果是背了一堆結(jié)論遇到新問題完全不會遷移。這篇文章不打算復述某個視頻的目錄而是把索引、B樹、聯(lián)合索引、SQL 優(yōu)化、慢查詢定位、高頻面試題串成一條完整的知識鏈路。讀完后你至少能做到三件事第一給一張表設(shè)計合理的索引不再“憑感覺加索引”第二遇到慢 SQL 能按固定思路排查知道先看哪里、再看哪里第三面試被問到底層原理時能用手畫 B樹的方式把過程講清楚。1. 這篇文章真正要解決的問題先說說我觀察到的普遍現(xiàn)象。很多開發(fā)者的 MySQL 知識是碎片化的知道索引能加速查詢但不知道索引為什么能加速知道聯(lián)合索引有最左前綴原則但不知道這個原則是怎么推導出來的知道 explain 能看執(zhí)行計劃但看到 type 為 ref 還是 range 時判斷不了要不要優(yōu)化。這些碎片化知識最直接的后果是線上 SQL 變慢時只能靠猜。網(wǎng)上說“不要在索引列上做函數(shù)操作”你就把所有函數(shù)調(diào)用都去掉網(wǎng)上說“select 不要用 *”你就把所有 select * 改成顯式字段。這些建議本身沒大問題但沒有底層邏輯支撐你永遠不知道邊界在哪里。這篇文章要幫你解決的核心問題是建立一條“數(shù)據(jù)結(jié)構(gòu) → 索引設(shè)計 → SQL 寫法 → 執(zhí)行計劃驗證 → 慢查詢治理 → 面試表達”的完整鏈路。你會先理解 B樹為什么是 MySQL 索引的默認數(shù)據(jù)結(jié)構(gòu)再理解聚簇索引和二級索引的區(qū)別然后掌握聯(lián)合索引的字段順序設(shè)計方法最后能熟練用 explain 和慢查詢?nèi)罩径ㄎ痪€上問題。一句話總結(jié)這不是一篇“記住 20 條優(yōu)化技巧”的文章而是一篇幫你把 MySQL 索引和 SQL 優(yōu)化體系化梳理的文章。適合正在準備 MySQL 面試的開發(fā)者也適合被線上慢查詢折磨得焦頭爛額的日常開發(fā)。2. 核心概念B樹、索引與聚簇索引2.1 B樹為什么是 MySQL 索引的默認選擇要理解索引先理解存儲。MySQL 的數(shù)據(jù)最終是存在磁盤上的而磁盤隨機讀寫的速度比內(nèi)存慢好幾個數(shù)量級。所以存儲引擎設(shè)計索引的第一目標是盡量減少磁盤隨機 IO 的次數(shù)。B樹就是一種專門為磁盤存儲設(shè)計的多路平衡查找樹。它有兩個典型特征第一所有數(shù)據(jù)都存放在葉子節(jié)點非葉子節(jié)點只存放索引鍵值。這意味著每次查找都必須走到葉子節(jié)點才能拿到數(shù)據(jù)所以任何一個查詢的 IO 次數(shù)是相對穩(wěn)定的基本等于樹的層數(shù)。第二葉子節(jié)點之間用指針串聯(lián)成了有序鏈表。這個設(shè)計讓范圍查詢變得非常高效。比如查 id 大于 100 且小于 200 的數(shù)據(jù)只要找到 100然后順著鏈表往后讀就行了不需要回根節(jié)點重新遍歷。從數(shù)據(jù)量角度算一筆賬。假設(shè)一個非葉子節(jié)點能存 1000 個鍵值三層 B樹可以存儲大約 10 億條記錄。也就是說從 10 億條數(shù)據(jù)里查一條記錄大概只需要 3 到 4 次磁盤 IO。這正是 B樹能支撐海量數(shù)據(jù)在線查詢的根本原因。2.2 聚簇索引、非聚簇索引與回表InnoDB 存儲引擎的索引結(jié)構(gòu)需要區(qū)分兩種聚簇索引和二級索引。聚簇索引的特點是索引鍵值決定數(shù)據(jù)的物理存儲順序。InnoDB 的聚簇索引就是主鍵索引。當你建表時沒有顯式指定主鍵InnoDB 會選擇一個沒有 NULL 的唯一鍵作為主鍵如果也沒有它會生成一個隱藏的 ROWID 作為聚簇索引。所以從實踐角度看每張 InnoDB 表都應該有主鍵主鍵最好是自增整型這樣新數(shù)據(jù)的物理插入位置永遠在末尾不會頻繁觸發(fā)頁分裂。二級索引也叫非聚簇索引它的葉子節(jié)點存放的是索引鍵值和主鍵值。這里有一個非常關(guān)鍵的設(shè)計通過二級索引查數(shù)據(jù)時先用索引找到主鍵再用主鍵回聚簇索引查完整行。這個過程叫回表。用一個例子說明。表 user 有主鍵 id還有二級索引 idx_name(name)。執(zhí)行 SQLSELECT * FROM user WHERE name 張三;MySQL 會先走 idx_name 索引找到 name 為“張三”的葉子節(jié)點得到主鍵 id再回到聚簇索引中根據(jù) id 找到完整行。如果查詢命中的數(shù)據(jù)量很大回表成本就很高。這也引出后面要講的覆蓋索引它是一種避免回表的優(yōu)化手段。2.3 為什么 Hash 索引沒有成為默認選擇有同學會問Hash 索引做等值查詢不是更快嗎確實對等值查詢來說Hash 索引的定位速度通常比 B樹更快。但 Hash 索引有兩個致命短板第一它不支持范圍查詢因為 Hash 值是無序的區(qū)間查找只能全表掃描第二Hash 沖突時需要逐個比較在極端情況下性能反而下降。MySQL 的 Memory 引擎和 InnoDB 的 adaptive hash index 都提供 Hash 索引能力但 InnoDB 默認還是使用 B樹核心原因正是為了同時兼顧等值查詢和范圍查詢。理解了這個對比你在面試里說“B樹適合磁盤存儲、支持范圍查詢、樹高穩(wěn)定”時就有了依據(jù)。3. 環(huán)境準備搭建一個可持續(xù)實驗的 MySQL 環(huán)境3.1 安裝與版本選擇網(wǎng)上關(guān)于 MySQL 安裝的教程非常多還有安裝配置教程、Windows 安裝教程、Docker 安裝 MySQL 教程方法五花八門。這里不重復鋪開只強調(diào)幾個關(guān)鍵選擇。學習索引和 SQL 優(yōu)化建議優(yōu)先使用 MySQL 8.0 及以上版本。8.0 的優(yōu)化器比 5.7 更強支持窗口函數(shù)、CTE對索引失效場景的判定也更精細。生產(chǎn)環(huán)境選版本要看具體業(yè)務和云廠商支持情況。如果公司還在用 5.7學習時至少要清楚 5.7 和 8.0 在索引行為上的差異。本地實驗建議用 Docker 快速啟動一個實例避免在系統(tǒng)里安裝一堆依賴也方便隨時重置。Docker 啟動 MySQL 的參考命令如下docker run -d \ --name mysql-study \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORDroot \ mysql:8.0啟動后連接mysql -h127.0.0.1 -P3306 -uroot -proot3.2 準備一張有足夠數(shù)據(jù)量的測試表索引優(yōu)化實驗最怕數(shù)據(jù)量太少。幾千條數(shù)據(jù)時全表掃描和走索引的差別幾乎看不出來很容易得出錯誤結(jié)論。建議準備一張百萬級數(shù)據(jù)量的測試表。創(chuàng)建一個簡單的訂單表CREATE TABLE t_order ( id bigint NOT NULL AUTO_INCREMENT, order_no varchar(64) NOT NULL, user_id bigint NOT NULL, amount decimal(10,2) NOT NULL, status tinyint NOT NULL DEFAULT 0, create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_user_id (user_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;用存儲過程灌入測試數(shù)據(jù)。這里用遞歸 CTE 或存儲過程都行但存儲過程的寫法更容易控制循環(huán)次數(shù)DELIMITER $$ CREATE PROCEDURE init_order_data(IN total INT) BEGIN DECLARE i INT DEFAULT 1; WHILE i total DO INSERT INTO t_order(order_no, user_id, amount, status, create_time) VALUES ( CONCAT(NO_, LPAD(i, 8, 0)), FLOOR(RAND() * 100000), ROUND(RAND() * 1000, 2), FLOOR(RAND() * 5), NOW() - INTERVAL FLOOR(RAND() * 365) DAY ); SET i i 1; END WHILE; END$$ DELIMITER ;然后執(zhí)行CALL init_order_data(1000000);數(shù)據(jù)量到 100 萬條后后續(xù) explain 的結(jié)果會更有參考價值。這步做完了才算有一個能支撐實驗的環(huán)境。3.3 開啟慢查詢?nèi)罩韭樵內(nèi)罩臼嵌ㄎ痪€上 SQL 問題的第一工具。在 MySQL 8.0 中可以直接用 SET GLOBAL 命令動態(tài)開啟避免改配置文件后重啟SET GLOBAL slow_query_log ON; SET GLOBAL long_query_time 1; SET GLOBAL log_output TABLE;log_output 設(shè)為 TABLE慢查詢記錄會寫入 mysql.slow_log 表查詢起來非常方便SELECT * FROM mysql.slow_log ORDER BY start_time DESC LIMIT 10;如果要查看當前慢查詢?nèi)罩鞠嚓P(guān)的所有配置SHOW VARIABLES LIKE slow_query_log%; SHOW VARIABLES LIKE long_query_time;4. explain 執(zhí)行計劃判斷 SQL 是否走索引的標尺4.1 explain 的核心字段給任意一條查詢前面加上 explainMySQL 就會告訴你這條 SQL 的執(zhí)行計劃。重點看四個字段type、key、rows、Extra。type 表示訪問類型性能從好到差大致是type含義常見場景system系統(tǒng)表通常不會出現(xiàn)系統(tǒng)表const主鍵或唯一索引等值查詢WHERE id 1eq_ref聯(lián)表查詢時被驅(qū)動表用主鍵或唯一索引JOIN 查詢ref非唯一索引等值查詢WHERE user_id 100range索引范圍掃描WHERE id 100index遍歷索引樹覆蓋索引掃描ALL全表掃描無索引或索引失效key 表示實際使用的索引名如果為 NULL說明沒走索引。rows 表示預估掃描行數(shù)行數(shù)越大通常性能越差。Extra 是優(yōu)化器給出的補充信息常見的有 Using index、Using where、Using filesort、Using temporary這幾項在后面優(yōu)化時都會遇到。4.2 用 explain 驗證一個基本查詢回到剛才的 t_order 表先看一個簡單查詢EXPLAIN SELECT * FROM t_order WHERE user_id 12345;預期結(jié)果中type 應該是 refkey 應該是 idx_user_idExtra 一般會顯示空或 Using index condition。這說明這條 SQL 使用了二級索引查找。再執(zhí)行EXPLAIN SELECT * FROM t_order WHERE amount 500;amount 列沒有索引結(jié)果大概率是 type 為 ALLkey 為 NULL。這就是一個典型的全表掃描。這里要養(yǎng)成的習慣是任何一條你擔心性能的 SQL先 explain 再下結(jié)論。不要只看 SQL 表面因為 MySQL 優(yōu)化器有自己的規(guī)則是否走索引并不是由 SQL 寫法單方面決定的。5. 聯(lián)合索引設(shè)計、最左前綴與索引下推5.1 聯(lián)合索引的物理結(jié)構(gòu)聯(lián)合索引是指由多個字段組成的索引。很多人以為聯(lián)合索引是給多個字段分別建了索引這是錯誤的。聯(lián)合索引本質(zhì)上是一棵單獨的 B樹它先按第一個字段排序第一個字段相同時再按第二個字段排序依次類推。這也是最左前綴原則的由來。因為索引樹的排序是從左到右依賴的如果你沒有使用聯(lián)合索引的最左邊字段作為查詢條件優(yōu)化器就無法利用這個有序性。比如聯(lián)合索引 (a, b, c)查詢條件只有 b 和 c 時用不上這個索引的最左前綴很難有效利用。5.2 字段順序怎么選聯(lián)合索引的字段順序設(shè)計有兩個核心優(yōu)先級第一優(yōu)先級區(qū)分度高的字段放前面。區(qū)分度越高索引樹在第一個層級就能篩掉越多的數(shù)據(jù)。比如性別字段區(qū)分度很低只有兩三個值放在聯(lián)合索引最前面通常不劃算。第二優(yōu)先級考慮查詢頻率和排序需求。如果有 order by 字段盡量讓排序字段包含在聯(lián)合索引中這樣可以利用索引有序性避免 filesort。舉個例子訂單表常見查詢是SELECT * FROM t_order WHERE user_id 100 AND status 1 ORDER BY create_time DESC;比較合理的聯(lián)合索引是 (user_id, status, create_time)。user_id 區(qū)分度高放最前面status 用來進一步過濾create_time 用來排序。這樣查詢既能利用索引過濾又能避免額外的排序操作。5.3 索引下推是什么索引下推是 MySQL 5.6 引入的優(yōu)化英文叫 Index Condition Pushdown簡稱 ICP。它的作用是減少回表次數(shù)。在沒有索引下推之前二級索引查到數(shù)據(jù)后要先回表再把整行數(shù)據(jù)交給 Server 層去判斷其他條件。有了索引下推后部分條件可以在存儲引擎層直接過濾掉只有滿足條件的記錄才回表。還是用 (user_id, status, create_time) 這個聯(lián)合索引舉例。執(zhí)行SELECT * FROM t_order WHERE user_id BETWEEN 100 AND 200 AND status 1;MySQL 可以在索引樹的掃描過程中直接用 status 1 過濾掉不符合條件的記錄減少回表數(shù)量。理解了這一點你就能明白為什么說聯(lián)合索引設(shè)計得好不只是“能走索引”的問題還能降低回表壓力。5.4 一個典型的聯(lián)合索引示例建立聯(lián)合索引ALTER TABLE t_order ADD INDEX idx_user_status_time (user_id, status, create_time);然后執(zhí)行EXPLAIN SELECT * FROM t_order WHERE user_id 100 AND status 1 ORDER BY create_time DESC;預期的結(jié)果是type 為 refkey 為 idx_user_status_timeExtra 里不會出現(xiàn) Using filesort。這說明索引設(shè)計覆蓋了查詢的過濾和排序需求。如果查詢條件少了 user_idEXPLAIN SELECT * FROM t_order WHERE status 1 ORDER BY create_time DESC;這時候聯(lián)合索引大概率無法被有效利用因為最左前綴缺失。這就是最左前綴原則的實際表現(xiàn)。6. 索引失效的常見場景與規(guī)避方法6.1 隱式類型轉(zhuǎn)換導致索引失效這是最容易被忽視的場景。比如 order_no 是 varchar 類型但查詢時用數(shù)字匹配SELECT * FROM t_order WHERE order_no 12345678;MySQL 會把 varchar 列隱式轉(zhuǎn)換為數(shù)字再比較導致索引失效走全表掃描。正確寫法是使用字符串SELECT * FROM t_order WHERE order_no 12345678;判斷一個查詢是否發(fā)生隱式類型轉(zhuǎn)換可以用 explain 看 type 是不是從 ref 變成了 ALL。這類的坑非常隱蔽尤其是長字符串類型的編號字段。6.2 在索引列上做計算或函數(shù)操作如果在索引列上應用函數(shù)或表達式優(yōu)化器通常無法使用索引。常見寫法包括SELECT * FROM t_order WHERE DATE(create_time) 2026-01-01;原因是 create_time 這個列的值被 DATE() 函數(shù)包裝后索引的有序性被打亂了。更推薦改成范圍查詢SELECT * FROM t_order WHERE create_time 2026-01-01 AND create_time 2026-01-02;這里要說明一點MySQL 8.0 對部分函數(shù)有優(yōu)化但作為通用規(guī)則仍然建議不要在索引列上做函數(shù)操作。6.3 前導模糊查詢以通配符開頭的 LIKE 查詢無法有效利用索引SELECT * FROM t_order WHERE order_no LIKE %abc%;因為索引樹是按前綴排序的%abc%無法從有序樹中定位起點。如果業(yè)務確實需要這種模糊匹配可以考慮全文索引或搜索引擎。僅以固定前綴查詢時LIKE abc%是可以走索引的。6.4 OR 條件與 IN 的注意事項OR 條件中只要有一個字段沒有索引整個查詢就可能走全表掃描。比如SELECT * FROM t_order WHERE user_id 100 OR status 1;如果 status 上沒有索引這條 SQL 很可能退化為全表掃描。更穩(wěn)妥的做法是拆分為兩個查詢或者用 UNION ALL 合并結(jié)果。關(guān)于 INMySQL 優(yōu)化器對 IN 列表的處理相對智能在索引列上使用 IN 通??梢宰?range 訪問。但 IN 列表如果過長優(yōu)化器會重新評估成本甚至選擇全表掃描。這里不能一概而論應該以 explain 結(jié)果為準。6.5 對索引字段做 IS NULL 判斷在 MySQL 中IS NULL 不一定會讓索引失效。實際上如果索引列允許 NULLIS NULL 走索引的情況是存在的。但有一個容易忽略的問題不要在可空列上建立過多索引因為 NULL 值會占用額外空間也可能影響查詢計劃的穩(wěn)定性。設(shè)計表時能用 NOT NULL 就用 NOT NULL并為字段設(shè)置 DEFAULT 值。7. SQL 優(yōu)化實戰(zhàn)從慢 SQL 到高效 SQL7.1 找到慢 SQL前面已經(jīng)配置了慢查詢?nèi)罩?。線上排查時第一步先看慢日志把耗時超過閾值的 SQL 撈出來。MySQL 8.0 里還可以查 performance_schema 的 events_statements_summary_by_digest 表按累計耗時排序快速找到 Top N 慢 SQLSELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR, AVG_TIMER_WAIT/1000000000 AS avg_ms, MAX_TIMER_WAIT/1000000000 AS max_ms FROM performance_schema.events_statements_summary_by_digest ORDER BY SUM_TIMER_WAIT DESC LIMIT 20;7.2 經(jīng)典分頁深翻頁優(yōu)化LIMIT 深翻頁是很多業(yè)務都會遇到的問題。比如SELECT * FROM t_order ORDER BY id LIMIT 1000000, 20;這條 SQL 會掃描前 1000020 行再丟棄前 1000000 行成本非常高。優(yōu)化思路是先用子查詢拿到目標主鍵范圍再回表查完整數(shù)據(jù)SELECT t.* FROM t_order t INNER JOIN ( SELECT id FROM t_order ORDER BY id LIMIT 1000000, 20 ) tmp ON t.id tmp.id;子查詢里只掃描主鍵速度會明顯更快。如果有序字段不是主鍵也可以用覆蓋索引先定位主鍵來做。7.3 order by 排序優(yōu)化出現(xiàn) Using filesort 時通常說明排序字段沒有利用索引有序性。優(yōu)化方式有兩個層面。第一如果排序字段和過濾條件能組成聯(lián)合索引建立合適的索引消除 filesort。比如前面提到的 (user_id, status, create_time) 聯(lián)合索引。第二如果數(shù)據(jù)量確實很大讓排序在內(nèi)存中完成??梢酝ㄟ^調(diào)整 sort_buffer_size 來緩解但這是治標不治本。真正的思路是讓排序走索引而不是依賴緩沖區(qū)。7.4 group by 優(yōu)化group by 的優(yōu)化核心是消滅臨時表。常見思路是盡量讓分組字段走索引減少 MySQL 創(chuàng)建內(nèi)部臨時表的概率。如果無法避免可以通過 SQL 改寫減少分組行數(shù)比如先縮小 WHERE 范圍再分組統(tǒng)計。7.5 避免 select * 的深層原因很多教程都會說“不要 select *”但沒說清楚原因。從索引優(yōu)化角度看select * 會強制回表讀取所有字段導致覆蓋索引失效。如果你只需要 user_id 和 status而索引 (user_id, status) 已經(jīng)覆蓋了這兩個字段查詢就變成覆蓋索引查詢Extra 會顯示 Using index完全不需要回表。SELECT user_id, status FROM t_order WHERE user_id 100;只要這條查詢只查索引列它就在索引樹上完成不回表。這是覆蓋索引的價值也是 select * 最直接的性能損失點。7.6 用一條實際慢查詢走完排查流程假設(shè)有一條線上慢 SQLSELECT * FROM t_order WHERE user_id 100 AND DATE(create_time) 2026-01-01 ORDER BY amount DESC;排查步驟第一步explain 看執(zhí)行計劃大概率會發(fā)現(xiàn) type 不是理想狀態(tài)或者 Extra 里有 Using filesort。第二步檢查 WHERE 條件。DATE(create_time) 在索引列上用了函數(shù)直接導致該條件無法使用索引。改成 create_time 2026-01-01 AND create_time 2026-01-02。第三步檢查排序字段。amount 不在聯(lián)合索引中導致 filesort。如果查詢頻率很高可以考慮調(diào)整索引設(shè)計讓它覆蓋排序需求。經(jīng)過改寫后的 SQLSELECT * FROM t_order WHERE user_id 100 AND create_time 2026-01-01 AND create_time 2026-01-02 ORDER BY amount DESC;再 explain 一次對比 type、key、rows、Extra 的變化。這個流程不依賴任何經(jīng)驗玄學完全靠執(zhí)行計劃驅(qū)動。8. 高頻面試題與底層原理串講8.1 為什么 InnoDB 表必須有主鍵InnoDB 的數(shù)據(jù)存儲在聚簇索引中聚簇索引的葉子節(jié)點就是整行數(shù)據(jù)。沒有主鍵InnoDB 就要找唯一鍵找不到就生成隱藏 ROWID。這個隱藏 ROWID 沒有業(yè)務意義且會導致數(shù)據(jù)存儲位置不受控。更重要的是二級索引葉子節(jié)點存的是主鍵值如果沒有主鍵二級索引就無法高效回表。所以從設(shè)計和原理兩個層面都建議為每張 InnoDB 表顯式設(shè)計主鍵。8.2 主鍵為什么推薦自增整型自增整型主鍵有兩個優(yōu)點一是整型占用空間小二級索引葉子節(jié)點存的都是主鍵值主鍵小索引自然小二是自增順序插入數(shù)據(jù)大概率追加到 B樹末尾減少頁分裂。換成 UUID 作為主鍵隨機字符串不僅占用空間大插入時還會導致頁分裂和索引碎片化。8.3 什么情況下適合用前綴索引對于 text 或超長 varchar 列為了減小索引空間可以只對字段前 N 個字符建索引。比如用戶手機號或郵箱前綴區(qū)分度足夠高時用前綴索引是合理的。但要注意前綴索引無法用覆蓋索引優(yōu)化也不能用于 order by 和 group by。實際項目中可以用如下 SQL 驗證不同前綴長度的區(qū)分度SELECT COUNT(DISTINCT LEFT(order_no, 6)) AS prefix6, COUNT(DISTINCT LEFT(order_no, 8)) AS prefix8, COUNT(DISTINCT LEFT(order_no, 10)) AS prefix10, COUNT(DISTINCT order_no) AS full_col FROM t_order;然后選擇一個與全列區(qū)分度接近的前綴長度。8.4 聯(lián)合索引為什么要考慮區(qū)分度區(qū)分度等于某個字段不同值的數(shù)量除以總行數(shù)。區(qū)分度越高該字段在索引樹中的過濾效果越強。比如共同構(gòu)造聯(lián)合索引 (gender, user_id)gender 只有 0 和 1區(qū)分度極低幾乎不會縮小數(shù)據(jù)范圍。把區(qū)分度高的 user_id 放前面過濾效果會更好。8.5 什么是回表覆蓋索引怎么避免回表二級索引葉子節(jié)點只存主鍵值和索引列值查詢完整行時必須回聚簇索引這個過程叫回表。如果查詢需要的所有字段都在二級索引中那就不必回表直接遍歷索引樹即可這就是覆蓋索引。覆蓋索引是優(yōu)化高頻查詢最有效的手段之一。8.6 為什么 explain 里 rows 不準explain 的 rows 是優(yōu)化器基于統(tǒng)計信息和索引基數(shù)估算出來的不是精確值。它用于判斷執(zhí)行計劃的相對好壞但不要迷信這個數(shù)字。如果統(tǒng)計信息過期可以用 ANALYZE TABLE 更新ANALYZE TABLE t_order;9. 常見問題與排查方法問題現(xiàn)象可能原因排查方式解決方案查詢變慢explain 顯示全表掃描索引列上使用函數(shù)或隱式轉(zhuǎn)換檢查 WHERE 條件是否對索引列做計算改寫 SQL避免函數(shù)操作聯(lián)合索引沒有生效查詢條件不滿足最左前綴explain 查看 key 字段調(diào)整查詢條件順序或重新設(shè)計聯(lián)合索引排序字段導致 Using filesort排序字段不在索引中查看 Extra 字段優(yōu)化聯(lián)合索引讓排序字段入索引select * 導致回表過多查詢字段超出索引覆蓋范圍查看 Extra 是否顯示 Using index改成只查詢必要的字段分頁越深越慢LIMIT 深偏移掃描大量行觀察耗時隨頁數(shù)變化用覆蓋索引先取主鍵再回表慢查詢?nèi)罩緵]有記錄long_query_time 設(shè)置過大或日志未開啟查詢慢日志相關(guān)變量調(diào)整 long_query_time打開日志數(shù)據(jù)量小但查詢不穩(wěn)定統(tǒng)計信息過期對比多次執(zhí)行計劃執(zhí)行 ANALYZE TABLE 更新統(tǒng)計信息唯一鍵沖突導致性能抖動不合理的唯一索引設(shè)計查看錯誤日志重新評估業(yè)務約束字段10. 最佳實踐與工程建議10.1 索引設(shè)計的分階段策略新系統(tǒng)上線時建議不要一次性加滿所有索引。先建主鍵索引和明顯高頻查詢需要的聯(lián)合索引其他索引等壓測或上線后根據(jù)慢 SQL 和應用日志逐步補充。每個索引都會帶來寫入開銷索引數(shù)量越多insert、update、delete 的代價就越大。10.2 不要盲目刪除重復或冗余索引線上經(jīng)常出現(xiàn) idx_user_id 和 idx_user_status 同時存在的情況而 idx_user_status 其實可以覆蓋 user_id 的查詢場景。刪除索引前先用 sys.schema_unused_indexes 查看未使用索引SELECT * FROM sys.schema_unused_indexes;但要注意這張視圖只能反映統(tǒng)計信息收集期內(nèi)的使用情況生產(chǎn)變更前一定要備份和驗證。10.3 SQL 審查應該進入 Code Review 流程很多團隊只 review Java 代碼SQL 寫完直接上線。實際上SQL 質(zhì)量問題最好在開發(fā)階段就通過 explain 發(fā)現(xiàn)。團隊可以在 MR 模板里加入「本次涉及的 SQL 是否附上了 explain 結(jié)果」這一項從流程上倒逼執(zhí)行計劃檢查。10.4 用索引監(jiān)控視圖幫助決策MySQL 8.0 的 sys 庫提供了不少索引使用統(tǒng)計視圖。除了 schema_unused_indexes還可以查 schema_index_statistics查看索引的掃描次數(shù)、使用次數(shù)等信息。這是做一個索引增減決策的重要依據(jù)。10.5 運維變更安全提醒任何線上索引變更都要在低峰期進行。MySQL 8.0 支持在線 DDL但大表加索引依然會產(chǎn)生額外負載需要監(jiān)控主從延遲和磁盤 IO。執(zhí)行前確認備份執(zhí)行后立即用 explain 驗證查詢計劃。11. 總結(jié)與后續(xù)學習方向這篇文章把 MySQL 索引相關(guān)的核心知識做了一個體系化梳理從 B樹的結(jié)構(gòu)原理到聚簇索引、二級索引、回表、覆蓋索引這些基本概念再到聯(lián)合索引設(shè)計、最左前綴、索引下推、索引失效場景最后落到慢查詢定位和 SQL 改寫實戰(zhàn)。比較重要的是這些知識點不是孤立的。遇到任何線上慢 SQL都應該走同一條排查路徑先撈慢日志再 explain 看執(zhí)行計劃然后根據(jù) type、key、rows、Extra 判斷問題層面最后通過改寫 SQL 或調(diào)整索引解決。如果你正在準備面試建議不要停留在背誦概念。可以找一個自己項目里的表把聯(lián)合索引設(shè)計、最左前綴失效、覆蓋索引優(yōu)化各寫一個 explain 示例親眼看一遍 type 和 Extra 的變化。這個過程比背十套面試題都有效。后續(xù)值得繼續(xù)深入的方向還有MySQL 優(yōu)化器成本模型、事務隔離級別對索引讀取的影響、redo log 與 undo log 的底層機制、主從復制延遲排查。這些內(nèi)容都建立在索引和存儲結(jié)構(gòu)的基礎(chǔ)上把今天這篇吃透再往下學就不會覺得吃力了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色五月情| 人人操97| 另类少妇人与禽zOZZ0性伦| 熟女国产在线一区二区三区四区| 亚洲操B视频| anquye五月| 在线理论片| 丁香六月婷婷综合缴| 成人免费高清在线播放| 婷婷五月成人| 丁香婷婷久久综合在线| 五月丁香 啪啪| 亚洲色五月婷婷| 99er免费在线观看| 五月丁香久久丝袜啪啪| 五月婷婷婷婷| 久久综合丁香激情五月| 激情综合婷婷五月| WWW、日本色丁香、co m| 久久久com| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 九九久久99| 天天拍天天操| 色噜噜狠狠色综合成人网| 六月激情婷婷色| 搡BBBB搡BBB搡五十| 怡红院一二三| 久久99久久99精品免视看婷婷| 久久久久久久久久久97| 六月婷婷色色网| www99热| aaa丁香五月天| 性按摩玩人妻HD中文字幕| 99热亚洲精品66| 手机在线视频观看9| 午夜丁香综合婷婷| 成人性爱精品视频| 久久这里只有精品16| 九月激情综合婷婷| 狠狠草网| 免费碰碰视频久| 97色女人在线| 婷婷网五月| 精品婷婷五| enecarbon-materials.com污K127封锁请涟系@wip1688 | 大香蕉伊人久久| jiqingtaose五月天| 国产美女无遮挡裸体毛片A片| 色婷婷社区| 日本精品。999| 婷久久| 成人午夜视频精品一区| 午夜天堂一区人妻| BlACKEDRAW视频一区二区| 五月丁香激情综合网| 久机视频这只有精品| 99成人网一区| 久久精品在线| 五月丁香六月婷综合成人综合| AV网站免费在线| 国产永久一黄| 欧美三级视频下载| 伊人久久大香线蕉av一区| 99干日日干| 91色在线/日韩| 色综合射婷婷| 久久久五月四色| 丁香婷婷六月婷婷六月婷婷六月婷婷| 日韩成人五月天| 五月色婷婷在线观看| 久99久在线| 光棍影院日韩精品| 亚洲精品乱码久久久久久按摩观| 六月五月久久丁香| 99综合99| 激情黄色小说五月天| 日本在线视频手机播放五月婷| a色色片| 国产精品视频免费看| 老妇操B| 九色七七| 久久66er久久| 99热这里只有精品免费观看| 亚洲1区| 狠狠色色| 大香蕉九九操| 色五月婷婷五月久久| 九九熱最新視頻| 思思热在线视频观看精品| 中文在线成人| 婷婷六月爽| 91人妻视频| 五月婷婷在线网站| 日本啪啪网| 丁香六月婷婷| 东北黄色一级| 五月婷婷色影院| 五月天综合网| 九九视频精品在线免费| 欧美婷婷日本| 99re在线观看| 日韩黄色网络| 丁香亭亭久久| 色婷婷亚洲婷婷在线观看| 天天摸色吧天天摸色吧| 久草狼人| 天天激情站| 极品嫩草| 99久久综合网| 色视五月天婷婷| www.五月激情红色| 丁香婷婷影院| 六月婷婷五月丁香| 5Www色5夜| 超碰a女人的天堂| 玖玖婷婷色| 深爱激情九九五月天 | 激情另类综合| 国产9色在线/日韩| 婷婷色综合网日韩国产| 丁香五月大片| 激情五月影院| 9久久婷婷国产综合精品性色| 婷婷丁香五月激情中文字幕版| 99视频只有精品| 国产免费一区二区三区三州老师F1F1.CC | 欧美交换配乱吟粗大25P| 色色激情五月天| 成人片黄网站色大片免费毛片| 婷婷丁香五月91| 色五月婷婷少妇人妻| 五月丁香综合伦理片| 六月婷婷视频| 伊人玖玖网| 伊人五月久久| 亚洲精品V天堂中文字幕| 丁香五月网址| 91一起操| 欧美日韩日韩成人| 99亚州综合精品成人网| 日韩AV一区二区三区| 久婷婷久草| 国产精品久久..4399| 亚洲色婷婷| 大香蕉伊人爱在线| 99a级片| 1024久婷| 天天做天天干天天综合网| 开心五月婷婷| 国精产品一区一区三区免费视频| www.五月婷婷久久.com| 婷婷五月丁香图片人人操| www.狠狠操.co m| 五月综合婷婷五月| 久婷婷久草| 男女99免费视频| 国产成人精品一区二三区熟女在线 | 国产三级片91| 亚洲操人| 国产阿姨日皮艹逼内射视频| 五月婷婷色色| 久久这里有精品在线观看| 色天堂在线| 丁香六月啪啪| 激情五月色综合国产精品| 在线观看免费视频| 亚洲激情网站| www.射伊蕉婷婷| 五月天激情啪啪| 六月婷婷综合久久| 色五月首页| 久久综合热17c| 精国产品一区二区三区A片| 激情99。| 激情婷婷黄色五月| 高清无码视频网址| 五月停停丁香| 久青操| 五月天播播| 五月天色播网| 五月婷婷之综合激情| 99久久亚洲精品视频| 婷婷激情小说| 蜘蛛女免费观看完整版高清电影| www.lchjjc.com| 久久久思思热| 五月 婷 久| 99色精品| 好吊操这里只有精品| 97高清国语自产拍| 色婷婷88| 思思综合热| 超碰免费人人肏| 丁香五月亚洲综合| 国产成人av在线| 日本婷色| 婷久看人爽| 久热A片| 婷婷精品在线| 色六月婷婷| 亚洲综合五月天婷婷| 国产五月婷| 99丁香五月婷婷在线| 深爱开心激情| 亚洲乱码w在线观看| 99精品视频在线免费观看| 五月天大香蕉婷| 激情久久久久久久久久久| 国产亚洲色婷婷99精品| 久久伦乱| 日韩黄色AV无码| 99热这里只有精品4| 天天爱天天做天天爽| 超碰色女| 亚洲婷婷综合视频| av中文字幕免费观看| 久热只有这里精品| 99热精品少| 免费人人操| 婷婷五月天小说| 激情深爱五月天| 成人电影在线免费试看| 丁香六月婷| 激情五月婷在线精品| 久久婷婷国产| 婷婷丁香五月天影院 | 狠狠干综合网| 亚洲、热| 婷婷六月插屄激情| 亚洲色婷婷色| 大香蕉婷婷色| 亚洲av免费在线| 欧美三级韩国三级日本三斤| 亚洲日本韩国| 五月综合久久| 99在线精品视频| 婷婷五月天激情综合| 九九热这里只有精品12| 天干天天干天天天天天| 激情综合播播| 丁香五月视频在线观看| 国产操B视频| 久久99人人| 99热97| 婷婷五月天电影网| 五月激情综合网| 激情五月婷婷丁香综合网| 丁香五月婷婷色综合基地| 亚洲综合99| 五月天天综合| 99黄色性生活| 夜夜久久综合网 | 二级黄色毛片| 婷婷射图| 亚洲色啪| 激情99。| 人人草人人爱手机视频看看| 五月天六月婷婷| 久久思思热视频| 天天成人综合视频| 99热综合网| 激情五月天婷婷丁香 | 五月丁香婷婷爱| 亚洲视频伍月婷婷| 婷婷激情六月综合| 九九aV| 26uuu亚洲| 国产色99| 日本精品99网站| 91色噜噜狠狠狠狠色综合| 五月婷婷激情四月| 色私五月婷婷| 国产精品扒开腿做爽爽爽A片唱戏 亚洲爆乳无码精品AAA片蜜桃 | www.99免费视频| 日韩乱轮AV| 久久99久久99www| 久久日婷婷| 区啪精品| 激情 五月 婷婷 丁香| 五月婷婷天天色| 99热这里只有精品13| 3www激情| 久久六月天| 日日操天天操| 丁香色影院| 4399在线日本A片| 国内久久亭亭| 69五月天视频| 欧美影院| 色无婷婷| 色婷婷小说| 色色婷婷五月天| 五月婷婷开心爱| 久久婷婷一级片| 天天狠狠六月婷丁香影院| 五月丁香啪综合| 99热66| 久婷婷视平| 中文字幕AV网址| 九九热这里精品| 亚洲五月色| 97人人草| 日本综合九九| 可以免费观看的av网址| 婷婷深爱五月丁香| 久9热| 欧美 日韩 人妻 高清 中文| 毛片新网地| 久久这有这里精品| 91玖玖| 伊人丁香五月天丁香在线婷| 99操逼| 丁香五月在线观看完整版| 婷婷五月色惰| 色激情五月天| 亚洲综合1024| 深爱综合网| 搡BBBB搡BBB搡18| 美女91一起草| 女力报到正好爱上你| 五月婷色色| 九九九九热99超碰| 天天激情夜夜干| 美欧成人视频| 操操熟女| 四色AVwww| 久热婷婷| 午夜日日| 色婷婷www| 国产精品18久久久| 国产精品久久99| 久久超视频| 色五月丁香91| 激情久久综合网| 日日干天天| 91九色小视频| 七七九色| 日亚二欧美| 99热日韩| 伊人大香蕉爱聚| 激情综合网激情五月网| 国产美女无遮挡裸体毛片A片| 五月丁香婷婷久久| 特黄三级片| 99久精品| 日韩久久色| 久久婷婷五| 99re在线这里只有精品视频首页| 色综合77777| 婷婷一本和五月丁香| 五月天天丁香婷婷在线中| 99九九99九九九视频精彩| aV欲望人妻中文字幕| 色婷婷五月天小说网| 久久综合五月天| 午夜丁香| 天天操夜夜操| 色五月丁香激情视频| 婷婷91| 五月婷婷久久综合| 夜夜操天天干| 丁香五月婷婷丫| 狠狠爱综合网| 俺也去综合| www.色五月| 伊人五月婷婷| 婷婷99综合| 色五月成人在线| 婷婷五月丁香第四色超碰在线| 五月综合亚洲婷婷| 国产精品成人网站| 大香蕉婷婷色| 色爱99| 无码人妻AV久久久一区二区三区 | 无码一区精品一区视频| 五月天激情子轮| 超碰免费电影| 激情 婷婷 插| 91婷婷五月丁香碰| 色99在线观看| 五月丁香龟婷婷| 99精品偷拍视频| 97碰碰视频| 丁香六月婷婷| 久久久久久久久18久久| www.婷婷,com| 激情网站综合五月天| 狠狠婷婷色| 99色性爰网络| 五月丁香怕怕综合| 激情文学 综合 九月| av在线观看网站| 偷偷狠狠久久婷婷五月天| 五月网站| 国产激情久久久| 丁香五月第九色| 99五丁香月| 日本综合色色| 天天爽天天摸| 26uuu视频欧美| 色婷婷五月天av在线| 激情中文在线| 色婷婷a三区麻| 日本色色网站| 丁香六月婷婷操逼网| 影音先锋91资源站| 第一区久久网站| 日亚二欧美| 婷婷五月天基地| 深爱激情五月婷婷| 亚洲 25P| 9久久久久久久久久久| 久久久天堂国产精品女人| 五月天色婷婷成人| 天天草婷婷五月| 操人视频91| 四虎国产精品永久在线国在线| 洗浴中心操B视频| 91avse| 五月丁香色停停啪啪啪| 99色性爰网络| 玖玖在线| 五月天开心网| 色丁香婷婷| 欧美激情丁香五月| 67久久| 99热老网站| 色99热| 五月网激情| 九九九九九九综合| 99热欲| 婷婷丁香五月综合| 天天色色天天| 激情婷婷啪啪| 9999色色色色| 丁香五月婷婷色五月| 99久久99久久| 操久久精| 久久五月天丁香花| 亚洲狠狠爱婷婷| 五月婷婷开心网| 精品99在线| 天天摸色吧天天摸色吧| 激情五月天色婷婷综合| 人妻在线中文字幕久久| 少妇激情五月婷婷| 九九热只有这里是精品| 人人操Av| 日本婷婷网| 色丁香五月天射婷婷爱婷婷| 色欲婷婷五月天| 激情久久丁香| 大香蕉Av在线| 激情性爱五月| 日本三级中国三级99| 日亚二欧美| 丁香久久九九99| 九九综合88| 丁香婷婷五月天成人| 五月天丁香婷婷网| 亚州第一黄网| 欧美成人日韩| 日本啪啪天堂| 激情综合网丁香| 久久婷婷亚洲| 熟女重口味αV| 性爱在线播放av| 五月亭亭六月色| 伊人大香五月天| 丁香婷婷精品视频| 五月花婷婷最新| 亚洲 小说 欧美 激情 另类| 久久这里只有欧美| 九九这里只有精品| www久| 丁香六月激情综合| 九九视频在线观看视频6 | 丁香五月激情啪啪| 最新国产AV| 777久久久| 97色97干| 亚洲第一色网站| 天天干夜夜b| 思思热久久爱| 超碰色综合| 中文字幕永久在线| 99性视频| 色色综合热| 亚洲精品视频电影| 亚洲五月婷婷在线| 天天干天天干天天操| 99久久精品国产色欲| AA丁香综合激情| 日日夜夜天天| 黄色五月婷| 狠狠色噜噜狠狠狠狠综合| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 色在线99| 五月总合激情网| 五月人妻婷婷| 丁香婷婷色色| 疯狂做受XXXX高潮A片| 九月丁香网婷婷| 亚洲午夜一区二区| 五月丁香六月婷精品视频| 99热无码首页| 97av在线视频| 97色操| 婷婷五月天激情在线观看| 桃色激情网| 五月婷婷啪啪| 停停六月 综合| 99re在线视频精品,这里只有精品18,| 天天婷婷色六月| 色五月天综合网| 九九综合九| 免费啪啪亚州视频| 日韩精品无码99| 99精品自拍| 2018夜夜草| 丁香婷婷基地| 深爱五月激情| 青青草视频免费观看| 国产视频福利| 婷婷夜夜操| 狠狠综合| 色色婷婷五月天| 99精品大片| 狠狠狠狠狠狠| AV九九| 26uuu日韩| 俺去也五月| 伊人久久大香网| 国产精品热搜丁香五月婷婷| 亚洲亚洲人成综合网络 | 九九99精品视频在线观看| 丁香五月欧美| 99热这里| 五月激情网站| 九九精品99久久久| 婷婷开心激情| www.久操| 婷婷五月天在婷| 亚洲精品亚洲人成人网| 五月婷久久| 六月婷婷啪啪| 一本色道久久88加勒比—| 五月天色婷婷网| 国产av天堂| 久9视频| 九九热内射| 亚洲婷婷激情综合激情999精品| 中文字幕无码人妻少妇免费视频| 丁香六月开心| 91丨九色丨熟女高潮| 久久婷婷五月综合色丁香| 激情五婷网| 91麻豆国产三级精品福利在线观看| 超碰三级秋霞| 爱射综合| 亚洲成人电影aaaa| 99热在线观看| 五月丁香激情深爱婷婷| 五月婷无码| 狠狠狠五月婷婷六月丁香| 成人综合网站| 在线A色| 另类在线免费视频| 色噜噜夜夜夜综合网| 天天日夜夜爽| 色婷婷综合久久久久| 欧美日韩成人在线网站| 久久免费9| 亚洲视频五区| 欧美狠狠草| 婷婷狠狠操| 亚洲五月天第一综合干| 国产成人精品一区二区三区视频| 亚洲色vA| www一起操在线观看| 精品人妻久久久久久| 婷婷五月天情色| 超碰com| 激情五月天色色| 亚洲综合九九| 无码天天操| 色香蕉精品五夜婷| 色色性爱视频| 婷婷伊人网| 九九热精品| www.五月天。com| 大香人妻| 五月天社区| WWW五月天| 婷婷最新地址| www,com,五月色色| 99久久国产宗和精品1上映| 少妇AB又爽又紧无码网站| 色操b| 五月天社区婷婷丁香社区| 五月丁香激情四射| 色婷婷婷综合五月天| a毛片二逼wwwwwwwwww| 99色在线| 五月天激情网图片 - 百度| 日本性视频| 色天堂A| 97丁香五月天| 激情丁香久久| 亚洲操逼网| 五月六月激情| 超碰在线91| av大片在线| 亚洲成人无码网站| 精品国产va久久久久久久| 91传媒无码人妻精| 五月丁香网站| 99热97| 亚洲国产色婷婷| 久9草在线观看视频| www.狠狠| 思思热视频在线观看| 五月丁香日本片| 丁香五月-激情综合| 色情久久久| 99色热视频| 99riAv1国产在线观看| 韩国中文字幕91| 色欲av伊人久久大香线蕉影院| 六月婷婷网站| 五月天色狠狠| 99久久精品色老| 久久婷婷艹| 99无码视频| 国产密乳av一区二区三区四区| 99超在线| 超碰久热| 欧美人久久| 超级碰碰一区| 日本黄色三级片内射| 九九99九九99九九99视频网| 狠狠色综合网站久久久久| 色六月天天激情综合网| www.婷婷亚洲基地| www,超碰| 色色综合五月| 久草免费福利视频| 免费观看全黄做爰的视频| 人妻精品在线| 一级二级色大片| 五月天色婷婷伊人网| 色婷婷五月天激情久久| 婷婷五月天免费小说| 香蕉操亚洲| 久热re在线视频| 五月天另类小说久久小说网| 久久se 综合网| 五月天伊人| 天天爽天天日| www激情| 91久久婷婷| 久久超级碰碰| 91avse| 欧美超级视频97| 开心激情综合| 九九视频在线| 狠狠爱五月婷婷| 丁香六月激情综合| 九九热在线视频| 99热在线观看免费精品| 五月天激情国产综合婷婷| 自拍盗摄 另类| 婷婷 月 丁香| 色五月激情网| www.婷婷五月天| 4399亚洲视频| 丁香五月天堂| 国产日韩欧美| 日韩黄在免| 69凹凸成人综合网| 五月天激情日色在线| 丁香九月综合在线| 欧美日韩国产一区| 丁香五月久久| 天天综合.com| www,av好吊操| 激情五月色婷婷| 婷婷欧美综合| 色啪网| 美女久久婷婷| 亚洲免费在线观看岛国| 91丨九色丨高潮丰满日本| 超碰av在线| 小视频在线亚洲| 五月丁香久久激情网| 国模淫穴色图| 色五月五月婷婷| 天天插综合网| 五月丁香色停停啪啪啪| 玖玖婷婷色五月| 99色色热热| 久久这里只有精品网| 99久在线精品99re8| 日本色99| 色五月激情五月| 成片免费观看大全| 丁香五月色情| 女力报到正好爱上你| 99九九在线观看免费| 九九Av| 极品五月天| 九色视频91| 丁香婷婷啪啪啪| 九九热视频在线观看| 丁香六月婷婷久久综合| www.久操| se色99| 99视频在线精品| 色999亚洲人成色| 91碰九色| 国产成人AV人人爽人人澡Va| 丁香五月婷婷AV在线| 99在线免费观看| 色综合久久8| www.天天干.com| 婷婷 色 丁香 夜| 国产亚洲精品AAAAAAA片| 国产小网站| 日本va欧美va精品发布视频| 亚洲婷婷久久综合| 成人丁香婷婷| 大香蕉久久伊人婷婷五月丁香| 特级片神马电影| 玖玖热视频| 婷婷综合九月| 2w在线视频| 99热这里只有精品免费| 99久久精品亚洲综合| 五月色欧洲| 99操碰| 婷婷五月a| 另类小说婷婷色| 色色色热热热| 综合激情在线视频| 六月激情婷婷| 婷婷伊人五月天| 丁香五月婷婷综合视频| 超碰色综合| 亚洲色图在线视频| 色色 9| 99热热热99精品丁香| 思思99热热热99| 激情人妻综合| 另类亚洲视频| 久久a热| 色综合99色| 精品九九视频| 男妓跪趴把舌头伸进我的嘴巴| 99综合| 天天射综合网站| 欧美人人女女精品综合五月天| 五月天欧美激情| 亚洲V国产V欧美V久久久久久| 狠狠做六月爱婷婷综合aⅴ| 9 1超碰九色| 色色色地址| AA丁香综合激情| 99热久久日本| 狠狠草狠狠草| 怎么样可以看免费的一级av| 99色看这里只有精品| 免费视频无码| 97香蕉久久超级碰碰高清版| 久久精品系列| 色情五月婷| 婷婷五月,偷窥偷拍网| 伊人大香蕉综合在线| www.国产色| 激情丁香久久| 日亚二欧美| 五月激情综合网| 天天操天天插天天射| 大陆肏屄视频| 黄桃AV无码免费一区二区三区| 精品五月视频婷婷在线观看| 波多野结衣AV无码Porn| 色婷精品91| 亚洲a色| 天堂色婷婷| 亚洲综合色色| 亚洲 25P| 五月天婷婷婷| 99操逼| 色色色色色色色色色色色色色97| 久操综合| 婷婷五月成年人| 成人丁香婷婷| 五月天婷婷综合网| 超碰av在线| 欧美成人AAA片一区国产精品| 深爱激情网噜噜色| 99色.com| 五月丁香黄色视频| 色五月丁香激情| 婷婷婷久久| 婷婷激情人妻| 三区激情四射av| 五月九九综合| 久草天堂| 亚洲性爱99在线| 婷婷伊人视婷婷婷| 五月丁香婷婷六月| 五月天婷婷五月| 久re热视频| 久久久久久久人妻| 九九爱激情| 99久久婷| 国产婷婷婷| 六月丁香激情| 狠狠色性| 亚洲色夜| 怡红院AV亚洲一区二区三区H | 色婷婷久久综合丁香五月| av无码电影| 亚洲成人在线播放| 狠狠色综合精品视频在线| 综合色色网| www.99.色| 99操视频| 婷婷五月天在线观看免费 | 伊人无码高清| 五月天丁香综合久久国产| 欧美色狠婷久| www:99热视频| 噼里啪啦完整版中文在线观看| 婷婷五月天第三页| 99热这里只有精品亚洲| 99热精品10| 亚洲视频一区| 99视频久久| 国产日韩亚洲欧美在线观看| 综合五月草| 最新日韩久热免费视频看看| 色五月激情五月| 99免费热视频在线| 亚洲aV写真天天综合网久久| 激情深爱综合| 久久99精品久久久久子伦| 国产AV一区二区三区日韩| 久99久在线| 亚洲欧美999| 婷婷丁香五月久久| 色色丁香婷婷| 伊人五月婷婷国产视频| 亚洲成人无码专区| www.99在线| AV在线免费播放| 丁香婷婷噜噜| 天天射夜夜骑| 五月天婷婷色播| 九九精品视频免费在线| 99啪啪网| 色综合久网| 亚洲日比视频| 99在线精品免费视频| 99精品综合| 激情婷婷色色| 婷婷久久精品| 五月丁香婷婷免费视频| 五月天激情视频五月天| 五月永久激情| 中文字幕丁香五月| 天天摸.天天mo| 超碰超碰在线| 色蜜婷婷| 亚洲成人网站在线| 小泽玛利亚视频一区二区| 99热99日天天干| 婷婷五月天综合亚洲| 国产精产国品一二三在观看| 99热这里都是精品| 大地9中文在线观看免费高清| 青草五月天| 开心五月网| 日本久久高清| 亚洲操逼网| 激情丁香婷婷| 俺去也五月| 丁香色五月 97干| 九九无码| 九九激情网| 色五月av| 夜夜嗨一区二区三区直播内容 | 五月综合激情视频| 中文字幕 久久9999| 99视频在线观看视频| 翔田千里无码| 99免费视频网| 26uuu成人网| 成人综合视频在线| 婷婷久久综合| 色狠狠色| 综合色色五月| 丁香五月婷婷高清| 婷婷天堂视频| 日韩欧美一级大黄网站| 四色综合网| 美女婷婷六月色| 婷婷激情五月天亚洲综合| 日日操,天天操| 色色网站| 婷婷色导航| 亚洲人妻av伦理| 色色色九九九五月婷婷| 999九九九久久久99HD| A级毛片高清免费不卡播放谢谢谢谢| 九色七七| 色情五月丁香婷婷网| 五月婷婷免费| 99亚州综合精品成人网| aa久久| 色色色热| 99re在线免费视频| 午夜一区| 婷婷开心综合人妻小说网址| 九九色热| 天天插天天插| 丁香五月综合激情久久潮喷| 色六月婷婷| 色婷綜合网| 婷五月天| 久久婷婷五月综合| 久久性爱激情| 五月丁香狠狠爱| 婷婷开心激情综合五月天| 五月天淫乱视频| 97操操| 五月婷婷综合色啪首页| 激情久久久久久| 五月婷婷香蕉| 五月天婷婷AV| 强辱丰满人妻HD中文字幕| 碰超在线九色| 午夜理论片最新午夜理论剧| 久久精品这里只有精品免费首页| 六月婷婷综合| 九九激情视频| 欧美va视频不用播放器的va视频网| 五月丁香六月香综合激情| 97香蕉久久超级碰碰高清版 | 五月色婷婷在线观看| 可似看的AV| 六月婷婷中文字幕| 四射综合网| 99热这里只有精品96| 99色在线观看视频| 亚洲九九99精品视频在线播放| 日本精品99网站| 色性五月天| 日日日日日| 色婷婷五月天偷拍| 中文字幕色色色| 亚洲日日日| 中日韩狠狠色| 思思久久青草热| 天天操天天插| www,色婷婷| 五月激情五月婷婷五月天在线| 丁香五月天啪啪| 狠狠色九月| 天天操天爱综合| 国产激情综合五月久久| 91肏| 思思久久青草热| 五月综合激情婷婷六月色窝| 丁香婷婷五月天激情四射| 欧美啄木乌丝袜人妻系列| 思思热在线| 日韩无码专区| 九九干视频| 天综合日日夜综合7799| 综合色综合| 久久精品99国产精品日本| 91操碰| 久久92| 91无码高清| 五月婷婷免费在线视频| 激情5月婷婷| 久久婷婷六月综合资源| 无码99| 欧亚洲在线高清视频| 色色丁香婷婷综合| 99精品国产在热久久婷婷| 亚洲AV色婷婷人禽五月天| 黄桃AV无码免费一区二区三区| 六月丁香婷婷拍拍| 亭亭五月色男人| 日本三级中国三级99| 国产综合婷婷| 激情綜合網址| 97干视频在线| 亚洲色图五月丁香| 98色花堂98t.R| 国产三级片91| 超碰人人艹| 色人久久| 激情五月丁香婷婷| 丁香色五月婷婷17C| 99热这里是精品| 思思热思在线精品视频| 99re在线观看| 丁六月激情| 少妇水多A片太爽了| 六月婷婷七月丁香| 激情文学综合婷婷五月天丁香花| 啪啪干伊人婷婷| 激情五月天久久| 丁香五月精品| 激情九九九九| 色欲影香| 色五月综合| 婷婷五月激情综合| 亚洲XX日本| 大香蕉丁香五月| 天天摸天天做天天爱天天爽| 99久久精品国产色欲| 99自拍视频网站| 色色日韩| 在线播放人妻| 五月丁香另类图片| 日本系列_4页_777FP| 天天噜噜| 六月香五月婷| 日日操夜夜操中国无码| 色综合五月| 超碰久热| 大香焦啪啪啪| 五月天婷婷乱论小说| 97人人操在线| WWW.桔色成人.COM| 艾小青av| 婷婷五月中文字幕| 看片视频在线免费日产在线看| 激情五月婷婷网在线观看| 欧美日韩婷婷五月天| 91精品久久久久、久五月天| 影音先锋一区二区三区| 搡BBBB搡BBB搡18| 久久婷婷激情视频| 激情久久五月天| 最近免费中文字幕大全高清大全1| 九九99视频| 婷婷丁香五月综合| 五月天福利影院导航| 五月花婷婷| 99热久只有| 亚洲爱婷婷| 久久久中文| 五月天啪啪| 婷婷久久欧美| 免费99色| 丰满老熟妇BBBBB搡BBB| 天天爽,夜夜爽| 婷婷丁香社区网| 五月丁香亭亭A片| 久久曰曰| 无月播播激情在线观看视频| 91色五月| 9久热视频| 婷婷久久色| 夜夜躁爽日日| 深爱网深爱综合网| 五月天婷婷操逼视频| 亚洲精品国产A久久久久久| 久色| 九九视频在线免费视频| 91操网| 日韩av免费版| 婷婷五月天电影网| 26uuu亚洲| 激情伊人五月婷婷久久| 亚韩在线视频| 婷婷94s| 亚洲视频在线观看| 开心五月综合激情网| 精品51XX| 99re久热只有精品6在线直播| 好色婷婷| 中文字幕91,综合| 天天插天天插| 五月婷久久| 丁香五月天堂网| 久久在线人妻| 日韩色色色99| 9热视频在线观看| 婷婷情色五月| 91碰碰碰| 97人人干| 成人在线综合| 亚洲热热视频| 婷婷色情小说| 亚洲色婷婷激情| 开心婷婷中文字慕| 97超碰在线免费观看| 色碰97| 久月久在线视频| 极品少妇XXXX精品少妇偷拍| 九九热最新地址| 久久婷婷成人| 亚洲va综合va国产va中文| 天天爽天天摸人妻综合网| 久久99久久99精品免视看婷婷| 五月天婷婷午夜丁香| 成人在线视频网| 狠狠色丁香久久| 啪精品| 激情五月九九九| 超级碰碰碰久久网站| 婷婷五月欧美综合| 超碰在线观看三级片| 中文字幕无码人妻少妇免费视频| 激情婷婷六月天| 亚洲成人五月天| 五月天激情图片| www.婷婷六月天| 亚洲中文字幕av| 婷婷五月天激情网| 日韩成人综合网| 激情色播| 夜夜穞天天穞狠狠穞AV美女按摩| 婷婷综合网站| 综合久久婷婷| 丁香六月婷| 欧美性爱五月天| 无码激情AAAAA片-区区| 白人荫道BBWBBB大荫道| 国产成人精品一区二区三区视频| 六月丁香啪啪| 香蕉久久国产AV一区二区| 熟女人妻一区二区三区免费看| 午夜天堂一区人妻| 精品久久久久成人码免费动漫| 亚洲亚洲人成综合网络| 涩丁香| 丁香色情五月综合激情| 一本色道久久综合狠狠躁小说| 亚洲超级碰| 久久久久亚洲AV成人无码电影| 黄网免费看| 婷婷香香五月| 日本女天天爽| 天天干天天 亚洲| 五月丁香操亭亭网| 天天在线XXX| 综合色99| 色色色综合网| 五月天操逼激情| 色婷在线视频| 久久综合中文| 99亚洲综合| 可以直接看的AV网站| 婷婷五月天狠狠色| 五月激情六月宗合| 免费看成人AA片无码视频吃奶| 韩国天天婷婷| 激情另类综合| 这里只有精品热| 五月天色婷婷基地| 99热这里只有精品免费| 99色在线视频| 五月天电影网| 亚洲视频1区| 大香蕉五月天婷婷| 欧美性丁香色色五月天| 综合婷婷都市激情| 激情综合网五月| 大香蕉 婷婷| 91九色大屁股| 激情com| 亚洲天码视频www蛋播视频| 97五月久久丁香婷婷| 狠狠操狠狠爱| 大香蕉啪啪啪啪啪啪| 97在线视频观看| 婷婷丁香激情五月天色色| 色久影院| 无人区码一码二码三码医生系列| 五月婷婷,六月婷婷| 亚洲色五月| 国产一二三四五六七八视频| 玖玖在线视| 丁香六月婷婷色XXXX| 色婷婷成人网| 99热色在线精品| 久久99久久99精品免视看婷婷| 婷婷六月丁香五月图区| 六月婷婷激情图片| 五月婷六月丁| 亚洲超碰在线| 丁香婷婷五月综合欧美另类| 婷婷和五月天| 久久免片| 亚洲中文字幕在线观看| 色色五月天婷婷丁香| ji'qing'luan'ren'lun| 五月婷婷色影院| 五月丁香久久激情综合| 丁香六月婷婷综合色| 五月丁香六月激情在线| 日韩一区二区A片免费观看| 激情综合区| 丁香六月欧美| 丁香五月花影院| 99re这里只有精品9| 五月丁香六月激情在线| 大色鬼综合| 欧亚色色| 激情婷婷五月| 午夜福利8055| 六月丁香婷婷在线波多| 激情五月婷| 五月丁香好婷婷A片网| Www,五月天| 亚洲色无码A片一区二区麻豆| 99久久婷婷| 久99久99精品免| 亚洲国产黄色电影| 色婷婷丁香AV综合| 开心激情站| 99久久免费性爱视频`| pom538精品视频| 超碰97色| 六月丁香婷婷五月| 免费看欧美成人A片无码| 欧美日韩成人在线| 五月婷亚洲精品AV天堂| 色99婷婷五月天| 美国色五月天婷婷资源站| 亚洲成人AV高清字幕| 99视频久久免费视频| 99热精品在这里| 人人操插| 最新久久网址| 热99精品视频五月| 久久五月天网| 天天色99| 婷婷五月天影院| 日韩精品一区二区刘| 色色COm| 91人人爱| 天天操天爱综合| 性爱激情五月| 久热中文字幕在线线观看| 高潮毛片又色又爽免费| 色小说婷婷五月天天天| 香蕉AV福利精品导航| 五月久久噜噜| 少妇性按摩无码中文A片| 久热2025无码| 色色色网站| ...婷婷国产成人亚洲日韩| 天天做天天爽| 深爱激情AV| 婷婷五月天天| 丁香婷婷噜噜| 91精品婷婷国产综合|