免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

MySQL ORDER BY、GROUP BY與分頁性能失效根因與優(yōu)化實戰(zhàn)

MySQL ORDER BY、GROUP BY與分頁性能失效根因與優(yōu)化實戰(zhàn) 1. 這不是“加個索引就完事”的問題為什么order by、group by和分頁在MySQL里會集體失靈我第一次被線上慢查詢報警釘死在工位上是凌晨兩點。一個看似簡單的訂單列表頁SELECT * FROM orders WHERE status 1 ORDER BY created_at DESC LIMIT 20 OFFSET 10000執(zhí)行時間從80ms飆到3.2秒。DBA甩來一句“加個索引不就完了”——我照做了ALTER TABLE orders ADD INDEX idx_status_created (status, created_at)結(jié)果查詢時間只降了17ms。那一刻我才明白把ORDER BY、GROUP BY和分頁塞進(jìn)一條SQL里不是在寫查詢是在給MySQL出一道組合數(shù)學(xué)題。這三者疊加的殺傷力遠(yuǎn)超單點優(yōu)化。ORDER BY要求排序GROUP BY要求分組聚合而LIMIT OFFSET要求跳過前N行——三者共同指向同一個致命瓶頸臨時表Temporary Table與文件排序Filesort的雙重開銷。當(dāng)MySQL發(fā)現(xiàn)無法利用索引直接完成排序分組跳過時它會默默創(chuàng)建一個內(nèi)存臨時表把所有滿足WHERE條件的行全撈出來再在內(nèi)存里排序、分組、計數(shù)最后才取第10001到10020行。一旦數(shù)據(jù)量突破內(nèi)存閾值tmp_table_size和max_heap_table_size臨時表就會落盤觸發(fā)磁盤I/O性能斷崖式下跌。更隱蔽的是GROUP BY常被誤認(rèn)為只是“去重”但它本質(zhì)是分組聚合操作。SELECT user_id, COUNT(*) FROM orders GROUP BY user_id表面看只返回用戶ID和訂單數(shù)但MySQL必須掃描所有匹配行按user_id哈希分桶每個桶內(nèi)累加計數(shù)——這個過程無法被簡單索引跳過除非索引能覆蓋整個分組鍵聚合字段。而ORDER BY若涉及非索引字段或索引順序與排序方向沖突如索引是(a,b)卻ORDER BY a DESC, b ASC同樣觸發(fā)filesort。分頁則是壓垮駱駝的最后一根稻草。OFFSET 10000不是“跳過10000行”而是讓MySQL先找到前10000行再丟棄它們最后取接下來的20行。這意味著無論你只要20條數(shù)據(jù)MySQL都得處理10020行。當(dāng)OFFSET達(dá)到十萬級哪怕有索引B樹也要反復(fù)回表、遍歷CPU和IO雙雙拉滿。所以這不是“怎么加索引”的技術(shù)問題而是如何重構(gòu)查詢邏輯、規(guī)避MySQL執(zhí)行器固有缺陷的工程問題。接下來我會用真實生產(chǎn)環(huán)境的5個典型場景拆解每一種失效背后的執(zhí)行計劃真相、索引設(shè)計陷阱、以及繞過臨時表的硬核替代方案——所有結(jié)論均來自我們?nèi)站?億查詢的電商訂單庫實測數(shù)據(jù)。2. 執(zhí)行計劃里的“隱形殺手”讀懂EXPLAIN輸出中那些沉默的警告很多開發(fā)者看到EXPLAIN結(jié)果里出現(xiàn)Using filesort或Using temporary就慌了以為只要消滅這兩個詞就萬事大吉。但真正危險的是那些沒報錯卻在后臺瘋狂消耗資源的“靜默殺手”。我整理了過去半年線上慢查詢中EXPLAIN輸出最常被忽略的5個關(guān)鍵字段及其真實含義它們比type: ALL更值得警惕。2.1key_len索引實際使用長度的“縮水真相”key_len顯示MySQL在索引中實際用了多少字節(jié)。很多人建了復(fù)合索引(a,b,c)EXPLAIN顯示key_len5就以為索引全用了。但a是INT(11)4字節(jié)b是VARCHAR(50)假設(shè)UTF8MB4最大200字節(jié)c是TINYINT1字節(jié)。key_len5意味著只用了a4字節(jié)b的第一個字節(jié)1字節(jié)——因為b是變長字段MySQL無法預(yù)知其實際長度只能按最壞情況預(yù)留空間。真正的索引利用率要看key_len是否等于你期望使用的字段長度之和。舉個真實案例一張用戶表users(id, city, age, status)需求是SELECT * FROM users WHERE citybeijing AND status1 ORDER BY age DESC。我建了索引(city, status, age)EXPLAIN顯示key_len13cityVARCHAR(20)占80bit10字節(jié)statusTINYINT占1字節(jié)ageTINYINT占1字節(jié)2字節(jié)長度頭13。但查詢依然慢。SHOW PROFILE顯示Copying to tmp table耗時占比68%。原因city字段在WHERE中是等值查詢但ORDER BY age DESC要求索引中age字段的排序方向與查詢一致。而我的索引是(city, status, age)age默認(rèn)升序但查詢要DESC導(dǎo)致MySQL無法復(fù)用索引排序強(qiáng)制filesort。解決方案建(city, status, age DESC)MySQL 8.0支持降序索引key_len不變但Extra字段從Using filesort變?yōu)閁sing index。提示key_len計算規(guī)則需牢記INT固定4字節(jié)BIGINT8字節(jié)CHAR(n)按n字節(jié)算定長VARCHAR(n)按n×字符集字節(jié)數(shù)2字節(jié)長度頭變長。NULL字段額外1字節(jié)標(biāo)記位。用key_len反推索引使用情況比盲目加索引高效十倍。2.2rows預(yù)估掃描行數(shù)的“樂觀偏差”rows是MySQL基于統(tǒng)計信息估算的掃描行數(shù)但它常嚴(yán)重低估。尤其當(dāng)表數(shù)據(jù)分布不均時——比如status字段95%是05%是1統(tǒng)計信息可能把WHERE status1的rows估為總行數(shù)的10%實際卻是5%。更致命的是rows只反映WHERE條件的過濾完全不包含ORDER BY和GROUP BY的額外開銷。一個rows1000的查詢?nèi)粜鐶ROUP BY user_id實際處理行數(shù)可能是1000×平均每個用戶的訂單數(shù)比如50即5萬行。我們曾遇到一個報表查詢SELECT DATE(created_at), COUNT(*) FROM logs WHERE app_id123 GROUP BY DATE(created_at) ORDER BY DATE(created_at) DESC LIMIT 30。EXPLAIN顯示rows8500看起來很健康。但實際執(zhí)行耗時2.7秒。SHOW PROFILE揭示真相Creating sort index耗時1.9秒。原因GROUP BY DATE(created_at)需要對created_at做日期截斷MySQL無法用索引直接分組必須掃描所有8500行計算DATE()函數(shù)再哈希分組。解決方案添加生成列date_only DATE AS (DATE(created_at)) STORED并在其上建索引。EXPLAIN的rows沒變但Extra從Using temporary; Using filesort變?yōu)閁sing index耗時降至120ms。2.3Extra字段里的“偽善提示”Extra字段的提示常帶誤導(dǎo)性。Using index看似完美但它只表示覆蓋索引Covering Index即查詢所需所有字段都在索引中無需回表。但如果查詢包含ORDER BY且索引順序不匹配它仍會觸發(fā)filesort。Using where是中性提示表示W(wǎng)HERE條件在存儲引擎層后由MySQL Server層過濾但若type是ALL或index說明沒走有效索引。最危險的是Using index conditionICP索引條件下推。它聽起來很高級實則暴露了索引設(shè)計缺陷。ICP意味著MySQL用索引快速定位大致范圍比如WHERE citybeijing但索引中不包含status字段所以必須回表讀取status值再過濾。這比全索引掃描還慢——因為多了大量隨機(jī)IO。我們有個查詢SELECT id FROM products WHERE cityshanghai AND price 100索引是(city)。EXPLAIN顯示Using index conditionrows50000。優(yōu)化后建(city, price)Extra變?yōu)閁sing where; Using indexrows降至2300耗時從1.8秒降到45ms。注意Using index condition是“索引沒建對”的明確信號。它代表索引只能幫上一半忙另一半還得靠回表硬扛。此時應(yīng)優(yōu)先擴(kuò)展索引而非接受ICP。2.4filtered選擇率的“幻覺指標(biāo)”filtered表示MySQL估計WHERE條件過濾后的行數(shù)占比0-100。filtered10.00意味著預(yù)計10%的行滿足條件。但這個值基于直方圖統(tǒng)計對復(fù)雜條件如WHERE a1 AND b LIKE %xxx%極不準(zhǔn)確。更糟的是filtered只計算WHERE對GROUP BY的分組數(shù)量、ORDER BY的排序成本、LIMIT的偏移量毫無感知。一個filtered1.00的查詢?nèi)鬐ROUP BY產(chǎn)生10萬個分組ORDER BY需排序10萬行LIMIT 100000, 20需跳過10萬行——filtered對此保持沉默。我們曾優(yōu)化一個用戶畫像查詢SELECT tag, COUNT(*) FROM user_tags WHERE user_id IN (SELECT id FROM users WHERE regionsouth) GROUP BY tag ORDER BY COUNT(*) DESC LIMIT 10。EXPLAIN顯示外層filtered100.00因IN子查詢被物化內(nèi)層filtered5.00??雌饋砗苊馈5珜嶋H執(zhí)行卡在Sending data階段。SHOW PROCESSLIST顯示線程狀態(tài)為Copying to tmp table。根因GROUP BY tag產(chǎn)生數(shù)百萬分組ORDER BY COUNT(*) DESC需對所有分組排序LIMIT 10只取前10但MySQL必須先完成全部排序。解決方案放棄ORDER BY ... LIMIT改用近似算法先SELECT tag FROM user_tags GROUP BY tag ORDER BY RAND() LIMIT 1000采樣再精確統(tǒng)計這1000個tag的頻次并排序。耗時從42秒降至1.3秒。2.5possible_keys與key的“信任危機(jī)”possible_keys列出所有可能用上的索引key顯示最終選用的索引。但MySQL的索引選擇器Query Optimizer有時會選錯。比如一個查詢WHERE a1 AND b10 ORDER BY c有索引(a,b)和(a,c)。possible_keys顯示兩者key選了(a,b)。但(a,b)無法支持ORDER BY c必然filesort而(a,c)雖不能優(yōu)化b10但能避免排序。此時需用FORCE INDEX干預(yù)SELECT * FROM t FORCE INDEX (a_c) WHERE a1 AND b10 ORDER BY c。我們在線上強(qiáng)制干預(yù)過37次索引選擇。最經(jīng)典一例訂單表orders(user_id, status, created_at)查詢SELECT * FROM orders WHERE user_id123 AND status IN (1,2,3) ORDER BY created_at DESC。possible_keys有(user_id)和(user_id, status, created_at)key選了單列(user_id)。原因status IN (1,2,3)被評估為高選擇率MySQL認(rèn)為用(user_id)快速定位用戶所有訂單再內(nèi)存過濾status比用復(fù)合索引掃描更優(yōu)。但實測發(fā)現(xiàn)用戶平均有2000個訂單status過濾后剩300行ORDER BY created_at DESC需對300行排序——而復(fù)合索引(user_id, status, created_at)可直接定位到300行并按created_at倒序返回省去排序。加FORCE INDEX (user_id_status_created)后Extra從Using where; Using filesort變?yōu)閁sing index耗時從320ms降至45ms。3. 索引設(shè)計的“黃金三角”覆蓋、順序、冗余的協(xié)同藝術(shù)索引不是越多越好而是越精準(zhǔn)越高效。我總結(jié)出優(yōu)化ORDER BY、GROUP BY和分頁的索引設(shè)計“黃金三角”原則覆蓋性Covering、順序性O(shè)rdering、冗余性Redundancy。三者缺一不可且需根據(jù)查詢模式動態(tài)權(quán)衡。下面以電商訂單庫的真實索引演進(jìn)為例展示如何用這三角法則解決具體問題。3.1 覆蓋性讓索引承載一切拒絕回表覆蓋索引的核心目標(biāo)是讓查詢所需的所有字段SELECT、WHERE、ORDER BY、GROUP BY涉及的字段全部包含在索引B樹的葉子節(jié)點中從而避免回表Table Lookup?;乇硎请S機(jī)IO大戶尤其在SSD時代一次回表可能比順序掃描100行還慢。原始訂單表結(jié)構(gòu)CREATE TABLE orders ( id BIGINT PRIMARY KEY, user_id BIGINT NOT NULL, status TINYINT NOT NULL, amount DECIMAL(10,2) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, product_id BIGINT NOT NULL );典型查詢Q1SELECT id, user_id, amount, created_at FROM orders WHERE user_id123 AND status1 ORDER BY created_at DESC LIMIT 20。初始索引(user_id, status)能加速WHERE但SELECT中的id、amount、created_at不在索引中必須回表。EXPLAIN顯示Extra: Using where; Using filesort因created_at未在索引中排序。黃金三角第一步覆蓋性。建復(fù)合索引(user_id, status, created_at, amount, id)。注意字段順序user_id和status是等值查詢放最前created_at是排序字段緊隨其后amount和id是SELECT字段放在最后。這樣索引葉子節(jié)點包含全部5個字段EXPLAIN的Extra變?yōu)閁sing indexkey_len顯示完整使用。但問題來了索引長度暴增。user_id8字節(jié)status1字節(jié)created_at8字節(jié)amount10字節(jié)DECIMAL存為二進(jìn)制id8字節(jié)共35字節(jié)。B樹每頁存的鍵值減少樹高增加查詢效率反而下降。此時需引入第二條法則冗余性。3.2 冗余性用空間換時間容忍適度重復(fù)冗余性不是無腦復(fù)制字段而是在關(guān)鍵路徑上為高頻查詢模式預(yù)置“定制化索引”即使它與其他索引有重疊字段。數(shù)據(jù)庫的存儲成本遠(yuǎn)低于CPU和IO成本尤其在云環(huán)境SSD價格已大幅下降。針對Q1我們建專用索引(user_id, status, created_at DESC, amount, id)。created_at DESC確保排序方向匹配消除filesort。雖然user_id已在主鍵和(user_id, status)索引中存在但這個新索引將Q1的響應(yīng)時間從850ms壓至65ms。存儲代價該索引約占用12GB表總數(shù)據(jù)量1.2TB但換來的是Q1的QPS從120提升至1800且不再觸發(fā)慢查詢報警。冗余性還體現(xiàn)在對GROUP BY的優(yōu)化。查詢Q2SELECT user_id, COUNT(*), SUM(amount) FROM orders WHERE status IN (1,2) GROUP BY user_id ORDER BY SUM(amount) DESC LIMIT 10。若建索引(status, user_id, amount)WHERE status IN (1,2)可走索引范圍掃描GROUP BY user_id可利用索引順序分組因user_id在status后SUM(amount)可直接在索引中累加覆蓋性。但ORDER BY SUM(amount) DESC無法用索引排序因amount在索引中是分散存儲的。此時冗余性方案建(status, user_id, amount)(status, user_id, amount DESC)雙索引。后者讓SUM(amount)的聚合結(jié)果天然按降序排列ORDER BY直接跳過。實測Q2耗時從3.2秒降至210ms。經(jīng)驗冗余索引的閾值是——當(dāng)一個索引能讓某個核心查詢的P99延遲降低50%以上且該查詢QPS超過100就值得為其建冗余索引。我們線上有7個這樣的“黃金冗余索引”占總索引數(shù)12%卻承擔(dān)了63%的查詢負(fù)載。3.3 順序性索引字段的排列就是執(zhí)行計劃的路線圖順序性決定索引能否同時服務(wù)WHERE、GROUP BY、ORDER BY。其核心規(guī)則是等值查詢字段, IN放最前范圍查詢字段, , BETWEEN放中間排序/分組字段ORDER BY, GROUP BY放最后。違反此順序索引將部分失效。查詢Q3SELECT product_id, COUNT(*), AVG(amount) FROM orders WHERE user_id123 AND created_at 2023-01-01 GROUP BY product_id ORDER BY COUNT(*) DESC LIMIT 10。錯誤索引(user_id, product_id, created_at)user_id123可用但created_at 2023-01-01是范圍查詢product_id在其后無法用于GROUP BY因product_id不連續(xù)。EXPLAIN顯示Using temporary; Using filesort。正確索引(user_id, created_at, product_id)user_id等值created_at范圍product_id在范圍后GROUP BY product_id可利用索引順序分組MySQL 5.7支持松散索引掃描Loose Scan。ORDER BY COUNT(*) DESC仍需排序但分組已優(yōu)化。極致順序性(user_id, created_at, product_id, amount)。amount加入后AVG(amount)可覆蓋計算COUNT(*)和AVG(amount)均在索引中完成Extra變?yōu)閁sing index。但ORDER BY COUNT(*) DESC仍需排序。此時引入冗余性建(user_id, created_at, product_id, amount)(user_id, created_at, product_id, amount, count_star)生成列后者讓COUNT(*)結(jié)果固化ORDER BY可直接用索引。3.4 三角協(xié)同一個索引解決三個問題的實戰(zhàn)案例最終我們?yōu)橛唵伪碓O(shè)計了一個“超級索引”同時優(yōu)化Q1、Q2、Q3ALTER TABLE orders ADD INDEX idx_user_status_created_amount_id (user_id, status, created_at DESC, amount, id), ADD INDEX idx_status_user_created_product_amount (status, user_id, created_at, product_id, amount);第一個索引服務(wù)Q1user_id等值status等值created_at DESC匹配排序amount和id覆蓋SELECT。第二個索引服務(wù)Q2和Q3status等值Q2的IN被轉(zhuǎn)為多個等值user_id等值Q2的GROUP BYcreated_at范圍Q3的product_id分組Q3amount聚合Q2/Q3。驗證效果Q1 P99從850ms→65msQ2從3.2s→210msQ3從4.7s→380ms。索引總大小增加28GB但數(shù)據(jù)庫CPU使用率下降37%慢查詢告警歸零。關(guān)鍵心得不要幻想一個索引解決所有問題。黃金三角的本質(zhì)是——為每個核心查詢模式設(shè)計一個“專屬索引”用覆蓋性消除回表用順序性支撐分組排序用冗余性容忍存儲成本。這是MySQL優(yōu)化最樸實也最有效的哲學(xué)。4. 分頁的“死亡OFFSET”從游標(biāo)分頁到延遲關(guān)聯(lián)的五種破局方案LIMIT M, N即OFFSET M LIMIT N是MySQL分頁的“原罪”。當(dāng)M增大性能呈線性衰減。OFFSET 100000意味著MySQL必須掃描并跳過前100000行無論這些行是否滿足WHERE條件。我見過最極端案例一個日志表分頁查詢LIMIT 999999, 20耗時17秒EXPLAIN顯示rows1000019Extra: Using where; Using filesort。此時任何索引優(yōu)化都杯水車薪。必須跳出OFFSET思維采用根本性替代方案。4.1 游標(biāo)分頁Cursor-based Pagination用“上次結(jié)束位置”代替“跳過多少行”游標(biāo)分頁的核心思想是不告訴數(shù)據(jù)庫“跳過前N行”而是告訴它“從上次查詢的最后一條記錄之后開始”。這要求排序字段必須唯一且有索引。Q1優(yōu)化前SELECT * FROM orders WHERE status1 ORDER BY created_at DESC LIMIT 20 OFFSET 10000。優(yōu)化后游標(biāo)分頁-- 首頁無游標(biāo) SELECT id, created_at, amount FROM orders WHERE status1 ORDER BY created_at DESC, id DESC LIMIT 20; -- 下一頁用上一頁最后一條的created_at和id作為游標(biāo) SELECT id, created_at, amount FROM orders WHERE status1 AND (created_at 2023-05-10 14:22:33 OR (created_at 2023-05-10 14:22:33 AND id 123456789)) ORDER BY created_at DESC, id DESC LIMIT 20;關(guān)鍵點ORDER BY必須包含唯一字段如id作為第二排序鍵避免created_at重復(fù)時結(jié)果不一致。WHERE條件中用和組合精確錨定游標(biāo)位置。此方案將OFFSET 10000的查詢耗時從3.2秒降至85ms且M增大時性能幾乎不變。我們線上所有列表頁均已切換為游標(biāo)分頁。前端傳遞cursor2023-05-10T14:22:33Z_123456789ISO時間戳ID后端解析為WHERE ... AND (created_at ? OR (created_at ? AND id ?))。QPS從200提升至2200P99穩(wěn)定在90ms內(nèi)。注意游標(biāo)分頁不支持“跳轉(zhuǎn)到任意頁”只支持“下一頁/上一頁”。這對用戶體驗是妥協(xié)但對系統(tǒng)穩(wěn)定性是巨大收益。我們通過前端緩存首頁和熱門頁如第1、10、50頁來彌補(bǔ)。4.2 延遲關(guān)聯(lián)Deferred Join用“窄索引”先定位ID再回表取數(shù)據(jù)延遲關(guān)聯(lián)是處理寬表分頁的經(jīng)典方案。其思路是先用最小化的索引只含WHERE和ORDER BY字段快速找出滿足條件的主鍵ID再用這些ID回原表取完整數(shù)據(jù)。這避免了在寬表上直接排序和分頁。Q4SELECT * FROM orders WHERE user_id123 ORDER BY created_at DESC LIMIT 20 OFFSET 10000。orders表有20字段SELECT *導(dǎo)致回表成本極高。延遲關(guān)聯(lián)步驟-- Step1: 用窄索引獲取ID覆蓋索引無回表 SELECT id FROM orders WHERE user_id123 ORDER BY created_at DESC LIMIT 20 OFFSET 10000; -- Step2: 用ID集合回表取完整數(shù)據(jù)主鍵查詢最快 SELECT * FROM orders WHERE id IN (12345, 67890, ...); -- 上一步得到的20個ID但I(xiàn)N列表有長度限制MySQL默認(rèn)1000且OFFSET 10000在Step1仍慢。終極方案用JOIN替代IN。SELECT o.* FROM orders o INNER JOIN ( SELECT id FROM orders WHERE user_id123 ORDER BY created_at DESC LIMIT 20 OFFSET 10000 ) AS tmp ON o.id tmp.id;EXPLAIN顯示子查詢tmp用索引(user_id, created_at DESC)rows10020仍需掃描但只返回id窄key_len小速度快主表o通過主鍵id關(guān)聯(lián)type: eq_ref極快。整體耗時從2.1秒降至320ms。我們?yōu)橛脩粲唵雾搶嵤┐朔桨?。索?user_id, created_at DESC)僅17字節(jié)B樹深度淺OFFSET 10000掃描10020行比全表掃描快得多。配合應(yīng)用層緩存Step1結(jié)果ID列表P99降至110ms。4.3 子查詢分頁用“主鍵范圍”替代OFFSET當(dāng)排序字段有索引但不唯一時游標(biāo)分頁難實現(xiàn)如ORDER BY status, created_atstatus只有幾個值。此時可用子查詢分頁先查出目標(biāo)頁的主鍵范圍再用范圍查詢?nèi)?shù)據(jù)。Q5SELECT * FROM products WHERE category_id45 ORDER BY price ASC LIMIT 20 OFFSET 10000。price有大量重復(fù)值無法用游標(biāo)。子查詢方案-- Step1: 查出第10001到10020條記錄的price和id邊界 SELECT MIN(price) as min_price, MAX(price) as max_price, MIN(id) as min_id, MAX(id) as max_id FROM ( SELECT price, id FROM products WHERE category_id45 ORDER BY price ASC, id ASC LIMIT 20 OFFSET 10000 ) AS page_boundary; -- Step2: 用邊界條件取數(shù)據(jù)需處理price重復(fù) SELECT * FROM products WHERE category_id45 AND ((price ?) OR (price ? AND id ?)) AND ((price ?) OR (price ? AND id ?)) ORDER BY price ASC, id ASC LIMIT 20;Step1的子查詢?nèi)杂肙FFSET但只返回4個值rows小速度快。Step2用范圍條件避免OFFSET。我們實測OFFSET 10000時此方案比原查詢快4.3倍。4.4 物化分頁表Materialized Pagination Table為超高頻分頁建專用視圖當(dāng)某分頁查詢QPS極高如首頁商品列表且數(shù)據(jù)更新不頻繁如每小時同步可建物化分頁表。其本質(zhì)是預(yù)計算分頁結(jié)果存入一張獨立表用定時任務(wù)刷新。建表CREATE TABLE products_page_cache ( page_num INT NOT NULL, offset_start INT NOT NULL, limit_count INT NOT NULL, product_ids TEXT NOT NULL, -- JSON數(shù)組或逗號分隔 updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (page_num) );定時任務(wù)每小時INSERT INTO products_page_cache (page_num, offset_start, limit_count, product_ids) SELECT FLOOR((row_number : row_number 1) / 20) 1 AS page_num, (row_number - 1) AS offset_start, 20 AS limit_count, GROUP_CONCAT(id ORDER BY price ASC SEPARATOR ,) AS product_ids FROM products, (SELECT row_number : 0) r WHERE category_id45 ORDER BY price ASC, id ASC;查詢時SELECT p.* FROM products p INNER JOIN products_page_cache c ON FIND_IN_SET(p.id, c.product_ids) WHERE c.page_num 501; -- 直接取第501頁此方案將P99從1.8秒降至15ms但犧牲了實時性最多1小時延遲。我們用于“熱銷榜”、“新品榜”等業(yè)務(wù)場景用戶接受度極高。4.5 應(yīng)用層分頁把分頁邏輯從數(shù)據(jù)庫移到應(yīng)用內(nèi)存當(dāng)數(shù)據(jù)量不大100萬行且內(nèi)存充足時最簡單粗暴的方案是一次性查出所有數(shù)據(jù)在應(yīng)用層分頁。這聽起來反直覺但對小數(shù)據(jù)集網(wǎng)絡(luò)傳輸和內(nèi)存排序的開銷遠(yuǎn)小于數(shù)據(jù)庫的OFFSET掃描。Q6SELECT name, email FROM users WHERE depttech ORDER BY hire_date DESC。users表tech部門僅8000人。應(yīng)用層代碼Python# 一次性查出所有tech用戶 all_users db.query(SELECT id, name, email, hire_date FROM users WHERE depttech) # 按hire_date倒序排序內(nèi)存排序O(n log n) all_users.sort(keylambda x: x[hire_date], reverseTrue) # 取第10001-10020頁 page_data all_users[10000:10020]耗時數(shù)據(jù)庫查詢120ms Python排序8ms 128ms。而OFFSET 10000查詢需掃描10020行耗時450ms。內(nèi)存排序8000個對象比數(shù)據(jù)庫B樹遍歷10020行快得多。我們?yōu)閮?nèi)部管理后臺的員工列表采用此方案。dept字段選擇率高結(jié)果集小應(yīng)用層分頁成為最優(yōu)解。5. GROUP BY的“聚合陷阱”從臨時表到物化視圖的性能躍遷GROUP BY常被當(dāng)作“去重”工具但它的本質(zhì)是分組聚合計算性能瓶頸遠(yuǎn)不止于索引。當(dāng)分組鍵基數(shù)高如GROUP BY user_id有百萬分組、或聚合函數(shù)復(fù)雜如GROUP_CONCAT、JSON_AGG、或需多層嵌套時MySQL極易創(chuàng)建巨大的臨時表。我將用三個真實案例展示如何從底層原理出發(fā)繞過臨時表實現(xiàn)性能質(zhì)變。5.1 松散索引掃描Loose Index Scan讓GROUP BY“偷懶”跳過全掃描MySQL的松散索引掃描是GROUP BY優(yōu)化的隱藏王牌。其原理是當(dāng)索引順序與GROUP BY字段完全一致且無范圍條件時MySQL可跳過同一分組內(nèi)的所有行只取每個分組的第一行進(jìn)行聚合極大減少掃描行數(shù)。Q7SELECT user_id, COUNT(*) FROM orders GROUP BY user_id。orders表有1.2億行user_id有800萬不同值。若索引是(user_id)EXPLAIN顯示type: indexrows120000000Extra: Using index。但COUNT(*)需統(tǒng)計每個user_id的行數(shù)MySQL仍需掃描全部1.2億行。啟用松散索引掃描建索引(user_id, id)id是主鍵確保索引有序。EXPLAIN的Extra變?yōu)閁sing index for group-byrows從1.2億降至800萬分組數(shù)。原因MySQL用(user_id, id)索引對每個user_id只讀取該分組的第一行因id遞增第一行id最小然后跳到下一個user_id的首行無需掃描分組內(nèi)所有行。COUNT(*)通過計算跳過的行數(shù)差值得出。實測耗時從28秒降至3.1秒rows減少93%。這是GROUP BY最高效的優(yōu)化方式但要求索引前綴嚴(yán)格匹配GROUP BY字段且無WHERE范圍條件。5.2 索引覆蓋聚合用索引直接完成SUM、AVG、MIN、MAX當(dāng)聚合函數(shù)是SUM、AVG、MIN、MAX、COUNT時若相關(guān)字段在索引中MySQL可直接在索引B樹的葉子節(jié)點上計算無需回表或臨時表。Q8SELECT user_id, SUM(amount), AVG(amount) FROM orders WHERE status1 GROUP BY user_id。索引(status, user_id, amount)status1等值user_id分組amount聚合。EXPLAIN顯示Extra: Using indexrows500000滿足status1的行數(shù)。但SUM和AVG需對每個user_id分組內(nèi)的amount求和/平均MySQL仍需掃描所有50萬行。優(yōu)化建索引(status, user_id, amount)并確保amount在索引中。SUM(amount)可直接在索引葉子節(jié)點累加因amount
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久这里只有国产视频| 激情 婷婷| 狠狠色噜噜狠| 激情五月天综合网| 日韩操人| 色欲色香伊人| 5月婷婷性视频| 九草性爱| 在线观看视频1区| 99热在线观看| 五月丁香六月婷婷操操操| 超碰碰碰碰| 99色热综合| 丁香花色色网| 婷婷射丁香| 五月丁香花激情啪啪网| 色婷婷五月天| 人妻久久久久久| 99re在线这里只有精品视频首页| 这里只有精品免费在线视频| 日本毛片内射| 性爱五月婷| 亚洲天堂99| 777精品成人a v久久| 97碰人人操| 极品人妻VIDEOSSS人妻| 婷婷五月天色色| 亚洲欧美一区二区三区爱爱动图| 久久九九在线视频| 日韩婷婷五月天| 五月天另类激情在线| 久久亚洲婷婷| sewuyuejiqingwang| 久9精品| 国产激情久久久| 91久久电影| 天天日人人| 六月婷婷香蕉| 丁香久久久| 欧美久久一级内射wwwwww.| 91丨九色丨熟女|新版| 欧美激情-区二区三区| 26UUU一区二区| 久久五月天丁香花| 97色操| 亚洲精品一二三| 五月亭亭六月天| 97碰碰人人| 丁香五月天久久| 久草热在线视频| 伊人婷婷五月天| 久久网思思| 77799热| 中文字幕视频在线播放| 色婷婷五月影视| 激情深爱五月天| 五月婷婷天天| 丁香五月欧美| 丁香成人五月天| 婷婷五月婷婷| 人人澡玖玖一| 九九这里只有精品| 国产精品久久久久久喷浆| 99超级碰免费视频| 亚洲人妻av伦理| 免费视频99| 在线婷婷| 五月婷婷六月丁香| 久草婷妨| 99热销国产这里有精品| 五月天精品| 92久久| 内射综合网| 啪啪色区| 色婷婷综合网站| 色色色色网| 丁香婷婷色五月| 高清无码视频网址| www五月婷婷88导航| 99热在线观看| 啪啪东京热| 九九色院| 99热在这里只有免费精品| www.婷婷网| 天天插天天狠| 精品无码视频| 9热视频在线观看| 337p大胆噜噜噜噜噜91Av| 激情六月婷婷| 色五月丁香五月婷婷五月成人网| 五月婷婷五月色| 一区二区免费看| 99热这里只有精品99| 久久这里只精品| 国产99久久久国产精品免费看| 中文字幕成人网站| 久久久性爱网| 激情五月天网页| 五月婷婷,六月丁香| 婷婷综合激情| 欧美搡BBBBB摔BBBBB| 四季8848精品成人免费网站| 99久久久久久| 欧美色爱五月天| 99热只有| 亚洲99精品九九在线| 一级无码作爱片| 五月婷激情影院| 九色PORNY9l原创自拍| 99在线精品免费视频| 色色色com| 日韩无码人妻一区二区| 日日撸天天干| 日本狠狠干| 91丨九色丨首页| 91在线视频综合| 天天爱天天日| 九色视频91疯狂| 777米奇影视第四色| 丁香六月婷婷开心| 怡春院天天干| 中文不卡一二三区| 亚洲激情婷婷| www.久久久.com| 色五月视频无码播放| 夜夜撸日日操| 月婷婷婷婷五月| 五月激情六月综合| 久久婷婷成人| 色五月五月婷婷| 久久久GOGO无码啪啪艺术| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 天天爽天天爽天天爽天天爽天天爽| 激情另类综合| 91操片| 亚洲色99综合天堂| 丁香五月深爱五月婷婷| 202丰满熟女妇大| 超碰不卡在线| 综合色色色| 日产精品久久久久久久蜜臀| 最新热中文字幕| 激情五月天婷婷丁香| 99无码视频| 色婷婷超碰| 欧美啄木乌丝袜人妻系列| 天天婷婷综合亚洲亚洲| 九玖视频这里只有精品| 狠狠干2007| 操一区| 色婷婷玖玖影院| 秋霞簧片| 久久久久久久久月丁| 九月丁香婷婷综合激情| 超碰99在线观看| 97碰| 99精品视频网站| 久久Xx| 五月婷婷影| 欧美婷婷色| 五月婷婷香蕉| 99在线视频操999| 亚洲色五月天在线| 九久久九精品视频| jiqingliuyuetian| 国产精品色婷婷久久久精品| 97干97色| 噜一噜免费视频| 色之综合网| 香蕉狠狠爱视频| 亚洲精品成人片在线播| 色色色五月婷| 国产67194| 成人婷99最新| 久久ER视频com| 婷色五月天| 99综合色色色| 99亚洲精品综合在线| 精品皮股午夜AV| 老美AA片| 精a品a| 久久码久久无清| 五月婷婷69| 婷婷黄色网| 婷婷激情视频欧美视频自拍视频欧美剧| www.99精品日操伊人乱碰在线| 91小黄书网址在线观看| 九九性爱网| 天天干,天天日| 五月丁香成人网| 日本怕怕视频| 亚洲久久天堂| 婷婷六月激情| 能看的av片| 婷婷五月另类网站| 97碰| 狠狠色噜噜狠狠狠888了| 久久日曰| 狠狠狠狠狠狠| 丁香五月电影| 色婷婷婷av| 9国产在线视频| 五月激情五月婷婷五月天在线| www.com任你艹| 国产精品日日躁夜夜躁| 日韩综合大黄| 色噜噜狠狠色综| 性做爰1一7伦| 婷婷欧美综合| 五月婷婷啪啪啪啪| 婷婷五月成年人| AⅤ网站在线看| 婷婷性色| 内射激情在线| www999日韩精品| 超碰97干| 思思热在线精品视频| 老妇六区| 久久久com| 99综合激情久久精品久久| 黑人熟妇一区二区三区| 爆乳熟妇一区二区三区四区| 超碰免费人人| 另类A片| 久久九九99亚洲国产久精综合| 一区操| 婷婷五月天av| 狠狠操天天干| 五月婷婷网站| 五月婷婷,六月激情| 久久9久久| 久久小说| 狠狠色噜噜狠狠狠狠综合| 婷婷五月天电影在线| 综合激情五月婷婷| 97人妻碰碰碰久久| 91日婷婷在线| 欧美性生交xXxX久久久| 日日日日日| 夜夜操天天干| 国产片色| 天天爽曰日爽| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 直接看的av| 激情五月伊人婷婷| 91精品综合久久久久久五月丁香| 99视频91| 丁香五月97视频| 99色婷婷| www久| 大香蕉天堂| 婷婷激情六月天视频| 99色色热热| 99久久五月丁香野外| 婷婷丁香五月综合网| 久久九九国产精品怡红院| 天天综合五月天| 色播婷婷五月天| 婷婷色五月婷婷姐妹| 91日韩美女被插视频| 毛片九九九九九九九九18| 久久曰曰| 91久久精品国产91性色TV| 五月婷在线观看| 色五月播五月| 激情六月天| 丁香五月六月| 色丁香五月天| 色99视频| 涩丁香| 日本视频久久| 亚洲天堂制| 男人大jjc女人免费视频| 一起草AV入口| 停停六月 综合| 久久99日本精品视频免费观看| 色色网站毛片| 五月婷婷9| 五月天婷婷青青草| 婷婷久久影院| 大香蕉综合在线| 丁香婷婷久久| 人人摸人人射| 婷婷久久色| 天天色天天日天天舔| 九九激情| 日日.c| 日本丁香五月| 人人操9| 丁香五月婷婷香| 丁香五月停停av| www.九九婷婷| 婷婷五月天六点丁香五月| 色蜜婷婷| 狠狠香婷婷五月| WWW丁香五月| sewuyue第四色| www.av骚货| 99热在线这里| 成人精品在线| 色九四色| 久婷婷五月综合欧美| 大香蕉五月| 激情婷婷在线中文字幕| 丁香色情五月天| 婷婷五月天日本国产| 欧美性丁香色色五月天综合爱爱| 5月丁香六月婷婷| 五月综合激情网| 欧美久久婷婷| 九九精品9| 五月激情综合性爱| 99热视| 五月丁香六月婷婷a v| 亚洲色情网站| 欧美丁香婷婷五月| 亚洲成人精品三区| 五月天丁香啪啪综合| 日本AAAAAAAAAAAAAA片| 99热伊人| 免费人人操| 激情综合自拍五月婷婷色五月| 亚洲人人干| 色五月六月| 亚洲综合色色| 久久丁香网| 妇激情基地| 岛国av电影网站| 激情五月天婷婷在线网址发给我| 欧美交换配乱吟粗大25P| 五月婷久久综合| 91精品久久久久久77777| 91啪级电影| 欧美日韩成人在线网站| 91综合视频丁香| 九九久久99| 色婷婷视频在线| 亚洲精品久久久无码| 超碰色色综合| www.久热| 色色综合热| 欧美色色色色色色色色色色影视| 久久精品9| 一本久久婷婷| 五月天婷婷久色| 久久久91| www.射伊蕉婷婷| renre人人操国产超碰在线 | 这里只有精品免费视频| 河北真实伦对白精彩脏话| 黄色五月婷婷| 中文色婷婷| 国产精品成av人在线视午夜片| 精品思思久久| 九九AV| 午夜成人在线免费视频| 五月六月伦理| 97色视频网| WWW.桔色成人.COM| 久九男女天堂| 婷婷伊人激情婷婷| 99久久婷婷国产综合精品| 好好日激情五月天| 国产真实乱了老女人视频| 九九精品在线视频观看| 五月婷在线观看| 欧美超级视频97| 婷婷五月av| 亚洲无AV在线中文字幕| 丁香五月综合在线播放| 久久涩视频| 天天干天天 亚洲| 99在线精品免费视频| 九九这里只有精品在线视频| 五月婷婷六月色| 五月婷婷激情| 激情五月婷婷在线区| 天天爽人人综合免费7799| 综合激情五月丁香| 丁香婷婷激情| 99热这里只有精品2016| 亚洲啪啪自拍| 9有码中文| 久久一级片| 婷婷中文字幕网| 日韩免费99| 色婷五月天| 另类激情四射| 色婷婷激情| 天天天天天天天干| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | h亚洲| 97成人在线视频| 天天日天天做天天操| 亚洲国产无线乱码在线观看| 激情激情激情网| 五月丁香婷婷欧美色图视频五月丁香777电影 | 亚洲愉拍99热成人精品| 五月天婷婷无码视频| 婷婷激情综合色五月久久91| 色色色色色色色色色色色色色97| 99久久综合网| 国产精品涩涩涩视频网站| RenRenSe在线视频网站| 久久aaaaa| 国产精品电影网| 色吧综合网| 精品亚洲国产成人A片在线鸭王| 森林影视大全,最好看的2019年视频 | 五月天激情播播网| 真实的国产乱XXXX在线91| 色综合激情| 另类综合激情| 婷婷五月色播天| 欧州色色| 五月丁香激情综合啪| 色五月综合激情网| 外国碰视频网站97| 色宗合久久五月婷婷| 综合久久8| 九九色热| 五月婷婷之综合激情| 深夜男女福利刺激影院一区完整| 亚洲亚洲人成综合网络| 五月婷婷色综图片| 国产色五月婷婷| www.色九月| 激情六月天| 色视频五月天| 狠狠色噜噜狠狠狠777奇米| 亚洲丁香婷婷丁香五月天激情| 九九热欧美| 五月婷婷 婷婷五月 一区二区 久久久| 国产精品VA在线| 色色综合无码| 超碰猛烈的性猛交| 久久九九激情五月天 | 五月间天堂综合| 无码激情| 色色色网站| www.91有码.com| 国产av基地| 婷婷无五月无码视频| 99热老司机| 亚洲性色XXXXX| 色综合区| www.久久9| 免费看欧美成人A片无码| 人人操AV| 色很久综合| 天天射影院| 久久538| 五月丁香六月婷婷成人电影| 日日做夜夜爱| 久碰视频| 色九月婷婷综合| 日噜噜色| 欧美成人猛片AAAAAAA| 丁香五月天天哦| 婷婷五月丁香色综合| 成人国产网站在线免费看| 99热精品在线播放| 亚洲va在线∨a天堂va欧美va| 婷婷五月激情四月综合| 丁香婷婷色情| 碰碰碰97免费精彩视频| 激情人妻蜜夜系列区| 五月丁香六月婷| 十一月婷婷激情四射| 五月丁香六月婷婷手机无线| 婷婷香香五月| 色婷婷av在线观看| 久久久久久久丁香五月天婷婷| 色人久夂| 99热日韩| 亚洲综合激情五月久久| 热99国产精品| 青青夜夜狠狠夜夜狠狠| 日本精品。999| 这里只有精品,日韩视频| www.超碰| 天天天操天天天爰| 激情影院免费视频婷婷五月天| 亚洲热手机在线观看| 久热九九| 婷婷色五月偷拍| 亚洲精品网站色视频| 思思热天天看| 丁香五月综合福利视频导航| 婷婷在线午夜| 五月开心深爱激情网| 99久久大片| 俺也去在线视频 | 欧美69色| 色五月综合在线| 亚洲综合99| 99热九九这里只有精品| 丁香五月狠狠综合欧美| 99爱在线精品视频免费观看| 七七九色| 五月天婷婷基地| 国产精产国品一二三在观看 | 天堂呦 呦百度搜索-百度搜索| 狠狠久久婷五月综合色| 久久综合色情网站| 思思热国产视频| 国熟女视频| www、色色色| 天天肏天天肏天天肏| 99综合| www.色五月| 亚洲狠狠丁香婷婷香蕉| 亚洲成Av人片乱码色第1集| 久热99热| 丁香五月婷婷成人综合| 五月婷婷深深爱| 日本婷婷五月天| 国产精品久久久久9999小说| 天天综合91入口| www.91色| 丁香六月婷婷姐网| 丁香五月电影| 五月色情婷婷| 综合玖玖性爱免费视频| 婷婷六月五月天综合| 久久激情五月天| 国产精品久久久久久久久久免费| 精品人妻在线| 久久99久久99精品免视看婷婷| 五月天激情国产综合婷婷| 五月激情偷拍| 色爱爱综合网| 五月婷婷内射网| 六月综合婷婷开心伊人| 久久AAAA片一区二区| 婷婷激情五月天小说| 六月婷婷深深爱| 久久六月天| 色99色| 五月婷婷狠狠久久| 婷婷5月天激情综合| 久久99热这里只有精品| 欧美日韩精品人妻狠狠躁免费视频| 日韩三级视频一区二区| 狠狠五月天婷婷| 天天综合色丁香| 激情内射人妻1区2区3区| 久久久99婷婷久久久久久| 久色五月婷婷综合| 激情五月婷| 99在线公开视频| 久久婷婷五月天激情唯美| 丁香六月色婷婷| 五月花激情网| 可以免费看AV网站| 97干干干丁香| 五月天激情小说电影| 92久久| 日韩精品无码AV| 99色1| XX色综合| 91viP在线看| 99免费热视频在线| 日韩aⅴ视频| 丁香丁香激情网| 亚洲综合久| 欧美操我| 婷婷五月六| 97人人干视频| 天天射天天射一道本日本社区| 欧洲色| www久久99| 99色色网| 玖玖婷婷婷丁香五月| 婷婷五月天日本无码| 91操人人操| 极品 少妇 内射| 色婷婷狠狠| 激情深爱综合| 国产欧美日韩综合精品一区二区| peg 2区三区四区的| 婷婷爱五月天| 欧美人与性动交CCOO| 亚洲婷婷视频| 99热这里都是精品| 婷婷操逼网| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 亚洲激情综| 九九亚洲无码| 九月激情综合| 91色久| 大香蕉人妻| 中文字幕永久在线| 北京熟妇搡BBBB搡BBBB| va婷婷在线免费观看| 色色色香蕉五月婷| www,色色色网站| 情一色一乱一伦一91A| 色婷婷丁香五月| 伊人久久大香蕉网| 天天舔天天爽| 色久五月| 五月花激情网| 在线天堂9| 久久久97| 亚洲成av人影院| 五月丁香六月婷婷婷婷| 美女91一起草| 91精品综合久久久久久五月丁香| 婷婷色无码| www超碰com| 五月激情婷婷在线| www.色99| 国产亚洲精品久久久久久久久动漫| 思思久久思思| 六月丁香影院| 狠狠操狠狠爱| 丁香婷色| 国产亚洲精品久久久久久久久动漫| 精品一区二区三区木瓜| 一本色道久久综合狠狠躁小说| 五月婷婷偷拍| 婷婷久久国产视频| 色婷婷激情五月天| 婷婷在线视频| 五月天网站亭亭| 色九月| 久久99最新地址| 99热这里只有精品首页| 最新久久网址| 少妇水多A片太爽了| 色婷婷五月在线| 综合97五月| 日本色超碰| 亚洲综合在线视频| 日韩十国产极品久久| 日本人妻A片成人免费看片| 嫩草AV久久伊人妇女超级A| 婷婷六月久久综合导航| 成人av在线网站| 婷婷在线中文字幕| 九月丁香| 天天爱综合网| 五月天激情国产综合AV| 激情综合婷婷| 亚洲四色五月| 97色五月婷婷在线| 99热官网精品在线| 高清无码入口| av在线色五月丁香婷区久| 婷婷色网站| 69久久久| 国产精品天天狠天天看| 26UUU欧美| 夜丁香综合| 成人深爱丁香五月| 99综合久久| 婷婷五月在线| 综合av在线| 亚洲激情综合| 九九五月天| 色五月婷婷色五月婷婷色五月婷婷| 亚洲视99| 激情文学久久| 国产日韩av片| 丁香婷婷五月综合| 色都都狠狠色都都色综合色| 激情内射人妻1区2区3区| 婷婷天天日婷婷| 9l视频自拍9l视频自拍九色学生| 婷婷五月激情天| 色色亚卅| 天堂婷婷丁香六月网| 色视频2025| 亚洲av成人在线| 丁香六月激情综合网| 91久久精品国产91性色TV| 天天爽天天操| 狠狠操狠狠插| 久色| 色墦五月丁香| 九九人人操| 亚洲综合色网| www.狠狠操| 激情AV| 婷婷视频网| 最新va在线播放| 久久精品视频在这里有| 直接看的AV网站| 99热这里只有精品50| 五月丁香亭亭成人电影| 六月丁香激情最新更新| 人人爽人人爽人人爽人人爽| 五月婷婷激情色情网| 婷婷五六日| 婷婷综合五月激情| 国产片色| 狠狠色综合精品视频在线| www.henhengan| 丁香五月婷老师| 色五月丁香五月天| 九九性爱网| 亚洲免费99| 亚洲成人在线播放| 国产婷婷色综合AV蜜臀AV| 777米奇影视第四色| 熟女色色一区二区| 国产美女主播vip| 91人操| 色噜噜婷婷| 色五月涩涩婷婷蜜桃| 丁香五月视频在线观看| 婷婷五月天成人影片| 激情五月四色| 色五月婷婷综合在线| 色色五月婷婷| 色五月激情五月| 97色五月丁香婷婷| 超碰日日操| 欧美日本综合网| 都市激情小说婷婷| 激情久久久久久久久| 五月丁香综合激情网| 日本不卡高字幕在线2019| 国产女18毛片多18精品| 国产精品美女| 日日干夜夜撸夜夜骑| 日日夜夜爽| 91九色国产| 精品一二三区久久AAA片 | 日韩人人操| 五月婷婷深深爱| 天天色·欧美| 五月婷婷香| 一本色道久久综合狠狠躁小说| 中文字幕婷婷9月天| 日韩黄色电影| 深爱丁香激情| 91九色国产| 2015在线中文字幕| 五月五婷婷网| 操操操Av| 中文字幕日本最新乱码视频| 九九人人自拍| 婷婷中文字幕版| 五月婷婷综合在线视频小说| 欧美精品999| 天天肏在线| 吊色AV男人的天堂| 另类图片 五月激情| 伊人婷婷五月天| 极品人妻VIDEOSSS人妻| www.99热这里精品| 深爱五月亚洲| 久久怕怕视频| 久久婷婷夜| 丁香五月天av| 色狠狠综合| 亚洲熟女乱色综合亚洲网站| 婷婷日日天天| 久操热线| 五月天丁香综合| 黄色AAAAA| 亚洲精品一区中文字幕乱码| 丁香六月啪啪啪| 天天做天天爱天天综合网| 91操人| 久久久大香蕉| 亚洲最大视频| 1024欧美看片| 激情五月天在线观看色婷婷| 久久久久久97| 国产精品成人网站| 五月丁香婷婷三级| 丰满少妇乱A片无码| 久久99综合| 在线观看亚洲视频影院| 热九九九九| 六月丁香婷婷开心综合基地| 色色色综合| 五月亭久久无码视频| 五月WWW| 亚洲中文字幕在线观看| 91艹人| 97碰在线视频| 色热久资源| 丁香五月性爱| 日韩成人无码人妻| 婷婷色九月| 久久婷婷五月综合精品蜜芽| 婷婷丁香五月综合| 五月丁香婷婷婷激情爱爱| 天天久综合| 五月激情久久| 俺去也五月| 激情国产五月| 久久久久人妻精选| 人人操超碰| 亚洲五月天婷婷在线| 亚洲综合色成丁香五月色| 丁香六月激情综合网| 性无码专区无码| 亚洲精99| 婷婷五月久久| AV五月婷婷露脸| 欧美激情 日韩无码 婷婷 五月天| 色欲天天综合| 色婷婷影音| 91碰超| 337p大胆噜噜噜噜噜91Av| 啪啪一区| 久久婷婷激情五月天一区二区| 亚洲色啪| 99久久er| 五月花激情网| 丝袜大香蕉| 久久ER视频com| 激情图片亚洲| 六九色综合婷婷五月天| 人妻激情综合| 丁香九月激情| 狠狠干思思热| h亚洲| 丁香五月在线观看| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 成人做爰A片免费看网站找不到了| 99激情在线| 五月丁香六月色婷婷综合五月天| 99欧美| 婷婷五月骚厕所| 99热在线看片| 综合色播| 欧美成人A片AAA片在线播放| 欧美天堂久久| 欧美色综合天天久久综合精品 | www.狠狠操.com| 色播色丁香五月| 九九九九毛片| 久久婷婷五月综合色播| 99re资源在线视频导航| 婷婷五月天视频免费在线观看| 99久久天堂婷婷| 色五月色五天免费视频| 久草性爱| 日本人妻伦在线中文字幕| 色婷婷久综合久久一本国产AV| 婷婷终合色图| 日日操天天操| 99.色| 婷婷五月综合色中文字幕| 99免费视频| 婷婷五月丁香五月丁香| 丁香花社区av| 婷婷无码视频| 26uuu国产精品| 99在线资源| 97五月婷| 激情图片五月天| 欧美人人草| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 思思久久青草热| 亚洲av综合网| 亚洲a片免费观看| 狠狠狠狠狠干| 久久多色| www五月天激情com| 丁香无月在线观看| 91丨九色熟女丨首页| 五月激情小说| 超碰成人在线观看| 超碰熟女拍拍| www,色中色| 久99热| 偷拍九九五月丁香婷婷| 丁香婷婷成年| 色婷婷久久| 996热re视频精品视频| 99热在线这里| AV国产有码| 六月丁香基地| 婷婷伊人中文字幕| 五月天停停日日| 色吧网综合| 69超碰在线| 97色碰| 色色五月婷| 五月天婷婷激情综合| 免费久久这里只有精品99| 99re热在线视频| 大香蕉人在线65| 91女人18毛片水多国产| 嫩草AV久久伊人妇女超级A| www.婷婷.com| 亚洲色啪| 九九香蕉网| AV五月丁香| 伊人婷婷色| 99网99热| 人妻少妇色综合| 色五婷婷开心缴| 深爱激情丁香五月| 色偷偷狠狠| 特级片神马电影| 五月丁香六月婷婷在线播放| 操逼福利视频| 国产中文亚洲欧美日韩性交| 婷婷导航| www.天天干.com| 99视频超级精品| 五月激情丁香五月| 成人五月天在线观看| 午夜丁香丁香婷婷| 99久久免费性爱视频`| 九九视频免费| 99区视频| 玖玖精品资源| 婷婷五月色丁香在线看| 丁香婷婷五月综合影院| www.26uuu.com亚洲电影| 九九视频在线免费视频| 婷婷六月激情丁香| 天天干天天爽天天操| 天天谢天天操| 99精品视频网| 久超超碰| 色五月婷婷综合| 色色色综合网| 丁香婷婷狠狠97| 色婷婷AV久久| 91九色视频在线观看| 啪啪激情综合| 久久这里在精品视频| 激情五月婷婷啪啪| 色婷婷五月中文字幕在线dvd| 亚洲另类视频| 天天色播| 日韩无码专区| 色婷婷无吗| 无码髙清| 九九国产精视频| 99热这里只有精品13| 色综合射婷婷| 丁香久久综合| 丁香五月成人| 久久久色情| 伊人干综合| 婷婷亚洲丁香五月| 婷婷五月综合亚洲| 色99在线| www九九免费视频| 久久一级免费黄色片| 婷婷午夜精品久久久| 激情宗合哪里能看| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 丁香六月激情综合网| 国产精品视频久久99| 日韩黄色电影| 婷婷天堂站| 操比激情五月| 色天天综合天天综合频道。| 一本综合丁香日日狠狠色| 欧美日本黄色| 亚洲精品久久久久久久久久飞鱼| 人人妻人人澡人人爽| 五月丁香婷婷无码中文| 99热在这里只有精品| 天天日天天插| 人妻中文字幕网| 丁香五月综合激情久久潮喷| 久久婷婷成人综合色怡春院| 亚洲激情婷婷| 韩日另类| 手机在线视频观看9| 丁香五月综合婷婷| 丁香五月婷婷亚洲综合精品在线| 色五月激情婷婷| 五月丁香六月婷婷网| 亚洲一区二区 成人网站戴套| 亚洲午夜视频| 九九综合久久| 午夜大香蕉| 欧美大片| 九九伊人网| 开心深爱激情网| 欧美三级巜人妻互换| www.精品99| 五月第四色| 俺去也五月| 异能之下短剧免费观看全集| 五月天啪啪啪| 欧美色男人网站| 99热最新地址在线| 亚洲人成色A777777在线观看| 男人操女人高潮91视频| 丝袜大香蕉| 国产亚洲色婷婷久久99精品91| 国产69精品久久久久999小说| 97视频.干com| 五月天啪啪啪| 综合另类激情| 伊人在线婷婷草| 国产精品美女| 91久久1118| 先锋资源婷婷| 久久色吧| 日本成人小说婷婷六月| 色情婷婷| 五月大香蕉| www.婷婷亚洲基地| 成人资源在线| 99免费热视频在线| 狠狠色综合图片| 久久只这里有精品| 丁香五月激情网| 国产亚洲色婷婷99精品| 99热亚洲精品| 99久久婷| www.黄色片-久久成人国产精品在线播放-999AV | 人。妻久久| 91操黄| 好吊丝aV| 九九热精品| 做爱夜夜干天天操| 亚洲精品成人| 99'无码| 婷婷色综合| 色狠狠999综合网| 激情欧美五月丁香| 99热9| 大香蕉综合| 青青草tp| 色情婷婷| 国产伦理精品高清在线观看网站一区二区 | 无码九九| 久久婷婷五月| 天天日日人| 最近中文字幕大全免费版在线 | 狠狠干综合| 久久激情综合| 欧美午夜乱妇午夜福利| 五月丁香六月婷婷a v| 香蕉久日夜| AAAA网站| 超碰无码318604| 亚洲AV日韩无码| 超碰99热| 99精品无码| 天天操九九插| 丁香婷婷综合影院| 久久视频婷婷| 久久99精品视频| 激情六月婷婷| 九九九成人在线视频| 九九色婷婷Av| 丁香五月婷婷大香蕉| 日本久久天堂| 欧美顶级少妇做爰HD| 人人视频色| 五月久久网| 婷婷天天色| 思思综合热| 激情久久网 | 六月激情婷婷综合| 97亚洲精品| 丁香六月激情四射| 亚洲精品操一操、噜一噜、摸一摸、爽 | 色婷婷文字幕| 丁香五月播播| 婷婷五月天熟妇| 大香蕉啪啪啪啪啪啪| 情色五月天网站| 色天天久婷婷| 五月丁香婷色| 五月激情站| 九九热视频思思| 亚洲婷婷91丁香| 国精产品一区一区三区免费视频| 日韩在线aaa| 久久久999精品| 久九男女天堂| 激情性爱五月| 韩国婷婷丁香五月| 婷婷色吧| 色九月| 六月婷婷在线视频| 密黄站| 操操熟女| 三级三久久线久久99久目本WW| 五月开心婷婷| 婷婷九月激情| 亚洲欧美成人在线观看| 亚洲AV免费在线| 婷婷五月天电影在线| 在线婷婷| 91猫咪国产在线播放| 免费视频99| 丁香婷婷成人网| 九九日本视频| 99啪啪骑| 五月综合激情婷婷六月色窝| 婷婷九月丁香| 五月天成人手机在线视频| 久久 中文 日本| 国产XXXX搡XXXXX搡麻豆| 综合99久久| 开心五月深爱婷婷| 成人羞羞啪啪 全 视频| 日韩欧美老妇性视频91久久久| 国产精品99久久久久久久女警 | 欧美性爱丁香五月| av九九| 精品久久艹| 天天拍夜夜爽| 国产欧美日韩性爱| 99热欧美偷拍| Av在线不卡一区| 四LLL少妇BBBB槡BBBB| 亚洲无码另类| 婷婷色综合| 婷婷激情五月天在线| 六月色婷婷欧美| 狠狠色色| 综合久久高清| 欧美久久久久久久久中文字幕| AA片在线观看视频在线播放| 成人精品人妻| 国产午夜一区二区三区| 天堂婷婷丁香六月网| 这里只有精品99视频| 国外亚洲成AV人片在线观看 | 五月婷久久综合| 最近中文字幕2019视频1| 日本婷婷| 婷婷综合五月| 婷婷狠狠97| 婷婷色五月丁香六月欧美啪| 日本在线噜噜| 99er免费在线观看| 久热这里只有精品性色AV| 99日本黄站| 久久婷婷国产| 婷婷丁香亚洲色综合91| 五月丁香婷婷激情四射迷人| 精品九九久久| 91无码色色| 99ER热精品视频| 开心五月婷婷| 亚洲九九视频| 狠狠狠狠狠狠狠狠| 色播播婷婷| 99热精品无码| 五月婷婷视频28| 丁香伊人激情| 99在线精品观看99| 激情久久久| 一级黄色影片| 99免费热在线精品| 亚洲美女婷婷五月天| 天天综合色丁香| WWW五月天| 五月婷婷免费| 蜜臀嫩草| 日韩在线aaa| 天天日夜夜曹| 成人丁香色| 国产99久久久| 天天艹夜夜艹| 1000部毛片A片免费观看| 亚洲欧洲中文日韩久久AV乱码| 色色欧美色色| www.久久99精品| 97色视频网| 激情床戏| 亚洲丁香婷婷五月天综合色| 色播丁香| 色婷婷欧美在线| 天天做天天爱天天爽在| 久久婷婷五月草视频| 激情五月天伊人av| 六九色综合婷婷五月天| 99色综合网| 色五月激情| 欧美电影在线观看| 九九久久腿| 五月激情婷婷国产精品久久久久久| 精典久久| 99激情网| 日本性激情色播| 99自拍网| 五月激情四射网站| 激情亚洲婷婷| 国产26uuu视频| 开心五月激情网| www久久99| 久热AⅤ| 久鲁鲁色网 | 婷婷自拍| 蜜臀A∨在线水帘洞| 日韩五月丁香| 欧美激情综合| 91pornav在线| 九九熱最新視頻| 丁香九月婷婷色| 日韩性视频| 久久97久久99久久综合欧美| 99热全是精品| 色色色色色色色综合| 99乱视频| 97综合在线| 亚洲情欲久久| 丁香五月激情六月欧亚激情综合导航| 色播五月丁香综合| 丁香五月激情五月| 亚洲第一综合| 五月天婷综合| 五月色丁香婷婷中文字幕| 操骚货在线| 成人免费120分钟啪啪| 色婷婷激情五月天| 色综合久久88色综合天天人守婷| 久久免费精彩视频| 久久久国产精品黄毛片| 激情碰碰碰| 色,激情五月天| www.99成人视频| 97操操| 97超级碰| 婷婷91| 天堂草在线看www| 亚洲人妻av| 玖玖精品婷婷| A A色色| 婷婷伊人网| 狠狠综合久久综合| 色五月婷婷五月久久| 99热播放| 亚洲国产色婷婷| 99久久综合网| 色色色成人网| 四月婷婷五月丁香| 欧美激情-区二区三区| 激情久久久| 色婷婷亚洲| 99激情| 色婷婷91激情小说| 天天上天天爽| 色五月大香蕉| 色9月| 99久久玖玖| 香蕉久久国产AV一区二区| 91九色精品| 色在线视频网2025| 中国女人做爰A片| 色五月久久成人婷婷| 天天插天天爱| 综合激情五月丁香| 青青草tp| 激情五月综合第一页| 五月婷av| 国产精品成av人在线视午夜片| 成人久久天天x资源站| 九九热视频这里只有精品| 九九99九九99| 九九九九综合| 日韩欧美一道四区中文字幕| 国产综合婷婷|