亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

跨數(shù)據(jù)庫SQL優(yōu)化:四大引擎的索引、執(zhí)行計(jì)劃與等待事件實(shí)戰(zhàn)指南

跨數(shù)據(jù)庫SQL優(yōu)化:四大引擎的索引、執(zhí)行計(jì)劃與等待事件實(shí)戰(zhàn)指南 把Oracle上跑得順滑的SQL原封不動(dòng)扔到SQL Server里結(jié)果慢了十幾倍客戶當(dāng)場質(zhì)疑你是不是換了一臺渣服務(wù)器——這種事我經(jīng)歷過不止一次。換成MySQL表現(xiàn)可能又不一樣。鍋從來不在“機(jī)器性能”而在于每個(gè)數(shù)據(jù)庫引擎各自那套存儲模型、統(tǒng)計(jì)信息、鎖機(jī)制和優(yōu)化器邏輯。本文把主流引擎MySQL InnoDB、SQL Server、Oracle、PostgreSQL的SQL優(yōu)化方案放到同一個(gè)舞臺上拆開講核心目的只有一個(gè)讓你搞清楚同一類SQL在不同引擎里為什么會有截然不同的命運(yùn)以及當(dāng)慢SQL報(bào)出來時(shí)該怎么按引擎對癥下藥。內(nèi)容會涉及索引設(shè)計(jì)、執(zhí)行計(jì)劃、等待事件、深翻頁、去重、窗口函數(shù)、并行度這些高頻場景適合正在做跨數(shù)據(jù)庫開發(fā)的工程師、剛接手?jǐn)?shù)據(jù)庫優(yōu)化任務(wù)的DBA以及那些被“換個(gè)庫就翻車”折磨過的人。1. 為什么同一句SQL在不同引擎里表現(xiàn)天差地別——優(yōu)化思路的起點(diǎn)1.1 存儲模型決定數(shù)據(jù)“怎么被找到”很多人習(xí)慣把“優(yōu)化SQL”當(dāng)成一套萬能公式加索引、避免SELECT *、減少子查詢。這些確實(shí)通用但它們只是戰(zhàn)術(shù)真正決定上限的是數(shù)據(jù)庫底層怎么存數(shù)據(jù)。MySQL InnoDB是典型的聚簇索引表。整張表就是一棵B樹葉子節(jié)點(diǎn)直接放行數(shù)據(jù)。主鍵就是聚簇索引二級索引的葉子節(jié)點(diǎn)存儲的是主鍵值。所以走主鍵查詢等于直接定位走二級索引要先查一遍索引拿到主鍵再回聚簇索引取完整數(shù)據(jù)這就是“回表”。設(shè)計(jì)主鍵時(shí)如果用了UUID之類的隨機(jī)值插入時(shí)會發(fā)生大量頁分裂和日志寫入放大這也是為什么InnoDB從業(yè)務(wù)角度都建議用自增主鍵。SQL Server不一樣。它可以建堆表也可以為表指定聚簇索引。堆表的數(shù)據(jù)頁之間沒有邏輯順序通過IAM頁追蹤聚簇索引表則按聚簇鍵物理排序。在頻繁插入且聚簇鍵變化大的場景堆表反而能減少頁分裂但大多數(shù)生產(chǎn)場景下合理的聚簇索引對范圍查詢幫助極大。這里沒有絕對的“誰更好”只有“你的查詢模式更適合哪種”。Oracle和PostgreSQL都是堆表結(jié)構(gòu)。Oracle通過ROWID直接定位物理行索引葉子節(jié)點(diǎn)存ROWIDPostgreSQL的索引存的是行指針并且靠可見性映射Visibility Map來加速M(fèi)VCC判斷。堆表的回表代價(jià)并不一定比聚簇索引高因?yàn)閿?shù)據(jù)頁可能已經(jīng)在Buffer Pool里。但這也意味著“回表”這件事在每個(gè)引擎里的成本模型是完全不同的。你拿MySQL的經(jīng)驗(yàn)去判斷Oracle的回表開銷從一開始就錯(cuò)了。1.2 優(yōu)化器邏輯與統(tǒng)計(jì)信息的“個(gè)性化差異”SQL優(yōu)化不能只談存儲執(zhí)行計(jì)劃由優(yōu)化器生成而優(yōu)化器吃的是統(tǒng)計(jì)信息。MySQL 8.0的優(yōu)化器比老版本強(qiáng)了不少支持直方圖但整體對復(fù)合索引、OR條件的處理仍然偏保守。經(jīng)典翻車場景一張表兩個(gè)單列索引WHERE a 1 OR b 2MySQL經(jīng)常直接放棄索引合并做全表掃描而Oracle通常能走INDEX合并或BITMAP轉(zhuǎn)換。這跟引擎能力有關(guān)不是你的SQL寫錯(cuò)了。SQL Server的CBO非常成熟尤其是基數(shù)估計(jì)Cardinality Estimation2014年之后的默認(rèn)CE模型對“多列獨(dú)立謂詞”的預(yù)估更接近真實(shí)分布。但它也有自己的坑參數(shù)嗅探。第一次執(zhí)行的參數(shù)值決定了執(zhí)行計(jì)劃后面換個(gè)參數(shù)值可能讓計(jì)劃變得極差。Oracle的CBO是目前最復(fù)雜的優(yōu)化器之一支持自適應(yīng)計(jì)劃、統(tǒng)計(jì)信息自動(dòng)收集但綁定變量窺視、分區(qū)裁剪失效這些老問題仍然存在。PostgreSQL則給用戶留了很大的自定義空間seq_page_cost、random_page_cost這些成本參數(shù)可以直接影響優(yōu)化器選擇。這些差異告訴我們一個(gè)核心道理跨引擎優(yōu)化第一步永遠(yuǎn)是重新評估執(zhí)行計(jì)劃而不是把上一個(gè)庫的“成功經(jīng)驗(yàn)”直接搬過來。1.3 “優(yōu)化”的本質(zhì)不是抄方案而是拆場景我接觸過的很多團(tuán)隊(duì)把SQL優(yōu)化做成了“經(jīng)驗(yàn)搬運(yùn)”MySQL慢就把Oracle那套調(diào)優(yōu)寶典拿來試試不通就怪?jǐn)?shù)據(jù)庫。實(shí)際上一個(gè)SQL慢下來你第一件要做的事不是改語句而是分清楚瓶頸類型IO密集型全表掃描、回表過多、排序落盤、日志寫入慢CPU密集型大量表達(dá)式計(jì)算、嵌套循環(huán)在超大集上運(yùn)行、并行度過高導(dǎo)致爭用鎖/等待密集型鎖塊、鎖升級、死鎖重試、日志同步等待這三個(gè)類型的優(yōu)化手段幾乎不重疊。IO瓶頸看索引和執(zhí)行計(jì)劃CPU瓶頸看表達(dá)式和算子等待瓶頸要看等待事件和并發(fā)配置。接下來幾節(jié)我會把索引、慢SQL定位、實(shí)戰(zhàn)場景和配置陷阱逐一展開。2. 索引設(shè)計(jì)的分水嶺從B樹到列存各引擎的索引脾氣2.1 主鍵與聚簇索引InnoDB的“必選”與SQL Server的“可選”索引設(shè)計(jì)是SQL優(yōu)化里最容易被低估的一環(huán)。很多人以為“建了索引就快了”但索引建錯(cuò)了效果可能比不建還差。MySQL InnoDB里聚簇索引是躲不掉的沒有主鍵時(shí)引擎會挑第一個(gè)非空唯一索引實(shí)在沒有就生成一個(gè)隱藏的rowid列。這意味著你在MySQL里設(shè)計(jì)主鍵本質(zhì)上是在設(shè)計(jì)整張表的物理存儲形態(tài)。隨機(jī)主鍵會導(dǎo)致頁分裂讓插入性能斷崖式下跌過長的主鍵比如字符串型業(yè)務(wù)單號會讓每個(gè)二級索引都變得臃腫因?yàn)槎壦饕~子節(jié)點(diǎn)要存主鍵值。SQL Server給了你選擇權(quán)。堆表和聚簇索引表各有適用場景如果數(shù)據(jù)是流水型追加寫入范圍查詢少、既沒有主鍵的排序需求堆表可能更合適但如果存在大量區(qū)間掃描或需要按特定順序輸出聚簇索引能把隨機(jī)IO變成順序IO。SQL Server還要關(guān)注填充因子Fill Factor和碎片率。索引碎片率超過30%時(shí)即便SQL走對了索引IO也可能高得離譜。運(yùn)維周期性重建索引這件事在MySQL里不常見但在SQL Server里是常規(guī)操作。Oracle和PostgreSQL的主鍵索引只是普通索引不承擔(dān)數(shù)據(jù)存儲職責(zé)。它們的表數(shù)據(jù)按插入順序放在堆里索引負(fù)責(zé)指向行的物理位置。這種架構(gòu)讓“插入”更輕量但也要注意堆表上頻繁更新會使行遷移舊位置留下轉(zhuǎn)發(fā)指針查詢會多一次IO。PostgreSQL的UPDATE會生成新版本行如果表膨脹嚴(yán)重索引掃描會掃描大量死元組導(dǎo)致查詢速度越來越慢——所以autovacuum的配置對PostgreSQL來說不是“可選優(yōu)化”而是“保命設(shè)置”。2.2 覆蓋索引、索引下推與搜索條件寫法索引設(shè)計(jì)的高級玩法是讓索引“覆蓋”查詢避免回表。每個(gè)引擎都支持覆蓋索引但觸發(fā)條件不一樣。MySQL里如果SELECT的字段全部在二級索引中優(yōu)化器會用Index Only ScanExtra列顯示Using index回表完全省掉。SQL Server里叫“覆蓋索引Covering Index”常用INCLUDE語句把不需要參與排序、但需要輸出的列掛到索引葉子上。Oracle支持在索引里額外放一些列即“Include Column”讓索引能覆蓋更多查詢。PostgreSQL同樣支持INCLUDE。還有一種被忽略的能力是索引下推。MySQL的ICPIndex Condition Pushdown會在索引遍歷階段就過濾部分條件減少回表行數(shù)Extra列出現(xiàn)Using index condition就說明下推生效。Oracle對復(fù)合索引的“謂詞推入”也有類似行為但要看執(zhí)行計(jì)劃的Predicate信息。寫SQL時(shí)把條件能寫成區(qū)間就寫成區(qū)間能避免函數(shù)包裹列就避免函數(shù)包裹列。這個(gè)原則四個(gè)引擎都適用但MySQL的感知最強(qiáng)烈因?yàn)樗膬?yōu)化器沒有Oracle那么“會兜底”。2.3 列存索引與分析型查詢另一個(gè)維度的“優(yōu)化”說到索引不能不提SQL Server 2016之后主推的列存儲索引Columnstore。它把同一列的數(shù)據(jù)連續(xù)存放配合批模式執(zhí)行和頁壓縮分析類聚合查詢的IO量可以比行存少一個(gè)數(shù)量級。同樣的思路也是ClickHouse、Spark SQL這類分析引擎提速的核心。從OLTP角度做優(yōu)化時(shí)我們的思維是“減少行的訪問”而分析型場景的思維是“減少列的訪問”。如果你手上有一批報(bào)表SQL在SQL Server里給大表加一個(gè)列存索引通常比瘋狂優(yōu)化SQL寫法有效得多。Oracle也有列存選項(xiàng)Exadata上的Cell多級緩存、In-Memory列式格式MySQL則主要靠第三方引擎補(bǔ)位。這個(gè)例子最能說明“不同數(shù)據(jù)庫引擎優(yōu)化方案”的差異方案不是靠某一條金句總結(jié)出來的而是靠理解引擎各自的強(qiáng)項(xiàng)。3. 慢SQL定位三板斧執(zhí)行計(jì)劃、統(tǒng)計(jì)信息與等待事件3.1 執(zhí)行計(jì)劃怎么看先看實(shí)際行數(shù)與估算行數(shù)的偏差慢SQL排查很多人第一反應(yīng)是看SQL文本試圖“用眼睛優(yōu)化”。但真正專業(yè)的第一動(dòng)作永遠(yuǎn)是拽出執(zhí)行計(jì)劃。四個(gè)引擎看計(jì)劃的方式完全不同你至少要會用自己手上的那個(gè)MySQLEXPLAIN或者EXPLAIN ANALYZE查看實(shí)際執(zhí)行時(shí)間與行數(shù)。重點(diǎn)看typeALL代表全表掃描range代表索引范圍掃描ref代表普通等值匹配、rows預(yù)估值、Extra里的Using filesort、Using temporary。SQL ServerSET STATISTICS IO ON和SET STATISTICS TIME ON可以輸出邏輯讀和耗時(shí)更直觀的是在SSMS里開啟“包含實(shí)際執(zhí)行計(jì)劃”。重點(diǎn)看每個(gè)操作符的Estimated vs Actual Row數(shù)、IO統(tǒng)計(jì)。OracleEXPLAIN PLAN FOR SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR)如果要看實(shí)際行數(shù)需要設(shè)置STATISTICS_LEVELALL然后再執(zhí)行這樣才能看到A-Rows和E-Rows的對比。PostgreSQLEXPLAIN (ANALYZE, BUFFERS)最實(shí)用能同時(shí)看到實(shí)際行數(shù)、啟動(dòng)成本和Buffer讀寫信息。我看執(zhí)行計(jì)劃有一個(gè)固定習(xí)慣先對比操作符的“估算行數(shù)”和“實(shí)際行數(shù)”。如果兩者偏差巨大比如估算1萬行、實(shí)際跑了100萬行那十有八九是統(tǒng)計(jì)信息過期。這時(shí)候再怎么改SQL都是治標(biāo)不治本。3.2 統(tǒng)計(jì)信息過期如何坑掉一條好SQL統(tǒng)計(jì)信息的采集機(jī)制在四個(gè)引擎里各有套路但“過期”帶來的問題都一樣災(zāi)難性。舉個(gè)我排查過的真實(shí)案例一張?jiān)吕塾?jì)訂單表平時(shí)1000萬行月底批量清洗后只剩10萬行。優(yōu)化器不知道表已經(jīng)“瘦身”仍然按1000萬行估算給一個(gè)十幾行的結(jié)果集選了哈希連接加全表掃描接口響應(yīng)從20毫秒暴漲到5秒。引擎的自動(dòng)更新機(jī)制并不總是及時(shí)。MySQL的自動(dòng)統(tǒng)計(jì)更新基于變化行數(shù)超過表大小的閾值指數(shù)級變化時(shí)通常能觸發(fā)但如果你是用大批量DELETE清數(shù)據(jù)后馬上查還是建議手動(dòng)執(zhí)行ANALYZE TABLE。SQL Server的自動(dòng)更新閾值在舊版本里也是基于百分比頻繁小量更新時(shí)統(tǒng)計(jì)信息可能長期滯后定期維護(hù)計(jì)劃里加上UPDATE STATISTICS是DBA的基本功。Oracle的自動(dòng)統(tǒng)計(jì)任務(wù)一般在夜間窗口白天大批量導(dǎo)入數(shù)據(jù)后也需要手動(dòng)DBMS_STATS.GATHER_TABLE_STATS。PostgreSQL的autovacuum在默認(rèn)配置下對大多數(shù)場景夠用但高頻UPDATE的短表仍然容易統(tǒng)計(jì)失真。排查慢SQL時(shí)我建議把“刷新統(tǒng)計(jì)信息”放在前面做掉——成本低、見效快還不會像改SQL那樣引入新風(fēng)險(xiǎn)。做完再重新抓執(zhí)行計(jì)劃往往問題就消失了。3.3 等待事件SQL Server的writelog與Oracle的log file sync有些慢SQL執(zhí)行計(jì)劃完美索引全都用上了但就是快不起來。這時(shí)候要看的不是執(zhí)行計(jì)劃而是時(shí)間花在哪里了。SQL Server里有一個(gè)很常見的等待類型WRITELOG。它表示會話在提交事務(wù)時(shí)需要等待日志記錄被寫入磁盤。凡是高頻小事務(wù)場景——比如循環(huán)逐行INSERT、頻繁UPDATE單行——都能看到大量WRITELOG等待。根因通常是磁盤的fsync延遲太高HDD、共享云盤、日志文件與數(shù)據(jù)文件混用或者日志文件初始化太小導(dǎo)致頻繁自動(dòng)增長。優(yōu)化辦法把事務(wù)日志文件放到低延遲獨(dú)立磁盤、合并小事務(wù)為批量提交、合理預(yù)分配日志文件大小。別小看這個(gè)等待它經(jīng)常是“CPU不忙、磁盤不忙、但接口就是慢”的元兇。Oracle里對應(yīng)的等待是log file sync和log file parallel write背后邏輯高度相似提交事務(wù)時(shí)LGWR進(jìn)程要確保日志緩沖寫入聯(lián)機(jī)日志文件。排查方法比SQL Server稍微復(fù)雜可以從AWR報(bào)告的Top 5 Timed Events入手確認(rèn)Wait Event是不是log file sync再檢查redo log所在磁盤IO能力。MySQL的對應(yīng)參數(shù)是innodb_flush_log_at_trx_commit1時(shí)的每次提交刷盤如果業(yè)務(wù)允許改成2會有數(shù)量級的性能提升但代價(jià)是丟最多1秒的事務(wù)日志。這個(gè)取舍沒有標(biāo)準(zhǔn)答案要看業(yè)務(wù)對數(shù)據(jù)安全的要求。等待事件分析的價(jià)值在于它幫你把“SQL慢”拆成了“SQL自己慢”和“環(huán)境讓它慢”。前者靠索引和執(zhí)行計(jì)劃解決后者靠配置和磁盤布局解決。很多DBA只盯著SQL文本忽略等待類型這是排查慢SQL最容易走的彎路。4. 實(shí)戰(zhàn)拆解去重、分頁、窗口函數(shù)在四大引擎中的優(yōu)化做法4.1 去重DISTINCT、GROUP BY與ROW_NUMBER的代價(jià)差異“去重”是搜索引擎里最常見的SQL需求但不同引擎對去重的執(zhí)行方式完全不同。很多人以為DISTINCT就是簡單的“選不同”實(shí)際它的代價(jià)往往被嚴(yán)重低估。DISTINCT在四個(gè)引擎里核心執(zhí)行方式無非兩種哈希去重或排序去重。沒有索引時(shí)MySQL可能使用臨時(shí)表SQL Server可能走Sort算子并觸發(fā)tempdb溢出Oracle默認(rèn)傾向HASH UNIQUEPostgreSQL在work_mem不足時(shí)會把HashAgg退化成SortGroupAggregate。實(shí)操中我遇到過最坑的寫法是先JOIN再DISTINCT。用訂單表和訂單明細(xì)表關(guān)聯(lián)最終結(jié)果希望得到“有哪些客戶下單”第一版SQL往往寫成SELECT DISTINCT c.customer_id ... FROM customers c JOIN orders o ON ...。這種寫法會把明細(xì)表放大后才去重中間結(jié)果驚人。正確的做法是改成EXISTS子查詢SELECT customer_id FROM customers c WHERE EXISTS (SELECT 1 FROM orders o WHERE o.customer_id c.customer_id)。執(zhí)行計(jì)劃直接從HASH JOIN變成SEMI JOIN行數(shù)少了一個(gè)量級。不同去重手段的選擇也要看業(yè)務(wù)語義需求推薦方式原因簡單取唯一值SELECT DISTINCT col引擎有專門算子寫法直觀按某字段分組取其他字段GROUP BY 聚合函數(shù)不依賴窗口函數(shù)執(zhí)行計(jì)劃更清晰每組內(nèi)取最新一條/前N條ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)窗口函數(shù)語義最強(qiáng)SQL Server 2012/MySQL 8.0/Oracle/PostgreSQL均支持注意一個(gè)細(xì)節(jié)DISTINCT對NULL的處理是“去重后只保留一個(gè)NULL”GROUP BY會把NULL當(dāng)成一個(gè)分組常規(guī)業(yè)務(wù)上兩者等價(jià)但如果你寫的是多列去重務(wù)必確認(rèn)NULL列的處理是否符合預(yù)期這一塊容易出隱蔽的語義Bug。4.2 深翻頁OFFSET不慢慢的是丟棄分頁是所有業(yè)務(wù)系統(tǒng)躲不開的SQL場景。淺分頁沒壓力深翻頁才是真正的性能殺手。四個(gè)引擎都支持LIMIT/OFFSET或等價(jià)語法但原理一樣先掃描出從第1行到第(offsetlimit)行的全部數(shù)據(jù)丟棄前面的offset行返回最后limit行。頁數(shù)越深掃描和丟棄的行越多。MySQL的經(jīng)典寫法是LIMIT 1000000, 20它會掃到第100萬行再丟掉SQL Server用OFFSET 1000000 ROWS FETCH NEXT 20 ROWS ONLY底層也是排序后跳過Oracle老版本用ROWNUM嵌套子查詢12c以后有FETCH FIRST但深分頁的本質(zhì)沒有變化。PostgreSQL的LIMIT/OFFSET同樣避免不了這個(gè)問題。解決深翻頁最有效的方案是Keyset Pagination也叫游標(biāo)分頁。不用OFFSET而是帶一個(gè)排序鍵的WHERE條件-- 傳統(tǒng)深翻頁慢 SELECT * FROM orders ORDER BY id OFFSET 1000000 ROWS FETCH NEXT 20 ROWS ONLY; -- Keyset Pagination快 SELECT * FROM orders WHERE id 1000000 ORDER BY id FETCH FIRST 20 ROWS ONLY;Keyset方式的執(zhí)行計(jì)劃是典型的索引范圍掃描理論上可以做到翻到第N頁都只有20行的開銷。前提是排序鍵絕對唯一且穩(wěn)定。如果業(yè)務(wù)排序需要多字段比如ORDER BY created_at DESC, id DESCWHERE條件也要按同樣順序帶上游標(biāo)值。字符串排序、日期排序同樣適用。實(shí)測數(shù)據(jù)最直觀一張200萬行訂單表傳統(tǒng)OFFSET翻到第1000頁每頁20行耗時(shí)約為280毫秒改為Keyset后穩(wěn)定在0.5毫秒左右。所以如果你正在負(fù)責(zé)一個(gè)有深翻頁需求的接口建議趁早改造不要等用戶報(bào)告“越翻越慢”。4.3 窗口函數(shù)與并行分析需求在不同引擎里的落地姿勢窗口函數(shù)是SQL優(yōu)化工具箱里的高頻武器。SQL Server從2012版本開始支持ROW_NUMBER、RANK、DENSE_RANK、SUM() OVER()等再早只能靠自連接實(shí)現(xiàn)MySQL從8.0才開始支持之前只能用變量模擬Oracle和PostgreSQL自帶完整的窗口函數(shù)支持它們的執(zhí)行器對這一類算子優(yōu)化也更成熟。舉一個(gè)十分常見的例子“查每個(gè)客戶最近一筆訂單”。用窗口函數(shù)可以寫成SELECT customer_id, order_id, order_date FROM ( SELECT customer_id, order_id, order_date, ROW_NUMBER() OVER(PARTITION BY customer_id ORDER BY order_date DESC) AS rn FROM orders ) t WHERE rn 1;這段SQL在四個(gè)引擎里都能跑但注意如果orders表非常大窗口函數(shù)的PARTITION BYORDER BY需要一次全局排序。優(yōu)化點(diǎn)是建立復(fù)合索引(customer_id, order_date DESC)讓窗口排序直接走索引有序掃描避免顯式排序。MySQL 8.0對索引有序性的依賴最強(qiáng)索引建立不對時(shí)執(zhí)行計(jì)劃會出現(xiàn)Using filesort數(shù)據(jù)量大時(shí)性能差距能達(dá)幾十倍。SQL Server則可能更依賴內(nèi)存里的Sort算子配合列存索引時(shí)有時(shí)能獲得更激進(jìn)的批處理加速。再說并行SQL優(yōu)化。Oracle的并行DML、并行查詢能力很強(qiáng)可以在SQL上加PARALLEL Hint讓一個(gè)復(fù)雜聚合查詢同時(shí)跑多個(gè)并行服務(wù)進(jìn)程SQL Server用MAXDOP設(shè)置并行度PostgreSQL從9.6開始引入了并行順序掃描和并行聚合但并行度受限于planning參數(shù)。MySQL至今沒有原生的“一條SQL自動(dòng)并行”能力一個(gè)高成本查詢只能單線程執(zhí)行。這個(gè)差異意味著同樣的分析SQL在Oracle和PG上可以通過調(diào)整并行度實(shí)現(xiàn)質(zhì)的飛躍在MySQL上則必須靠優(yōu)化語句本身、建物化視圖或引入分析引擎來解決問題??缫鎯?yōu)化時(shí)必須先認(rèn)清有些特性是這個(gè)引擎天生沒有的與其死磕不如改變架構(gòu)方案。5. 常見陷阱與規(guī)避從SQL寫法到引擎配置的教訓(xùn)5.1 參數(shù)化與SQL注入安全底線也是性能底線搜索引擎熱詞榜里永遠(yuǎn)有SQL注入這不是偶然。很多運(yùn)維和開發(fā)把“SQL注入防護(hù)”當(dāng)成純安全議題實(shí)際上它與SQL優(yōu)化是同一件事。參數(shù)化查詢Prepared Statement除了能防注入還能提升執(zhí)行計(jì)劃復(fù)用率。以SQL Server為例如果業(yè)務(wù)代碼每次都拼接一個(gè)新的SQL文本提交每次都需要硬解析生成新的執(zhí)行計(jì)劃CPU壓力升高、計(jì)劃緩存命中率下降改成參數(shù)化寫法后同一個(gè)計(jì)劃模板可以被反復(fù)復(fù)用。Oracle的綁定變量、MySQL的PREPARE、PostgreSQL的PREPARE也都是一樣的邏輯。反過來說SQL注入的根因就是非參數(shù)化的字符串拼接?;ヂ?lián)網(wǎng)上流傳的所謂“繞過手法”本質(zhì)上都是利用拼接邏輯的缺陷做字符串逃逸。修復(fù)方式?jīng)]有捷徑全部改成參數(shù)化查詢數(shù)據(jù)庫賬號按庫表權(quán)限最小化應(yīng)用層再做一層白名單校驗(yàn)。參數(shù)化一上注入漏洞攻擊面立刻歸零計(jì)劃緩存利用率同步提升——一次改造安全性和性能雙收益。5.2 隱式轉(zhuǎn)換與函數(shù)包裹讓索引瞬間失效的寫法這是跨引擎優(yōu)化里最統(tǒng)一的一條經(jīng)驗(yàn)在索引列上做函數(shù)運(yùn)算或隱式類型轉(zhuǎn)換絕大多數(shù)情況下會讓索引失效。MySQL里最常見的翻車現(xiàn)場是字段類型是VARCHARSQL寫成了WHERE phone 13800138000MySQL會先把字段轉(zhuǎn)成數(shù)值再比較索引直接報(bào)廢。解決辦法就是讓參數(shù)類型與字段類型保持一致寫成13800138000字符串。SQL Server也有類似行為字符列與數(shù)值常量比較時(shí)常會觸發(fā)隱式轉(zhuǎn)換執(zhí)行計(jì)劃里會出現(xiàn)CONVERT_IMPLICIT掃描行數(shù)瞬間暴增。日期函數(shù)包裹列是另一個(gè)通病。WHERE DATE(create_time) 2024-01-01這種寫法會把create_time列塞進(jìn)函數(shù)里即便該列有索引也掃不了。改成WHERE create_time 2024-01-01 00:00:00 AND create_time 2024-01-02 00:00:00既能走索引邏輯上也等價(jià)。引擎差異在這里也有體現(xiàn)。Oracle里你還能用函數(shù)索引如TO_CHAR(create_time, YYYY-MM-DD)建索引兜底MySQL 8.0也支持函數(shù)索引SQL Server可以通過計(jì)算列加索引實(shí)現(xiàn)類似效果。但我的習(xí)慣仍然是優(yōu)先改SQL寫法而不是為不合理的寫法建特殊索引。因?yàn)楹瘮?shù)索引對寫入有額外維護(hù)成本而且應(yīng)用一旦換寫法索引就浪費(fèi)了。5.3 系統(tǒng)性“偽慢SQL”監(jiān)聽、連接池與臨時(shí)文件最后一類慢SQL其實(shí)SQL本身是無辜的。比如Oracle報(bào)錯(cuò)ORA-12518“監(jiān)聽程序無法分發(fā)”這個(gè)錯(cuò)誤的本質(zhì)往往不是SQL性能問題而是監(jiān)聽進(jìn)程無法fork新的服務(wù)器進(jìn)程——常見原因是processes參數(shù)打滿、操作系統(tǒng)進(jìn)程數(shù)限制、SGA/PGA內(nèi)存不足。排查方向是調(diào)大processes、sessions參數(shù)限制應(yīng)用的空閑連接數(shù)檢查系統(tǒng)內(nèi)存。如果你只盯著SQL調(diào)優(yōu)永遠(yuǎn)看不到問題。連接池配置同理。很多接口慢不是SQL慢而是連接池里線程都在排隊(duì)等連接。HikariCP、Druid這類連接池的maximumPoolSize設(shè)置過小高并發(fā)時(shí)請求全部阻塞在獲取連接階段設(shè)置過大數(shù)據(jù)庫端又會資源爭用。我在實(shí)際優(yōu)化項(xiàng)目里見過接口P99從800毫秒降到80毫秒的案例改動(dòng)僅僅是調(diào)整連接池大小和空閑超時(shí)SQL一行沒改。臨時(shí)文件和日志文件也經(jīng)常被忽視。SQL Server的tempdb如果默認(rèn)配置且與其他庫共用硬盤排序和哈希連接一旦落盤就會拖慢所有查詢MySQL的tmp_table_size過小時(shí)GROUP BY會轉(zhuǎn)到磁盤臨時(shí)表PostgreSQL的work_mem直接決定Sort/Hash操作是走內(nèi)存還是走磁盤默認(rèn)4MB對一個(gè)稍大排序來說小得離譜。所以當(dāng)你面對一條“查了半小時(shí)還不出來”的SQL排查順序我建議是統(tǒng)計(jì)信息→等待事件→執(zhí)行計(jì)劃→SQL改寫→索引調(diào)整→系統(tǒng)配置。前面幾步可以快速排除環(huán)境因素后面幾步才是真正的SQL優(yōu)化。順序反了很容易在一個(gè)錯(cuò)誤的方向上耗費(fèi)半天。做數(shù)據(jù)庫優(yōu)化這些年我最深的體會是優(yōu)化不是背答案而是理解每個(gè)引擎是怎么存、怎么找、怎么鎖的。同一套經(jīng)驗(yàn)換一個(gè)數(shù)據(jù)庫往往就失真所以每次跨庫排查我都默認(rèn)自己是個(gè)新手從頭看執(zhí)行計(jì)劃和等待事件。很多團(tuán)隊(duì)迷信所謂的“大廠調(diào)優(yōu)參數(shù)”拿一套配置到處套結(jié)果連基礎(chǔ)的數(shù)據(jù)文件布局都沒看。老老實(shí)實(shí)按“統(tǒng)計(jì)信息是否新鮮、等待事件是否異常、執(zhí)行計(jì)劃是否合理、索引是否被有效使用”這個(gè)順序走一遍多數(shù)慢SQL問題都能在半小時(shí)內(nèi)定位。最后再分享一個(gè)實(shí)戰(zhàn)習(xí)慣每次只改一個(gè)變量。改完SQL跑一次驗(yàn)證建完索引再看一遍執(zhí)行計(jì)劃。多個(gè)優(yōu)化點(diǎn)一起上出了問題你根本不知道是誰的鍋。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久激情网| 最新的亚洲无吗| 69人妻精品一区二区绯色| 国产精品熟女一区二区三区| 亚洲人码13| 亚洲天堂人妻一区二区| 久久精品国产亚洲AV嘿嘿| 999国产精品999久久久久久| 激情四射五月天| 91无摭挡| 在线天堂999| 欧美系列在线一区二区| 久久精品国产亚洲妲己影视| 干B网| 99re这里只有精品3| 国产亚洲精品农村妇女| 人人操我人人干| 无码二级三级| 日韩精品一区,二区 九九...老司机| 99精品免费| 久久久亚洲Av| 国产精品久久久久久亚洲色欲| 日日骚av| 大香蕉日韩| 亚洲第二页| 中文字幕人乱码中文字的预防方法 | 4141514逼喷水三级片| 色综合久久88色综合久久天天| 国产精品操| 亚洲日韩97| 丰满少妇高潮无码| 国产丸一视频| nuu12国产麻豆精品| 日韩欧美丝袜诱惑| 亚洲蜜臀视频精品久久| 色www精品视频在线观看| 大色综合| 国产9区| 国产久久久久久| 亚洲骚男同com| 日本黄色天堂| 欧美97se| 伊人91| 色噜噜人妻av中文字幕| 国产精品另类一区大香蕉| 欧美熟女丝袜| 99999国产| 思思久热在线精品66| 欧美日韩97| 黑人综合网| 无码精品久久久久久亚洲| 久久久人妻| 91天天| 九九九精品成人免费视频小说| 久久神马| 中国大陆国产高清AⅤ毛片| www.yeyecao| 免费作爱一级视频| 国产亚洲精品自在线亚洲情侣| 欧美三级中文字幕hd| www.色婷婷色综合| 97干天天| 日躁天天爽爽| 欧美日韩操逼动图| 性欧美另类高清| 七月婷婷综合| ,成人免费啪啪视频| 少妇人妻太紧太深av| 3P乱轮视频| 午夜天堂精品久久久久91| 欧美日不卡| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 秋霞网—男女啪啪亚洲免费体验区 | 91狠狠综合久久久久久| 91丝袜美女| 亚洲色综网| 色噜噜国产精品视频一区二区| 国产亚洲色婷婷久久99精品91 - 百度| 美女裸体无遮挡永久免费观看网站| 18禁在线视频| 99热这里只有精品9| 五月天色电影| 日韩无码精品综合久久| 亚洲欧美一区二区三区在钱蜜桃 | xxxx网站亚洲精品| 女同性恋一区二区三区精品视频| 蜜臀在线网站| 乱伦a片视频| 色妺妺在线视频| Julia Annxxxxx| 欧美性夜| 国产九九九九九九九九| 亚州综合AⅤ| 综合一区中亚洲国产成人综合精品| 国产欧美伊人| AV女资源| 精品一区二区亚洲国产| 91挑色欧美| 唯美清纯 妖精视频| 午夜福利在线合集| 亚洲五区熟女| 欧美国产精品| 草蕉影视亚洲无码| 欧美成人免费在线观看| 中文高清一区二区的| 欧美色图97| 久热精品在线国产| 亚洲涩涩| 精品亚洲黄色片 国产精品导航一区二区 | 91色伦| 超碰97人妻免费在线| 九九性爱网| 天天看高清麻豆| 91精品无码久久久久久久| 九九在线视频| 91狠狠综合久久| 久久精品国产72国产精品福利 | 欧美亚洲国产91在线| 丁香五月电影| 熟妇熟女一区二区三区| 天天综和| 日本十八禁免费看污网站| 亚洲男人电影天堂| 日本在线不卡123| 96久久久| 激情图片亚洲色图| 黄页视频网站野外| 999色欧美中文字幕| 女人喷水视频在线观看| 国产丝袜高跟美女av免费观看| 亚洲欧美日韩免费电影| 大香蕉伊然在亚洲91| 91在线视频免费播放| 国产亚洲精品美女| 强奸乱伦大香蕉网| 国产精品久久久久久久久久久久| 欧美 亚洲 制服 精品| 亚洲欧洲激情卡通另类文学四射小说网站 | 日本 免费 一区二区三区 久久香蕉| 青青色在线观看| 久操B网| 国产一级高清免费观看| 97bbn| 老熟女乱子伦中文字幕一区二区| 人妖欧美一区二区| 国产精品网站免费| 亚洲aV无码成人在线观看| 亚洲激情欧美色图| 韩国轻伦国内自拍一区| 色情乱伦AV| 蜜桃天美传媒AV一区二区三区| 久久婷婷色| 人妻天堂综合网| 亚洲欧洲成人在线电影| 男人的天堂久久狠| 亚州精人品大香蕉| 人妻系列无码专区中文有码| 色图综合| 97一本大道亚洲一区| 国产一区二区欧美日本| 亚洲天堂久久久久久粉红视频| 英伦大奶子熟妇吊带| 久久国产免费激情视频| 东京热男人的天堂| 欧美小说区视频区| 粉嫩AV一区夜夜嗨| 久久久久久人妻| 在线亚洲 欧美 日本专区| 日韩精品影视| 亚洲欧美日韩有码| 六月丁香啪啪啪| 欧美偷拍区| 久久伊人东京热| 白丝1区2区3区| 美中日韩无码| 亚洲国产ⅴ高清在线观看| 日日爽熟女| 日韩传媒在线| http://qxhbdz.com| 国产操逼逼网| 小视频国产| 97视频播放| 西西美女视频网| 九九亚洲| 少妇蹲下买菜露大唇0| 九九热男人天堂| 美女极品一区二区三区| 人人操人人操人人操人人操人人操人人人11.CM | 最新9久久久9免费视频| 级品肉射| 99只有精品| 日韩97超碰中文字幕| Blackedraw视频一区二区| 尤物网站91| 变态另类专区| 欧美女同在线| 国产精品97超碰| 大香蕉在线视频重口味毛片在线| 婷婷激情一区二区三区俺也去| 五月婷婷基地| 色哟哟的毛片| 啊啊啊啊啊操我视频| 久久女婷| 欧美在线视频99| 熟女被操视频网址| 九九性爱网| 亚州AV无码国产精品| 自拍视频一区在线观看| 久久精品店| 久久夜黄色无码A级大片| 久久五月天婷婷丁香中文字幕| 黄片视频观看| 东北丰满熟女国产一区| 激情久久av一区av二区av| 91色综合色| 青青伊人久久| 国产AV线| 极品销魂美女一区二区| AAAA欧美日韩| αⅴ天堂| 天堂8在线新版官网| 可以在线观看AV的网站| 九九aV| 熟女性视频| 亚洲情色第一页| 91在线免费观看处女| 天天综和| 蜜臀一二三区| 亚洲婷婷综合网| 久热影视| 91超级碰碰碰| 欧美 中文字幕 一区| 中文字幕乱碼在线| 欧美日韩天堂| 骚货操死你| 96精品久久久久久久久| 91快色色色色色| 九九热AV| 国产视频小说| 啪啪啪亚欧美视频| 日韩无码三级影院| 亚洲黑丝在线| 青青草色插素人| 久久久999国产| 粉嫩av平台| 大香蕉一线视频| 成人五月香网在线| 天天操天天日天天干| 夜夜欢天天干| 欧美在线色| 可乐操亚洲蜜911| 熟女探花啪啪| 99热9| 97色色,97综合| 东北女人高潮视频| 国产三级多多影院2022国产AA一级毛片无码| 一区二区三区精品久久| 熟女欧美日韩综合婷婷| 久久久精品网| 五月天激情国产综合婷婷婷| 97视频在线视频| 欧美日韩国产成人高清| 无套内射性感少妇视频| 伊人精品视频| 一区二区乱码福利| 欧美精品日韩一区二区| 国产伊人精品在线| 国产性爱强奸乱伦大全| 国产精品亚洲免费| 思思热er精品视频| 色原狠狠天天天| 狠狠久久手机视频精品| 留下AⅤ黄色片| 国产怡红院| 2020天天色综合| 在线毛片片免费观看| 久久久久久精品免费看A级| 色综合中文字幕不卡| 日韩成人人妻网站| 九九综合久久中文字幕| 91撸色网 玖玖网 欧美| 狠狠91| 久艹伊人精品综合在线| 亚洲欧美日韩不卡人妻| 99日精品欧美国产| 精品人妻伦一区二区三区久久| PMv在线观看| 淮穴色AV| 97综合国产| 欧美久久九九| 五十路三区在线| 久久丁香| 亚洲国产精品无石码久久| 天天综合色| 欧美成人贴图| 丁香五月婷婷色| 麻豆色约约| 亚洲一区日韩| 91性情| 丁香五月综合| 啊啊啊网站| 国产视频一区二区在线| 狠狠色噜噜狠狠狠狠2018| 小草精彩毛片| 免费公开人人操| 欲色啪| 国产日韩欧美三级片| 暴力av在线| 屌色在线97视频| 欧美色图91| 920日本午夜免费| 蜜臀久久99精品久久久久久婷婷 | 78p欧美| 伊人影院日本| 狠狠躁天天躁日日躁| 性影在线视频| 亚洲古典另类欧美在线| 91操熟女视频 | 国产精品在线一区二区| 日本黄 R色 成 人网站| 很很操在线| 日韩丝袜高跟制服在线观看| 亚洲成av人片色午夜乱码| 久久久久久久唑| 91麻豆天美传媒HD| 操我无码| 日本人妻中文字幕精品| 久久国产精品m码| 宅男91视频在线播放| 岛国毛片手机在线观看| 欧美综合亚洲综合| 俞拍自拍| 欧美另类自拍 | 2017天天操天天日| 九X超碰| 抽插无码高清一区| 2017av无码免费无线播| 亚州欧美综合| 东京热av男人的天堂| 99操逼| 俄罗斯一区二区视频在线观看| 亚洲亚洲亚洲天堂天堂 | 97国产超碰| AV色五月天| 99热免费| 色噜噜综合在线| 欧美操逼熟女| 国产黄色影片在线观看| 97综合国产| 激情小说亚洲图片| 91色黑人少妇| 成年女人一区| 亚洲中文字幕噜噜噜久久久| 色综合久| 操操逼操操逼操操逼逼| www.99色| www.99色| 免费成人自拍视频在线| 久操国产在线| av日韩中文字幕| 区二区亚洲婷| 97超碰无码网| 久久综合精品一区二区三区| 日韩有码免费视频| 91粉嫩萝控精品福利网站_精品影音先锋国| 欧美特大AA级黄片| 91欧洲国产成人久久精品网站| 国产97在线播放| 国产欧美后入| 亚洲欧洲久久天堂| 成人久久精品| 天天日天天屌天天操| 韩国轻伦国内自拍一区| 色女网日韩| 96久久科窝| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 99自拍视频在线观看| 搡老女人老妇女AAA一VU麻豆| 日韩成人私密一级精品av| 在线欧美亚洲| 丁香七月婷婷| 日韩欧洲操屄视频| 人人贴人人摸| 国产AV激情无码久久无码| 亚洲蜜乳av| 丰满岳乱妇一区二区三区 | 青青草日韩免费观看高清在线| 一级黄碟在线观看| 欧美亚洲日韩16色| 韩国毛片一区二区三区| 亚洲97资源| 91热| 96久久久| 亚洲图片日本AⅤ欧美在线| 国产一区二区三区视频在线看| 久久丁香久草综合网| 欧美高清无码免费视频高清版| 97国产精品一区二区传媒公司| 日韩熟女精一区二区三区不卡| 丝袜美腿亚洲| 国产黄色 A 片免费看| 殴美在线AⅤ| 韩国一级婬片A片AAAAA| 成功精品影院| 99re不伦| 亚州欧美另类| 影音先锋日本乱伦| 免费看一级a性色生活片久久无| 激情五月天视频| 丝袜AV一二三区| 男人天堂久久日韩| 日韩成人人妻网站| 国产精品懂色tv影视免费观看| 免费家庭乱伦视频| 伊人久久大香大香线蕉中文| 人人手机欧洲亚洲国产人妻| 亚洲天堂日本| 超碰色综合| 国产av又色又爽又黄| 五月婷色| 久操影视| 午夜啪| 久久亚洲AV无码专区国产精品| www久久99| 99国产精品在线观看| 骚逼自拍99| 羞涩视频| 欧美综合骚| 91制服丝袜| 欧美亚洲中文| 日韩亚洲精品一区二区| 久久精品国产精品亚洲艾通辽熟妇| 91人妻丝袜无码| 人妻熟女一区二区| 婷婷丁香激情| 国产亚洲国产超碰| 天天看特黄的免费网站| 999热这里只有精品| 国产精品午夜福利亚洲综合网| 人人摸人人干人人拍97| 精品无码久久久| 任我爽在线视频免费观看| 探花精品 一区二区| 国产亚州精品美女久久久免费| http://qxhbdz.com| av影院十区| 午夜无码精品免费看性色| 夜夜操老骚逼视频网站| 国产路线专区| 国产精品老师| 校园春色家庭伦理欧美激情| 免费作爱一级视频| 日韩欧亚中文在线| 99re免费视频精品全部| 日韩一区二区熟女| 亚洲熟女精品| 欧美日韩少妇色情| 国产乱色国产精品免费视| 久久欧美按摩999| 久久久日本电影| 色激情五月天| 精品传媒在线一区| 操狠狠| 91亚洲图片| 韩国黄色片精品久久久| 人妻蜜桃臀| 色丁香久久| 国产精品夜夜夜| 国模少妇一区二区三区| 9精品久久久久| 一块操欧美性爱| 日韩精品人妻中文字幕不卡乱码| JULIA一区二区三区在线播放| 激情人妻另类| 天天干人妇| 日本高清视频在线观看黄已三辽| 亚洲欧美成人在线| 91精品网站| 中文一区二区婷婷视频| 成人影院永久免费观看网址| 激情综合网一盗摄| 色色热| 国产精品999aaa| 久久夜嗨| 久久99午夜精品一区人妻| 极品出轨视频网站| 国产熟女少妇一区| 黄片国产精品一区二区| 久久噜噜噜精品国产亚洲综合| 国产无马av| 野狼福利社区| 另类 综合 日韩 欧美 亚洲| 5月婷婷6月六月丁香| 伊人九九| 97超碰天天爱天天爱| 波多野结衣被操50分钟免费视频 | 91路www| 大香蕉免费乱伦视频| 清纯唯美亚洲另类| 欧美日韩人人精品| 亚洲欧美自拍偷拍| 老熟女天天操| 青青草精玖玖69精品| 亚洲AV无线| 十八禁黄色| 久久97资源 网| 26uuu国产免费观看| 欧美国产婷婷久久| 天天综合网1| 国产成人+综合亚洲+天堂| 国产欧美在线观看免费观看| 一卡二卡三卡| 亚洲色图国产另类| 日本高清电影欧美色图| 口爆吞精在线观看| 国产在线综合福利网站| 蜜桃天美传媒AV一区二区三区| 在线视频一区二区传媒| 91在线页| 丁香九月激情啪| 亚洲成人在线高清| 东京热毛片177b2viP| 99精品高潮| 天天操天天射青青草| 亚欧性爱ab| 欧美区亚洲区偷拍区| 欧美自拍网| 伦理弟一页| 有码免费观看| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 国产免费永久精品无码| heyZO天然素人无码AⅤ专区| 男人的午夜天堂| 中文字幕精品亚洲熟女| 美女91在线观看| 97超碰国产精品| 爽 好舒服 无码刺激久久| 九月激情婷婷| 99re免费视频精品全部| 女人天堂av在线播放| 国产sv美女内射| 中文字幕精品专区搜索结果91| 国产AV人人 夜夜人人澡| 精品女人999| 色婷五月| 超碰人人草| 亚洲精品中文字幕一区在线视频| 色哟哟511老熟女| 大香焦A片| 在线无码视频| 在线观看成人性爱免费小视频| 九九综合九九综合| 一区AV| 久久久久久99AV无码免费网站| 97se亚洲综合自| aV中文麻| 亚洲一区二区三区婷婷| 亚洲天堂欧美| 加勒比伊人| 色牛aV| 日本人妻中文字幕精品| 亚洲,日韩,欧美,成人播放| 免费少妇一区二区| www.91理论| 黄色性爱网网| 爱我干综合| 亚洲午夜免费狠狠干| 天综合网| 91色爽欧美| 亚洲成人贴图| 秋霞 色色| 久久国产逼| 人人看人人爰人人操| 青娱乐国产精品| www.色操逼| 丰满人妻-区二区三区| 国产熟女| 青青草久草AV| 欧色网址| 麻豆国产视频精品观看| 自拍偷拍 日韩无码| 色色五月天激情| www鬼畜国产男人的天堂| 午夜欧美神马久久久久| 精品在线78| 男人女人18禁片免费看网站| 97人人操人人摸| 亚洲激情综合| 嗯嗯啊好大| 校园激情狠狠四射| 午夜激情成人在线观看| 色五月大香蕉| 亚州色国| 久久69| 亚洲AV秘 精品久久老牛影视| 蜜乳av首页| 大香蕉免| 欧美性高潮在线| 91精品微拍福利| 亚洲操操| 亚洲综合贴图91 | 免费精品99| 东北女人的毛片| 日曰骚久久精品| 日韩免费看在线黄色片| 99在线精品视频| 中文一区在线日| 久久男人的天堂| 5278欧美一区二区三区| 免费看污网站| 亚洲美女精品九九视频| 精品一区二区综合熟妇| 69AV女优男人的天堂| 精品国产乱码久久久影院| 欧美在线永久天堂| 性欧美另类高清| 乱操9999| 大香蕉强奸乱伦| 欧美亚洲国产自久久| 亚洲男人天堂手机版| 强奸乱伦资源| 2000亚洲男人天堂| 极品欧美一区二区三区| 熟妇熟女视频一区二区三区| 国产精品97超碰| 岛国片国产成人亚洲播放| 日韩精彩免费| 色激情综合网站| 亚州色图第三区| 一区二区三区一亚洲中文字幕、综合区灬 | 333kkkk·亚洲com久久| 爱爱动态试试看6 0秒| 在线综合网| 极品色社| 欧美人妻少妇| 欧美午夜精品久久久久久超碰| 国产精品另类| 五月丁香影视| 中文字幕乱亚洲美女精品一区| 无码少妇精品一区二区60岁老人| 欧美高潮| 亚洲啪啪性视频| 亚洲第一视频 欧美风情 日韩| 欧美性爱伊人| 夜夜夜夜久久久久| 婷婷五月花| 91少妇人妻| ss久久| se吧提供91精品国产91久久久久久 | 亚洲图片在线| 日本人人操人人操| 快播久久人人aV| 婷婷91| 9丨久久九九九| 色999人与兽| 久久中文字幕不卡人妻| 亚州色图狠狠干| 久久久久久亚洲中文| 亚州男人的天堂| 日本午夜福利影院| 久久黄人人爽视频| 日本不卡三级网在线播放| 人人干人人操人人爱| 天天看特黄的免费网站| 播播亚洲小说亚洲| 欧美日韩欧美| 人妻一区久久二区三区色播| 双插性欧美一二三区| 97精品视频在线| 无码9区| 久久亚州精品成人Av无| 欧洲一区二区三区四区在线观看| 婷婷激情四射| 美女操逼A A| 天天热精品| 96AV精品| 偷拍自拍在线视频观看| 超碰97 线线 在现| 日韩中文字幕av在线播放| 国产91久久九九免费精品无码| 屁股久久久久久| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 香蕉一区二区三区在线视频| 成人一级性爱| 91白嫩| 伊人久久久日韩一区| 日欧操屄视频| 日韩AV熟女乱伦| 加勒比色综合| 欧美 亚洲 制服 精品| 精品毛片av一区二区| 亚洲97资源| 91l欧美在线| 青青草日韩无码| 久久五月天婷婷丁香中文字幕| 97欧美日韩综合| 欧美日韩国产男人| 大香蕉色十月| 亚洲AV无码国产精品久久久久| 亚洲一区日韩精品中文字幕| 啊啊啊啊啊舒服| 96爱综合| 伊人综合色网| 欧美激情综合| 日本熟妇人妻中出视频| 中文字幕在线免费观看2| 少妇熟女视频一二三区| 亚洲欧洲色情高清| 成人AV素股で擦久久| 毛片电影一区二区三区| 操逼操逼逼操操逼91 | 成人26uuu| 夜夜精品视频| 欧美丝袜91| 天天日天天干天天整| 可以免费看黄片的视频| 97色操| 日日做夜狠狠爱欧美黑人| 婷婷色一区| 精品中文一区二区| 中文字幕av久久爽Av| 亚洲综合网电影91| 丁香五月色| 免费精品福利在线观看| 激情综合二| 95自拍视频在线观看| 69XX一中文字幕人妻91| 久久六六| 男人午夜天堂| 久久人| 91亚洲人| 久久内射| AV中亚| 福利视频网站| 一区二区三区成人高清视频| 亚洲中文sv| 欧美78| 超碰久久中文| 六月激情网| 亚州色图第三区| 51一区二区三区| 欧美传媒| 影音先锋乱伦资源| 午夜精品久久久久久久久久蜜桃| 立川理惠被中出无码| 亚洲影院成人| 9国产超碰| 亚洲无码成人精品| 天天做日日做| 强奸乱伦Av网| 亚洲精品日韩国产欧美| 丁香啪啪| 精品久久久九九九孕妇| 亚洲人在线| 九九九久久久久| 欧洲亚洲人人爽爽视频| 日韩成人小视频| 国产深夜福利| 色操逼网| 日韩av在线播放不卡| 国产激情综合| 99999久久久久9国产精品| 人妻一区久久二区三区色播| 加勒比伊人影院| 91日产桃蜜| 黄色大片视频在线免费看| 欧美偷拍区| 亚欧韩av| sss视频华人在线| 久久99精品九九久久久婷婷| 91操熟女视频| 久9re热视频这里只有精品| 久久久久久电影| 九九色婷婷| 成人综合视频久久| 老鸭窝成人| 国产偷拍网站| 欧美性爱伊人| 色狠狠综合噜一二三区| 亚洲大色鬼| 欲香欲色| 国产在线视视频有精品| 日韩紧密久久| 亚洲欧美内射| 国产精品午夜福利亚洲综合网| 黄色网址在线免费观看| 后X久久| 后入福利| 伊人久久综合影院精品久久久| 亚洲第一成人影院色播| 国产黄色动态精品| 午夜美女诱惑电源网| 国产三级在线现体验区| 欧美性爱五月天| 青青草玖玖爱| 日韩精品在线放| 99色在线| 99久在线精品99re8| 久久精品福利影院| 久久国产三区| 国产精品另类| 国产操偷| 久久久久久中文版| 大学生美女口爆| 色婷婷综合网站| 日韩色图 一区二区| 久艾草在线精品视频在线观看| 亚洲久热| 超碰九九| 静品嫩模一区二区| 精品成人女人久久| 中文字幕日韩人妻视频| 精品人人| 亚洲精品99999| 久99热| 欧美丝袜亚洲| 视频分类 国内精品| 九九九九精品一区| 2020中文在线一区二区三区| 色九月综合| 在线视频 亚洲精品| 久久极品一区二区| 伊人超碰97| 五月丁香影视| 久久久青青草| 99爱精品| 久久69| 99国内精品| 91社区伊人| 日本亚洲vr欧美不卡高清专区| 欧在线一二区| 国产按摩一区二区三区| 国产精品欧美在线观看| 综合网欧美在线| 91亚洲欧洲| 婷婷国产精品九区| 久草尤物| 96国产污污污丝袜| 中文一区在线视频| 亚洲91射| 五月天婷婷综合| 日韩一级二级三级免费看完整版 | 成人网欧美风情| 亚洲性爱乱操x| 99在线视频播放| 大香蕉专区| 啊啊啊轻点在线观看| 婷婷久久综合| 亚洲中文字幕在现观看| 吉川爱美98堂在线| 国产精品自拍xxxx| 亚州五月| 一二三四日本视频高清| 精品久久无码午夜福利| 色综合超碰超| 国产免费一区在线观看| 狠狠爱大香蕉| 日日A∨| 中文字幕成人理论在线| 超碰97人妻自拍| 久久大香蕉手机高清| 超碰精品国产无码| 天天天操天天天爱| 又黄又爽在线观看视频| 男女日B国产| 蜜臀一二三区| 九九热免费国产视频婷婷伊人 | 久久久∴| 99日韩| 亚洲男人综合| 久久国产999| 午夜精品一区二区三区三上悠亚| 女人与公拘交酡2020视频| 欧美大色交| 猛交交| 亚洲一级特黄大片在线播放91| 东京热91| 亚洲大色堂| 九九成人视频| 大香蕉专区| 亚洲激情视频| 丝袜色综合| 久久伊人在线五区| 99热只有这里有精品| 美女裸体无遮挡永久免费观看网站 | 欧美亚洲丝袜人妻制服中文99| 91电影色诱| 99在线观看| 伦伦成年午夜免费视频| 校园春色五月天| 校园春色欧美| 婷婷色香| 99色| 久精品无码av一区二免费国产在线观看| 日本精品五区| 日本二区不卡| 天天日天天屌天天操| 91亚州日韩高清| 免费毛片在线播放| 日韩精品在线观看观看| 91综合在线| 日比av无码| 久久偷偷色综合蜜桃| 蜜桃在线观看一区二区三区| 婷婷激情五月| 日韩欧美国产高清视频| 成人小说视频在线精品欧美| 日韩人妻丝袜中文字幕| 成人资源中文字幕在线观看| 粉嫩小泬久久久一区二区| 伊人影院在线理论播放| 五月天激情小说| 中文字幕在线观看二区三区| 女人被男人桶爽视频网站| 色综合一本| 女性91网站| 巨乳特殊服务按摩| 欧美97av| 国内精品久9| 亚洲啪啪啪啪视香蕉| m欧洲一级午老| 嗯嗯啊啊用力视频免费| 人人妻人人操人人乐| 青青草中文-久久青草精品一区二区三| 俺去俺来也在线www| 伊人影院综合是一个与深夜成人在线| 99re免费视频精品全部| 20cm女自慰在线日韩欧美| 97精品视频| 碰碰97| 国产自制av蜜乳| 欧美v日韩v亚洲v最新在线| 欧美97在线欧| 久久久久夜夜夜夜| 97超碰护士| 四虎国产精品永久在线囯在线| 国产激情视频一区区三区| 亚洲综合电影| 日韩性爱小视频| 免费视频在线一区二区不卡| 精品日韩人妻精品一二三区| www.久久制服糖| 上海一级黄片| 国产一级αv免费看片| 色色色色网站| 天天爽天天爽| 一区黄二区黄| 欧美老妇女内射网址| 97 国产一区| 成人在线午夜视频一区| 五月天人妻综合| 久久久91| 日韩性爱一级片| 久久国产乱子伦精品免费女人| 日本熟女中文字幕一区| 91人妻Pr| 久久久一热在线播放| 久久超碰、| 国产99999久久精品| 中文字幕丝袜| 欧亚无码视频| 333kkkk·亚洲com久久| 噜噜在线| 青青草十区九区爱夜| 狠狠做深爱婷婷久久二区| 成人一二三区| 超碰在线欧美性爱激情| 国产 亚洲 丝袜 制服| 久99热| 欧美亚洲一区二区久久久婷精品大包诱| 青青草字幕AV| 麻豆av一区二区| 另类小说综合网| 国产日韩欧美三级片| 精品v1区| 大香蕉日韩欧美| 秋霞午夜成人福利片片| 99精品久久久久久久婷婷| 91无码中出人妻视频| 亚洲激情色片| 蜜臀久久99精品久久久久久婷婷| 欧美日韩大黄片| 久久综合激情| 一区二区三区无卡视频在线观看| 岛国天天午夜影院传媒网| 99亚洲国产精品色一区二区三区| 天天日B夜夜干B时时操B| 啊a一区在线| 91美女视频电影| 2017av无码免费无线播| 中文字幕在线观看二区三区| 天天弄欧美| 久久久精精精| 国产精品一级毛片不卡视| 国产按摩一区二区三区| 国产AV人人夜夜澡人人爽麻豆| 97在线免费| 香蕉久久国产AV一区二区| 亚爽爽爽爽爽爽爽爽| 好属操| 国产精品老师| 青草影院内射高潮| 国模无码人体一区二区三| 久久久婷婷婷| 熟女一区二区三区四区| 久艾草在线精品视频在线观看| 狠狠操夜夜操蜜桃视频三区| 97jingpin| 岛国在线免费视频| 中文字幕在线观看AV| 色臀AV| 一区在线国产播放| 天天操天天日青青草超碰av| 日本一区二区三区午夜观看| 色欧美天天| 水滴偷拍| 丁香五月久久| 精品一区二区2| 一级特级aaaa毛片免费观看| 欧亚日韩三区| 人人人摸人人| 午夜呻吟欧美| 秋霞怕怕片| 天综合中文| 91n欧美| 91爽啪| 亚洲天堂男人的天堂| 人妻嗯啊啊在线播放| 中文三一区| 国产成人网| 欧美精品庄| 四虎AV在线观看| 色妺妺AⅤ| 99少妇精品视频| 欧美综合天天| 婷婷情色综合网| 一级毛片电影免费看| 青青草密桃在线播放| 探花精品 一区二区| 国产原创精品| a片久久久久久久久久久久 | 日韩一级二级三级| 99综合免费视频| 久久东京热成人| 免费观看欧美日韩操逼视频 | 青青草吊丝| 亚洲av国产av综合av卡| 欧美色图 人妻| 日本高清_区二区三区 | 99∨VTV| 神马久久久久久| 日本丝袜美腿人妻九九| 精品中文字幕一区二区| 久操影视| 久久九九99| 久久久精品| 欧美亚洲日韩16色| 人人操人人叉人人插人人| 国产精品久久久午夜夜伦鲁鲁| 亚洲色婷婷| 日本成a人v网站在线观看| 天天干天天日天天射黄色片| 成人三一级一片aaa| 天天干夜夜操一区二区| 91一区二区| 久久亚洲国产成人| 锕锕好爽 死我在线观看| 99性视频| 成人小说另类在线| AV色图| 97久久资源| 亚洲无码免费看| 午夜一区| 欧美熟女妇同| 操逼日韩无码| 国产午夜福利专区综合| 高清不卡 中文 人妻| 欧美日韩国产在线| 色在线综合| 男人的天堂久久| 青草香蕉网| 一级黄色影片| 黄色片,com| 蜜臀久久99精品久久久久久酒店 | 夜夜嗨视频| 天天超级碰碰碰| 日韩在线视频1234| 日韩AV无码中文一区二区| 亚洲综合九九| 久草线上视频免费看| 伊人影院在线理论播放| www网站黄| 午夜a成v人电影| 97日亚洲欧美| 人妻素股| 操操操操操操| 91在线色综合| 亚洲午夜福利视频| 国产又色又粗又黄又爽| 少妇天堂| 青青草国产一区二区三区| 天美一二三在线观看Av| 志村玲子视频一区二区| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 欧美色图自拍| 中国黑人三级片网站上区| 韩日精品四区| a级理论午夜日本| 国产绿奴视频在线观看| 永久免费观看的毛片的网站| 久操电影网| 久操av在线| 天天影视射综合网| 久久一留热品黄| 亚洲欧洲偷拍一区| 97综合在线| 在免费jIzzjIzz在线视频| 亚洲图片日本AⅤ欧美在线| 国产精品女aA片爽爽视频| 日韩91网站| 男同专区一区二区三区在线| 密臀国产在线| 久久久96精品| 男人天堂久久精品不卡| 日韩欧美天天爽爽爽天天爽爽| 97日视频| laoshunv91| 女生自91网站| 美腿丝袜高跟网免费视频免费视频| 极品白嫩福利在线| 国产精品91一样| 青青国产精品在线| 啊啊啊啊一区| 麻豆人妻精品一区二区| 五月综合色| 日韩另类色图| 欧美日韩国产传媒在线精品| 一二三四免费视频| 亚洲午夜免费狠狠干| 天天综合色电影| 精品夜夜澡人妻无码| 日本有码影片下载| 高清不卡视频| 日韩 欧美 校园一区| 蜜臀久久在线视频| 天天干人妻| 中文字幕欧美日本乱码一线二线 | 大香樵伊人网| 99热综合在线| 男女91| 77国产精品| 91熟女.com| 性欧美第一页| 亚洲性天堂| 88xx成人精品视频| 免费一级性爱久久| 色欲蜜臀AV| AAA久久| 色妹子A V| 91天天爱|