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

ARTICLE DETAIL

資訊詳情

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

分庫分表避坑指南:從全局ID到分布式事務(wù)的實戰(zhàn)方案

分庫分表避坑指南:從全局ID到分布式事務(wù)的實戰(zhàn)方案 幾年前我接手過一個訂單系統(tǒng)單表數(shù)據(jù)量破了億高峰期一個簡單的 count 查詢就要跑好幾秒慢日志把監(jiān)控面板刷得通紅。那時候擺在團(tuán)隊面前的方案就是今天要聊的分庫分表。分完之后單表壓力確實下來了但隨之而來的問題也一個接一個冒出來全局ID、跨庫Join、分布式事務(wù)、深分頁還有最頭疼的擴容遷移。這篇文章我會按自己在生產(chǎn)環(huán)境里的踩坑順序把分庫分表后暴露出來的典型問題逐個拆開講清楚底層原因和可行的解決方案。適合正在準(zhǔn)備分庫分表的團(tuán)隊、被分片問題折磨的后端開發(fā)以及想系統(tǒng)理清這套架構(gòu)思路的人。有一些方案屬于行業(yè)通用做法我會額外標(biāo)注哪些是來自我的實踐經(jīng)驗供你參考。1. 分庫分表前必須想清楚的那筆賬1.1 它到底解決了什么問題先別急著追求“用了分庫分表就高級”。分庫分表本質(zhì)上解決的是三個現(xiàn)實瓶頸。第一是連接數(shù)問題。MySQL 這類數(shù)據(jù)庫的連接是有限資源一個實例的連接數(shù)一旦被占滿新請求只能在連接池里排隊等。很多系統(tǒng)的數(shù)據(jù)量不大但應(yīng)用實例多、連接池配得又大單庫連接數(shù)很容易被打爆。分庫之后連接壓力被分散到多個實例上這個問題會立刻緩解。第二是單表數(shù)據(jù)量膨脹后索引性能下降。這里有個容易誤解的地方B樹索引本身能支撐千萬級數(shù)據(jù)3到4層深度其實還挺能打。但真實生產(chǎn)環(huán)境不是教科書大量歷史數(shù)據(jù)堆積、頁碎片增加、隨機回表變多幾億行的單表會讓很多簡單查詢變得很慢尤其帶 order by、group by 的時候慢查詢幾乎躲不掉。分表把數(shù)據(jù)拆成多份每張物理表的數(shù)據(jù)量降下來索引效率自然恢復(fù)。第三是單庫的寫入吞吐天花板。一個主庫的磁盤IO、binlog寫入、刷盤能力都有上限。日增百萬行以上的業(yè)務(wù)單庫寫入很容易成為瓶頸。分庫分表后寫入被分散到多個節(jié)點這個天花板就被抬高了。我經(jīng)手的那個訂單系統(tǒng)就是這樣單表日均新增幾十萬行大促期間一個簡單寫操作排隊幾百毫秒庫的連接數(shù)和CPU都頂不住。分完立刻立竿見影但也只是“開始”。1.2 分完之后你失去了什么可以這么理解分庫分表前你的數(shù)據(jù)庫是一個大倉庫你想怎么盤點都行分完之后倉庫被切成幾十個小隔間找特定商品很快但跨隔間盤點就得挨個進(jìn)去數(shù)再在外面匯總。這是分庫分表最核心的代價用犧牲“全局視圖”換“伸縮能力”。具體來說你至少會失去以下東西跨庫 Join 能力原本一條 SQL 關(guān)聯(lián)三張表分庫后如果數(shù)據(jù)不在同一個庫這條 SQL 基本廢了。本地事務(wù)邊界原本一個事務(wù)里同時更新訂單、庫存、余額分庫后它們可能在不同庫ACID 不再由單庫保證。唯一索引約束user_name 這類全局唯一字段在分片后的數(shù)據(jù)庫里無法靠單表唯一索引兜底。全局排序、分頁、聚合count、sum、avg 這些操作都要先分散查詢再歸并深分頁更是災(zāi)難。DDL 與索引管理原來對一張表加個索引現(xiàn)在要對幾十張表操作窗口期成倍拉長。所以分庫分表是一個“確定性有損方案”。它不是優(yōu)化技巧是為了可用性和容量做出的取舍。動手之前最該做的事情就是把現(xiàn)有 SQL 全部梳理一遍按“能帶路由鍵的查詢”“不帶路由鍵的查詢”“跨分片查詢”分類。很多團(tuán)隊跳過這一步拆分之后才發(fā)現(xiàn)核心列表頁全是跨分片查詢等于把單表的慢查詢換成了更復(fù)雜的跨分片慢查詢。1.3 分庫還是分表垂直還是水平不少人把“分庫分表”當(dāng)成一個詞其實它們是不同的手段解決的問題也不一樣。分庫是把不同業(yè)務(wù)域的數(shù)據(jù)放到不同數(shù)據(jù)庫實例比如把訂單庫、用戶庫、支付庫拆開。它主要解決單庫連接、IO、CPU 瓶頸。很多時候一個實例扛不住只是因為所有業(yè)務(wù)擠在一起垂直分庫就夠了根本不用水平分表。分表是把一張大表按行拆成多張結(jié)構(gòu)相同的物理表。它主要解決單表數(shù)據(jù)量過大、索引效率下降的問題。比如訂單表按 user_id 哈希拆成 64 張每張表只存原來的 1/64 數(shù)據(jù)。垂直拆分是按列拆把熱點字段和冷字段分開減少單行數(shù)據(jù)體積提高緩存命中率。水平拆分才是通常說的“分表”也是這里要討論的重點。判斷標(biāo)準(zhǔn)我一般這樣簡化單庫連接或 CPU 扛不住優(yōu)先分庫單表數(shù)據(jù)量過大、索引性能明顯退化優(yōu)先分表一張表字段特別多且冷熱訪問差異極大考慮垂直拆分。拆鍵的選擇則是最關(guān)鍵的決定。理想路由鍵要覆蓋 80% 以上的查詢。比如訂單高頻查詢是“查某個用戶的訂單列表”那就按 user_id 拆如果是“按訂單號查訂單詳情”那就按 order_id 拆。注意這兩個鍵往往只能二選一選了 user_id所有按 order_id 的查詢就會退化成全分片掃描。如果你兩種查詢都很高頻就得考慮冗余表或者異構(gòu)存儲來兜住另一種查詢方式。2. 分布式主鍵、跨庫Join與唯一約束第一個痛感來源2.1 全局唯一ID自增主鍵的替代方案分庫分表后單表自增主鍵立刻失效。原因很簡單兩個分片各自從 1 開始自增會出現(xiàn)重復(fù) ID。你說我可以設(shè)置不同的初始值和步長比如庫1生成 1,3,5庫2生成 2,4,6這確實能撐一陣子但后期擴容要重新調(diào)整步長歷史數(shù)據(jù)還得重新計算維護(hù)成本很高不推薦。實際生產(chǎn)里常用的方案有三類我做過對比方案特點適用場景業(yè)務(wù)規(guī)則ID用日期用戶ID序列拼出訂單號天然唯一且可讀訂單號、流水號等業(yè)務(wù)強相關(guān)場景號段模式集中發(fā)號服務(wù)每次取一批號本地內(nèi)存分配需要高性能、實現(xiàn)簡單的場景雪花算法時間戳機器標(biāo)識序列號趨勢遞增分布式節(jié)點多、需要本地生成ID的場景UUID全局唯一但隨機無序不適合做數(shù)據(jù)庫主鍵只適合做鏈路追蹤等UUID 不建議當(dāng)主鍵這是我在實際中踩過的坑。UUID 沒有順序性作為聚簇索引主鍵時新數(shù)據(jù)會隨機插入索引頁導(dǎo)致頁分裂頻繁寫入性能和磁盤碎片都很難看。雪花算法是當(dāng)前最主流的方案核心結(jié)構(gòu)是 1 位符號位 41 位毫秒時間戳 10 位機器標(biāo)識 12 位序列號。它能保證全局唯一并且趨勢遞增對索引比較友好。但有一個經(jīng)典問題時鐘回?fù)堋H绻麢C器 NTP 校時后時間往回跳就可能生成重復(fù) ID。我實踐中的做法是記錄上一次生成 ID 的時間戳如果當(dāng)前時間小于等于上次時間就拒絕生成或者阻塞等待時鐘恢復(fù)同時配合機器標(biāo)識位做兜底。號段模式也很值得提一下它的思路是集中發(fā)號服務(wù)在數(shù)據(jù)庫里維護(hù)一個“當(dāng)前最大號段”每次申請取一批號比如一次取 1000 個應(yīng)用本地分配。這樣發(fā)號服務(wù)壓力小性能高實現(xiàn)也簡單。缺點是發(fā)號服務(wù)仍然是個單點需要做好高可用取號窗口也不能太小否則會造成頻繁訪問發(fā)號庫。我自己在中等規(guī)模系統(tǒng)里很喜歡用號段模式因為維護(hù)成本遠(yuǎn)低于雪花算法。2.2 跨庫Join習(xí)慣了SQL的人最先懵掉的地方分庫之后一條 SQL 關(guān)聯(lián)多張表還能不能跑取決于你的拆鍵設(shè)計。最理想的情況是經(jīng)常一起 Join 的父子表使用同一個路由鍵。比如訂單表和訂單明細(xì)表都按 order_id 分片那么同一筆訂單的數(shù)據(jù)天然落在同一個分片單庫 Join 依然可用。這一點應(yīng)該在設(shè)計拆鍵時優(yōu)先考慮能幫你省掉大量后續(xù)麻煩。但現(xiàn)實往往是用戶表和訂單表沒法用同一個鍵拆。訂單按 user_id 分片用戶表又按 user_id 分片這其實還能對得上。就怕訂單按 order_id、用戶按 user_id兩套路由體系那么“查詢訂單并顯示買家昵稱”就必然跨分片??绶制?Join 的常規(guī)解法有四種冗余字段。把查詢列表需要的買家昵稱、商品標(biāo)題等字段直接冗余到訂單表寫入時多寫一份查詢時無需關(guān)聯(lián)。這是最簡單也最有效的方案絕大多數(shù)訂單列表展示場景都夠用。應(yīng)用層組裝。先在分片里查出訂單數(shù)據(jù)再根據(jù) user_id 集合批量調(diào)用用戶服務(wù)查詢昵稱最后在服務(wù)內(nèi)存里拼裝。要注意控制批量查詢的 IN 條件長度分片查詢也盡量并發(fā)。寬表/匯總表。把高頻查詢需要的維度都同步到一張寬表里這張表可以單獨存儲查詢走它。本質(zhì)上是建立一個面向查詢的模型。異構(gòu)存儲。復(fù)雜關(guān)聯(lián)和檢索直接交給搜索引擎或者分析型存儲業(yè)務(wù)庫只承擔(dān)在線交易寫入。我的建議是優(yōu)先冗余字段其次應(yīng)用層組裝別在業(yè)務(wù)代碼里硬撐復(fù)雜 Join。分庫分表之后SQL 不再是萬能膠水這條認(rèn)知越早建立越好。2.3 唯一約束失效唯一索引在分片下不靈了分庫分表后一個容易被忽略的問題是唯一約束失效。比如用戶表的用戶名需要全局唯一但表按 user_id 分片之后每個分片只能檢查自己分片內(nèi)有沒有重名無法判斷其他分片的同名情況。數(shù)據(jù)庫層的唯一索引在這里形同虛設(shè)。解決思路有三條。第一條讓業(yè)務(wù)規(guī)則保證唯一。比如訂單號本身由全局發(fā)號器生成規(guī)則上就不會重復(fù)這時數(shù)據(jù)庫層不需要唯一索引兜底。適合有明確業(yè)務(wù)編號的場景。第二條建立“唯一鍵 → 路由鍵”的映射表。以用戶名注冊為例先在一張獨立的全局映射表里插入用戶名和 user_id 的對應(yīng)關(guān)系映射表本身可以做唯一索引插入成功后再把用戶數(shù)據(jù)寫入 user_id 對應(yīng)的分片。并發(fā)重復(fù)注冊時映射表的唯一索引會把沖突擋在外面。代價是多一次查詢和一次額外寫入。第三條路由鍵本身如果是唯一字段比如 user_id 本身全局唯一那就不存在額外約束問題直接用路由鍵作為唯一條件即可。這套機制需要額外引入一張映射表增加一次網(wǎng)絡(luò)交互很多人會覺得麻煩。但這是分庫分表的固有復(fù)雜度躲是躲不掉的。不做映射表的話就得自己做分布式鎖而且要處理鎖粒度、鎖超時、鎖釋放復(fù)雜度只會更高。3. 跨庫分頁、排序與聚合業(yè)務(wù)代碼里最隱蔽的坑3.1 深分頁為什么是災(zāi)難分頁這個功能看起來人畜無害但分庫分表之后它是隱藏極深的性能殺手。先看單庫分頁select * from order where user_id 100 order by create_time desc limit 100000, 20。MySQL 會掃描前 100020 行丟棄前 100000 行再返回 20 行。單庫這個操作已經(jīng)很重了但還能咬牙撐住。分庫之后就完全不同了。假設(shè)拆了 16 個分片你要取全局第 100000 到 100020 條不能只查詢每個分片的后 20 條因為全局排完序之后第 100000 條可能分布在任何分片里。正確做法是每個分片各取前 100020 條然后合并排序再截取第 100001 到 100020 條。每個分片都得傳輸十萬級數(shù)據(jù)到聚合層內(nèi)存和 CPU 開銷呈線性放大offset 越大代價越高。這還不算最慘的。如果分頁查詢沒帶路由鍵比如管理員后臺按狀態(tài)查訂單所有分片都得參與那就是 16 倍的掃描量。解決方案我實踐下來最有效的是這三種禁止深分頁。前端頁碼限制到 100 頁以內(nèi)超出就提示用戶縮小查詢范圍。很多業(yè)務(wù)場景其實根本不需要翻到很深。鍵集分頁也叫 keyset pagination / 游標(biāo)分頁。不依賴 offset而是記住上一頁最后一條數(shù)據(jù)的排序字段值。例如 order by create_time desc, id desc下一頁就查詢 where create_time ? or (create_time ? and id ?) order by create_time desc, id desc limit 20。這樣每頁查詢都能利用索引數(shù)據(jù)量再大也能保持穩(wěn)定的查詢耗時??绶制判蚍猪摻唤o搜索引擎。業(yè)務(wù)庫只負(fù)責(zé)寫入搜索引擎負(fù)責(zé)維護(hù)倒排索引列表頁和后臺查詢?nèi)孔咚阉鞣?wù)。這是大型系統(tǒng)里最穩(wěn)妥的路線。方案優(yōu)點缺點傳統(tǒng) offset 分頁實現(xiàn)簡單前端友好深分頁性能災(zāi)難跨分片必放大游標(biāo)/鍵集分頁性能穩(wěn)定適合列表不能跳頁需要知道上一頁錨點搜索引擎分頁支持復(fù)雜條件排序引入額外組件有數(shù)據(jù)同步延遲3.2 全局排序、count與avg的歸并陷阱排序和分頁是連在一起的??绶制判虻幕舅悸肥敲總€分片先按排序字段排序取出前 N 條聚合層做歸并排序再取出最終結(jié)果。但如果排序字段不是路由鍵這個“每個分片取前 N 條”并不等于全局前 N 條需要每個分片取的量足夠大最后結(jié)果才準(zhǔn)確。所以跨分片排序的復(fù)雜度不僅來自排序本身還來自“取多少才夠”的不確定性。生產(chǎn)上最簡單的做法就是限制查詢范圍或者直接把排序場景遷移到搜索引擎。再說 count 和 avg這兩個函數(shù)都有考核點。count(*) 在單庫是一條索引掃描分庫后就必須“各分片 count 再累加”。如果業(yè)務(wù)量每小時都要做一次精確全量計數(shù)對分片的壓力很大。更合理的做法是維護(hù)一張匯總表或者直接由分析引擎提供計數(shù)能力。avg 有一個非常經(jīng)典的坑不能直接把各分片的 avg 加起來再求平均。正確的計算方式是 avg sum(所有分片的總和) / count(所有分片的總數(shù))。因為各分片的數(shù)據(jù)量可能不均勻簡單平均結(jié)果會偏。這個我在代碼評審里見過不止一次看起來是小問題一旦數(shù)據(jù)分布傾斜報表數(shù)據(jù)直接失真。sum 也一樣需要先各分片 sum再匯總。min、max 反而簡單各分片取自身最大最小再取極端值即可。3.3 分組統(tǒng)計在分片下的正確姿勢group by 的問題比單值聚合更隱蔽。比如要統(tǒng)計“每個城市的訂單量”但訂單表是按 user_id 分片的同一個城市的用戶分散在各個分片每個分片只能算出自己的城市分組要得到全局分組必須把所有分片的小組結(jié)果合并然后按城市維度重新聚合。如果數(shù)據(jù)量不大這種歸并還能接受。但一旦分片多、基數(shù)大應(yīng)用層需要做一次完整的 MapReduce非常難受。在線上交易庫里做分組統(tǒng)計我強烈建議三條路只允許按路由鍵分組。例如按 user_id 分片就只做 user 維度的分組這樣每個分片獨立算結(jié)果直接匯總即可。把分組鍵作為二級分片鍵建設(shè)維度表或匯總表。異步預(yù)聚合。寫入時同步到分析型數(shù)據(jù)庫或搜索引擎報表和統(tǒng)計全部從這邊出。這是大型系統(tǒng)的通行做法也是我實際最喜歡的方案。分庫分表永遠(yuǎn)是為在線事務(wù)服務(wù)的不是為了數(shù)據(jù)分析更好。分析類的復(fù)雜聚合應(yīng)該盡早導(dǎo)出到專用引擎而不是在業(yè)務(wù)庫上硬扛。4. 分布式事務(wù)從本地ACID到最終一致性的思維切換4.1 單庫事務(wù)為什么不能直接搬到分庫分庫之前一個下單操作通常是這樣開啟事務(wù)插入訂單表扣減庫存表更新賬戶余額然后提交。如果中間任何一步失敗本地事務(wù)回滾數(shù)據(jù)保持一致。分庫分表之后訂單、庫存、余額很可能在不同的庫甚至不同的物理機。你無法再用一個數(shù)據(jù)庫事務(wù)把它們包起來——每個庫的事務(wù)是獨立的Commit 的時候可能訂單庫提交成功、庫存庫提交失敗系統(tǒng)立即處于不一致狀態(tài)。這就是分布式事務(wù)要解決的問題。很多人一開始試圖找一種“像本地事務(wù)一樣”的分布式事務(wù)框架但分布式環(huán)境下沒有免費的午餐你必須接受一個事實跨庫操作的原子性要么依賴協(xié)調(diào)協(xié)議要么靠最終一致性補償。一個非常實用的建議在拆鍵設(shè)計階段盡量把強一致相關(guān)的數(shù)據(jù)放到同一個分片。比如“訂單和訂單明細(xì)”本來就在同一個庫里關(guān)聯(lián)那就保持同一路由鍵“用戶余額變動”和“訂單創(chuàng)建”如果無法避免跨分片則需要認(rèn)真評估業(yè)務(wù)上是否真的需要強一致。4.2 幾種主流的分布式事務(wù)方案怎么選我把實際工程里見得最多的方案拉個表給你參考方案一致性強度開發(fā)成本適用場景XA 兩階段提交強一致低一致性要求極高、并發(fā)量不大TCC 補償最終一致高跨服務(wù)資金操作需自定義補償本地消息表/事務(wù)消息最終一致中訂單、異步通知最通用SAGA 長事務(wù)最終一致中高流程長、有明確正向/補償步驟XA 是數(shù)據(jù)庫原生支持的強一致方案邏輯簡單但兩階段提交的鎖持有時間長并發(fā)能力差在高頻寫入場景下基本扛不住。用在低并發(fā)、強一致的管理類操作還可以。TCC 需要業(yè)務(wù)方自己實現(xiàn) Try、Confirm、Cancel 三個動作。Try 階段預(yù)留資源Confirm 提交Cancel 回滾。這套方案靈活、性能比 XA 好但代碼量很大還要處理協(xié)調(diào)者的狀態(tài)和超時。我見過不少團(tuán)隊用 TCC 處理支付扣款最后維護(hù)補償邏輯的成本非常高。本地消息表和事務(wù)消息是最終一致方案里性價比最高的。核心思路是在業(yè)務(wù)本地事務(wù)里同時寫入業(yè)務(wù)數(shù)據(jù)和一條待發(fā)送消息事務(wù)提交后再把消息發(fā)出去消費者異步處理后續(xù)步驟。由于業(yè)務(wù)數(shù)據(jù)和消息同庫提交不會出現(xiàn)“業(yè)務(wù)做了但消息沒發(fā)”的問題。很多消息中間件的事務(wù)消息做得更徹底把本地表都省了原理是一樣的。SAGA 把長事務(wù)拆成多個本地事務(wù)每一步有正向操作和補償操作。和 TCC 的區(qū)別是SAGA 沒有預(yù)留資源這一說直接執(zhí)行失敗時逆序補償。適合訂單流程長、步驟邊界清晰的場景。我的個人傾向是能用單庫事務(wù)解決就不做分布式事務(wù)必須跨庫時優(yōu)先事務(wù)消息和最終一致不要一上來就上 TCC 或 XA。真正的高并發(fā)系統(tǒng)核心訴求是“最終把事辦成且不重復(fù)”而不是“每一步都強一致”。4.3 兜底補償與對賬生產(chǎn)環(huán)境真正的保命手段再好的分布式事務(wù)方案在真實網(wǎng)絡(luò)環(huán)境下也會出現(xiàn)消息丟失、重復(fù)消費、超時無響應(yīng)。所以生產(chǎn)環(huán)境里真正靠得住的是兜底機制。第一是對賬。定期掃描所有跨庫業(yè)務(wù)的狀態(tài)數(shù)據(jù)找出不一致的記錄并觸發(fā)補償。比如訂單表和支付流水表對不上對賬任務(wù)自動補單或者告警人工介入。這是最終一致性的守護(hù)神比任何事務(wù)框架都重要。第二是冪等。下游消費方必須能冪等處理否則一條消息重復(fù)投遞就會造成重復(fù)扣款、重復(fù)發(fā)貨。冪等鍵一般用業(yè)務(wù)主鍵加事件類型處理前先查詢是否已處理。我分享一個真實教訓(xùn)有段時間我們上線了本地消息表機制以為萬事大吉結(jié)果忘了給消息表配置定期清理任務(wù)消息表膨脹到幾千萬行查詢越來越慢消費端延遲飆升。后來加上“消息表狀態(tài)掃描 定時補償”才穩(wěn)定下來。分布式事務(wù)只能降低不一致概率不能消滅不一致運維側(cè)的兜底永遠(yuǎn)不能省。5. 擴容與數(shù)據(jù)遷移分庫分表真正的第二次考驗5.1 取模擴容的代價與一致性哈希很多人以為分庫分表是一勞永逸等容量不夠了才發(fā)現(xiàn)擴容才是最難的一步。最早期的方法是按 user_id % 16 取模拆成 16 個分片。這種方案在數(shù)據(jù)量增長到臨界點后想擴到 32 個分片問題就來了因為取模的模數(shù)變了原來大部分?jǐn)?shù)據(jù)的路由結(jié)果都會變幾乎所有的數(shù)據(jù)都得重新搬遷。擴容不再是“加幾臺機器”的事而是一次接近全量遷移的大工程。一致性哈希是這里面的經(jīng)典解法。把哈希值空間組織成環(huán)機器落在環(huán)上數(shù)據(jù)按順時針歸屬到最近的節(jié)點。擴容時只需要把一部分?jǐn)?shù)據(jù)從相鄰節(jié)點遷移到新節(jié)點遷移量比取模小得多。但一致性哈希也有自己的問題節(jié)點分布不均會導(dǎo)致數(shù)據(jù)傾斜需要引入虛擬節(jié)點來緩解同時遷移期間新舊映射要保證一致性否則會出現(xiàn)讀寫走不同節(jié)點的情況。另外按范圍分片比如按時間范圍、按ID區(qū)間在擴容時更靈活只需要切分某個區(qū)間的數(shù)據(jù)但缺點也很明顯最新數(shù)據(jù)往往集中在某個區(qū)段容易形成熱點。如果業(yè)務(wù)本來就是冷熱交替比如訂單按月份歸檔范圍分片反而很合適。所以沒有哪種分片算法是完美的只有適不適合當(dāng)前業(yè)務(wù)。5.2 邏輯分片與預(yù)分片平滑擴容的工程化思路這里介紹一個我在實踐中認(rèn)為最值得推廣的方案邏輯分片與預(yù)分片。核心思想是把“分片編號”和“物理存儲位置”解耦。預(yù)先定義一批固定數(shù)量的邏輯分片比如 1024 個槽位每個槽位是一個邏輯概念它當(dāng)前映射到哪張物理表、哪個物理庫由一個路由表維護(hù)。寫入數(shù)據(jù)時先用路由鍵算出槽位編號再查路由表找到實際物理存儲位置。擴容時不需要改變槽位數(shù)量和路由算法只需要把一部分槽位從舊節(jié)點遷移到新節(jié)點并更新路由表即可。遷移粒度從“全量數(shù)據(jù)”變成“局部槽位”范圍可控影響面小。預(yù)分片的槽位數(shù)在設(shè)計時就要預(yù)留未來好幾年的增長空間比如先定 1024 個槽位映射到 16 個物理庫每庫 64 個槽位。將來擴到 32 個庫每庫分到的槽位變成 32 個數(shù)據(jù)只搬移那些槽位對應(yīng)的數(shù)據(jù)其他槽位紋絲不動。工程實現(xiàn)上路由表可以放到配置中心或本地進(jìn)程緩存。這里有個小細(xì)節(jié)路由表變更期間要保證一致性最好引入版本號所有請求在同一個版本下解析路由等遷移完成再切換版本。否則遷移中途出現(xiàn)路由不一致數(shù)據(jù)就會讀到一半新一半舊的。預(yù)分片的實現(xiàn)比直接取模多一層映射初期確實有點多余但它是長期最省心的方案。如果團(tuán)隊有中長期擴容預(yù)期建議一步到位。5.3 數(shù)據(jù)遷移的完整節(jié)奏從雙寫到灰度切換不管用哪種方案數(shù)據(jù)遷移都不是“停服拷貝”而是線上平滑切換。我自己跑過多次遷移基本固定成下面五步節(jié)奏。第一步建表與雙寫。在目標(biāo)庫建好新表結(jié)構(gòu)業(yè)務(wù)寫入時同時寫舊表和按新規(guī)則映射的新表雙寫邏輯要能容忍重復(fù)數(shù)據(jù)最好以冪等寫入方式保證兩側(cè)一致。第二步全量遷移。用一致性快照或者離線任務(wù)把存量數(shù)據(jù)導(dǎo)入目標(biāo)庫。如果數(shù)據(jù)量很大按槽位或按ID區(qū)間分批處理。第三步增量追平。通過數(shù)據(jù)庫的變更日志訂閱或者消息回放把雙寫期間產(chǎn)生的增量數(shù)據(jù)持續(xù)同步到目標(biāo)庫直到目標(biāo)庫和舊庫的數(shù)據(jù)延遲降到秒級以內(nèi)。第四步數(shù)據(jù)校驗。抽樣或者全量對比主鍵、版本號、排序字段。不一致的記錄要重新回放。這一步不要省我見過直接跳過校驗上線結(jié)果漏了部分分片的數(shù)據(jù)用戶反饋問題層出不窮。第五步灰度切換。先把少量讀寫流量切到新路由觀察指標(biāo)逐步放大比例1% → 10% → 50% → 100%。每次放大后至少觀察一個業(yè)務(wù)周期確認(rèn)無異常再繼續(xù)。窗口選擇低峰期出錯時還能快速回切。雙寫與增量同步期間還有一個常見坑新舊路由并存會導(dǎo)致部分?jǐn)?shù)據(jù)重復(fù)。這個只能靠全鏈路冪等去兜比如每次寫入帶業(yè)務(wù)主鍵目標(biāo)庫按主鍵去重。總之遷移本身不可怕可怕的是遷移方案里沒有回退預(yù)案和校驗機制。6. 反向經(jīng)驗有些表根本不該分庫分表6.1 什么情況下分庫分表是負(fù)優(yōu)化聊了這么多問題與解法我得潑一盆冷水很大一部分系統(tǒng)其實根本不需要分庫分表。一個典型場景是單表只有幾百萬行數(shù)據(jù)查詢幾十毫秒僅僅因為聽說“大廠都這么干”或者為了面試好聊就引入了分庫分表。結(jié)果每個查詢都要帶路由鍵不帶就全分片掃描跨分片查詢還引入額外的組裝邏輯性能比單庫更差。這種屬于典型的負(fù)優(yōu)化。另一個反例是業(yè)務(wù) SQL 本身特別復(fù)雜、關(guān)聯(lián)五六個表、查詢維度又多又雜的表。這種表一旦水平拆分幾乎所有查詢都會退化成跨分片掃描加上 MapReduce 式的歸并復(fù)雜度直接爆炸。對于這種表分庫分表只會讓系統(tǒng)更慢、更不穩(wěn)定。一個簡單判斷是如果分庫分表之后你的核心查詢依然需要頻繁跨分片且跨分片率超過 30%那大概率是拆錯了。正確做法是在拆分前就把查詢模式摸清而不是拆完再補。6.2 更輕的替代方案緩存、冷熱分離與異構(gòu)存儲很多以為需要分庫分表的問題其實用更輕的方案就能解決。讀多寫少、查詢熱點集中優(yōu)先上緩存。把高頻查詢結(jié)果緩存起來數(shù)據(jù)庫壓力立刻降下來。緩存都搞不定的高頻復(fù)雜查詢再考慮別的。歷史數(shù)據(jù)不參與在線查詢做冷熱分離或歸檔。以訂單系統(tǒng)為例三個月前的訂單查詢頻率驟降可以直接遷移到歸檔庫或大數(shù)據(jù)存儲在線庫只保留熱數(shù)據(jù)。這種方案比無腦水平分表更簡單效果也更直接。單庫連接和IO扛不住優(yōu)先垂直分庫。把用戶、訂單、商品放到不同實例互不影響。很多時候沒有水平拆分的必要只是多個業(yè)務(wù)域擠在一起了。復(fù)雜檢索、報表聚合這類需求最好直接交給搜索引擎或者分析型數(shù)據(jù)庫。讓在線事務(wù)庫承擔(dān)極少的高權(quán)重查詢其他分析類需求全部導(dǎo)出到專用引擎。這套組合拳下來真正需要水平分表的場景會少很多。6.3 我的選型判斷標(biāo)準(zhǔn)最后分享一套我自己的選型判斷框架純經(jīng)驗之談不一定絕對但值得參考單表數(shù)據(jù)量是否接近 5000 萬行以上并且持續(xù)增長單庫寫入 QPS 是否持續(xù)打到上千甚至更高連接數(shù)和 CPU 是否長期高水位核心業(yè)務(wù)是否已經(jīng)無法靠索引優(yōu)化、緩存、歸檔、讀寫分離來緩解最頻繁的查詢是否能以某一個固定鍵作為路由鍵收斂跨分片查詢比例是否足夠低團(tuán)隊是否有人能長期維護(hù)路由、雙寫、對賬、遷移這套體系如果這五條里有兩條以上不滿足我都建議先不要分。因為分庫分表是用復(fù)雜度換容量收益必須明顯大于復(fù)雜度才有意義。我以前接手過一個“號稱已分庫分表”的老系統(tǒng)不少表才幾百萬行卻因為路由鍵設(shè)計不合理每個查詢都在全分片掃描比單庫還慢最后又把那些表合并回去了。這個內(nèi)容后續(xù)還可以這樣擴展把路由表、雙寫同步、對賬任務(wù)做成可觀測的治理平臺或者進(jìn)一步思考冷熱混合存儲讓分片策略隨著數(shù)據(jù)生命周期動態(tài)調(diào)整。不過這些都是后話了先把上面這些問題想清楚分庫分表這條路才算真的走穩(wěn)了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品乱码久久| 国产乱伦视频污| 日韩激情啪啪| 亚洲图片视频小说| 色五月综合网| 欧洲精品二区| 肉丝网站91| 黄色免费网| 韩国三级三级BD在线| 精品无码秘 人妻一区二区| 天天日天天爽| 免费亚洲黄色视频在线观看| 大香蕉伊人75| 高清视频一区| 97资源站国产精品| 九九九九九九九精品视频| 久操视频这里只有精品| 欧美三级一级| 一本一道vs波多野结衣| 天天干人人乐| 国产日韩中文字幕欧美| 日韩三级久久久| 国产成人超碰在线| 精品少妇一区二区三区| 青女在线| 天天综合91在线| 欧美性性性| 色穴精品| 婷婷五月天激情小说| 一本一道vs波多野结衣| 26uuu性物| 传媒在线观看一区二区三区| 性性久久| 日日AV加勒比| 国产日韩精品一区二区三区| 好看的91视频| 日韩欧亚太美不卡| 深夜激情无码| 国产精品久久成人免费| 淫荡少妇免费| 奇米狠999| 欧美AB在线| 久区视频| 日本免费二区三区| 色色九区| 啪啪啪亚欧美视频| 97久久天天综合色天天综合色电影| 屌逼传媒| 欧美激色| 97超碰超欧美。| 青青青国产| 日本亚洲熟女视频| 成人国产精品三级A片| 日韩精品在线放| 床戏久久久av一区二区麻豆| 欧美亚洲特P| 综合五月天| 日夜伊人网| 国产精品福利视频| 亚洲情色欧美| 丰满人妻-区二区三区| 色综合91好| 老熟女综合网| 久悠悠av| 九九九九免费高| 艳美熟妇先锋一二三区| 亚州欧美总和| 99re视频在线播放青草| 性饥渴少妇av无码毛片| AV污污污污| 99久久久无码精品国产人| 天天综合中文字幕 91| 无码人妻精品酒店| 亚洲欧洲国产综合av| 欧美日韩精品一区二区三区高清| 亚洲五月婷| 首页中文字幕中文字幕免费| 国产成人无码高清| 97久久精品亚洲| 蜜桃久久久久久| 成人在线午夜视频一区| 天天色综合影视网| 中文字幕一区二区免费在线| 99热这里只有精| 美女淫穴| 91亚洲网站| 国产无码精品高清| 中文字幕五区| 精品久操| 天天噜| AAAA级日本片免费视频| 色色婷婷丁香| 热热热热日日漂亮永久永久国产日| 四虎影视国产精品| 久久中文字幕一区不卡| 五月久久HDAV| 天天肏夜夜肏| 91碰碰| 999狠狠综合| 亚洲黄日韩无码专区| 欧美第二页午夜| 老熟乱一区二区三区四区| 黑人美精品 A片| 欧插网站| 超碰美国| 99热只有这里有精品| 国产传媒1234区| 99热一区二区三区四区| 日本99视频| 亚洲国产精品久久久男人的天堂| 日韩性爱免费观看视频| 日本91白丝| 欧美日韩精品青青| 操人妻少妇中文| 久久久久成人网| 丁香五月综合| 999九九精品| 91精品国产91久久青草| 国产人伦精品一区二区三区 | 麻豆av一区二区三区| 激情文学小说一区二区 | 亚洲欧美经典一区二区| 99久久9| 久久丁香久草综合网| 97干在线视频| 嗯嗯,啊啊,国产精品| 黄站在线免费观看| 俺去俺来也在线www| 日本男人插女人的逼黄色| 亚洲无码视频免费在线观看网址! J?P?NESEHD熟女熟妇伦 | 国产超碰人人爽人人做| 午夜九九| 97资源超碰| 老女人综合网| 涩五月婷婷| 91天天爽| 宅男91视频在线播放| 国产97视频| 亚洲日韩AV视色| 久久欧美激情| 欧美熟女丝袜| 日本亚洲熟女视频| 97香蕉网| 超碰在线974| 老熟女乱伦一区| www.AV有限公司一区| 亚洲av国产av综合av卡| 久热这里| 亚洲少妇喷视频看| 青娱乐老司机视频| 三四中文字幕| 九九成人精品| 日本色色色视频| 91麻豆天美国产欧美高潮| 国产免费一区在线观看| 97Ai亚洲| 欧洲精品一二三在线| 日韩欧美中文日韩欧美色| 青草伊人久久| 第二页中文字幕| 少妇无码av专区线| 99国产精品免费| 久久系列| 青青草原综合久久大伊人精品| 亚洲丝袜诱惑| 伊人网在线点播| 水野优香在线观看| 中文字幕五月婷婷免费| 91天射| a一区二区三区乱码在线| 免费草草草草草视频| 天天综合色| 日韩一卡二卡三卡| 欧美人人天天网| 日本久久99| 天天躁日日躁成人字幕aⅴ| 日日玩天天干| 欧美玖玖爱免费玖玖| 精品.99999| 久久鲁干| 国产性爱在线视频一区二区| 久久久久久久久久9| 热久日综合| 99热网站| 久久超碰久| A片三级无码| 蜜臀久久99精品久久久电影| 老熟女91| AV色女综合| 亚洲资源网| 日本九九久久99播| 蜜奶av| 96AV精品| 青娱乐亚洲热| 骚逼高潮久久精品| 无套内射性感少妇视频| 极品尤物自安慰| 蜜臀一区二区三区在线| 成人a级高清视频在线观看| 2017天天插| 男女性扦B| 精品网站99999| 一区二区三区蜜桃成人撸久久东京热 | 精品综合久久久久久五月天| 91综合色噜噜| 亚州综合在线| 高潮精品| 欧美亚洲国产91在线| 性爱乱伦一区| 国产一区在线观看无码AV| 抽插无码高清一区| 国产亚洲在线| 97视频新免费| 77国产精品| 天天干天天日天天射黄色片| 国产熟女精品区| 久艹伊人精品综合在线| 黄色十八禁网站| 99re这里只有精品3| 红杏大香蕉| 久久女人一区二区三区| 免费看美国人人爽,人人操| 五月色综合| 调教熟妇 久久久久久| 丁香五月婷婷啪啪| 北条麻妃99精品青青久久| 天天影视激情欧美| 亚洲综合贴图91| 狠狠爱AV| 草草电影院| 欧美日韩插逼视频| 人人摸人人摸人人干| 无码聚合| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 高清无码在线播放网站| 亚洲制服欧美另类内射| 欧美熟女激情| 97欧美色综合| 色97干| 91综合中文字幕| 亚洲阿v天堂在线| 久久亚洲国产成人| 一起草精品人妻| 91九九| 日韩熟女精品无码专区一区二区| 秋霞成人一级在线观看| 国产三级日产三级韩国三级| 青青草原狼av| 日韩欧美天堂| 大香蕉在线86| 青青欧美| 五月天婷婷在线看 | 五月丁香色综合| 99re69| 亚洲图片视频小说| 视频黄色国产一级| AA特级绝黄| 丁香五月性| 少妇99成人麻豆| 老熟妇一区二区三区啪啪| 九九热只有精品| 91久久久亚洲| av天天在线观看| 亚洲自拍欧美国产首页网曝| 欧美在线电影| 性色av网站| 日本天天吊| 一本色道久久综合狠狠操| 桃花色综合影院| 人妻av在线| 久久日本熟女精品一区| 亚洲无码国产探花在线观看| 九九热最新| 日日做夜狠狠爱欧美黑人| 欧美亚洲图片| 三级三久久线久久99久目本WW| 亚洲av热热色| 91 欧美| 日韩久久激情精品| 夜夜 中文视频rt| 中文字幕欧美日韩三级| 俄罗斯一区二区视频在线观看| 人妻少妇av在线观看| 久久草视频污视频| 最新亚洲人成网站在线影院| 国产原创精品| 欧美色涩| 碰碰在线视频| 97超碰欧美精品| 91在线精品| 亚州欧美一区| 5278欧美一区二区三区| 91视频综合在线| 99re公开精品免费视频| 日韩国产九九精品一区二区三区毛片| 亚洲精品三区在线观看| 91jk色拍| 亚洲国产精品99久久久| 天天做天天爱天天爽AV| 亚洲国产精品V?在线播放| 亚洲色图久久成人| 国产丝袜美女在线一区| 97大色网| 强奸乱伦日韩AV| 四虎在线免费视频| 欧美性爱另类综合| 91亚洲人| 97在线免费看| 国产在线观看91精品一区| 97二区四区| 在线播放免费av福利片| 亚洲男人综合网| 久久成人午夜精品影院| 欧美瑟综合| 午夜男人一级A片7777| 亚洲图片小说欧洲| 中文字幕老熟妇黄色视频| 加勒比综合| 国产伊人自拍| 国产成年女人免费视频播放a| 大香蕉国产中文自拍| 成人性爱av| 啊啊啊啊啊啊啊在线| 在线强奷到舒服的无码视频| 99热销国产这里有精品| 丝袜狠狠草尤物人妻av91| 偷拍偷窥与盗摄视频专区| 992这里有精品| 国产精品96| 美国久久一二三四| 免费人成?大片在线播放| 无套后入双马尾| 精品四五区| 在线岛| 一本一道久久综合久久| 97色五月天完| 久久亚洲精品成人av| 超碰色老头| 欧美在线色图| 日本在线激情一区二区三区| 91啦人妻| 亚洲精品97p| 日韩传媒在线| 97精品国产97久久久| 翔田千里一区二区三区奶水| 丰满人妻一区二区三区色-百度| 91性高| 日韩无码专区| 乱伦av.com| 欧美天天射| 天天躁狠狠躁av| 国产在线不卡导航| 午夜高清成人在线视频| 午夜AV人气不卡| 密臀在线一区尤物| 日日日大屁股骚女人精品| 久久久com| 日韩国产乱子伦App| 久久这里只有精品9| 999熟女精品| 白丝少妇一区二区| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 日韩欧美天天爽爽爽天天爽爽| 99久久婷婷国产综合精品草原| 精品无码不卡视频| 波多野结衣AV无码一区| 嗯嗯不要视频| 九九九九热只有精品| 自拍亚洲综合| 91丝袜激情在线| 国产天美欧美| 天天操av懂色| 六月激情网| 欧美成va视频网站| 国模精品一区二区三区苹果色戒 | 东北女人被操| 亚洲一区二区 麻豆传媒| 欧美日韩国第一区| 天天日日舔舔| 91色综合激情| 亚洲人妻熟妇三十三区| 青青草国产亚洲精品久久| 亚洲欧美校园另类春色| 超91综合网| www.婷婷六月天| 9久精品| 亚洲aV无码成人在线观看| 久久国产乱子伦精品免费女人| 亚洲不卡三级手机播放| 白丝被操91| 91在线精品一区二区三区| 九九九九九九视频免费| 极品色| 亚洲天天更新| 超碰成人人人爽人人爽| 欧美日韩午夜精品一区二区三区| 97资源视频| 国产亚洲精品A在线观看下载| yw尤物av无码点击进入麻豆| 国产成人自拍视频视频| 日韩Va亚洲va欧美Ⅴa久久| 美女尤物人人操| 黑人嘿嘿嘿超爽免费视频| 大香蕉久| 久久侵犯人妻爽爽爽| 99国产精品人妻人伦| 高潮内射在线| 西西美女视频网| 色网综合网| 国产少妇内射| 夜夜嗨视频| 你懂的在线观看区国产 | 日韩操呦呦影院在线观看| 操逼短片| 午夜操一操| 涩涩这里只有精品视频| 99久久久久| 丰满少妇一区二区三区专区| 91天美传媒在线| 青青草国产一区二区三区| 东京热,男人的天堂| 一区二区三区高清| 久久av一级av少妇av高潮| 99热这里只有精品地址| 欧美一区二区传媒| 精人妻一区二区三区| 亚洲日韩av专区无码| 18禁精品网站在线看| 色综合久| 亚洲一二三| 密臀在线视频| 丰满人妻一区二区三区性色| 天美麻花大全视频| 91大神电影天堂| 亚洲区限制级 99| 加勒比综合网| 高清无码国产亚洲| 动漫区日韩区欧美区| 97精品一区二区视频在线观看| yaouchengrenav| 女人高潮大叫一级毛片| 激情终合网| 欧美综合1性辶| 无码区蜜乳| 黑丝内射一区二区三区| 国产9熟妇视频网站| 中国AV美女| 日本特黄f c2| 欧美肥臀在线| 乱欲一区二区| 91九九九小逼| 91无码西班牙视频在线| 久久国产视频性吧 | 凹凸 69堂 在线播放| 在线播放一级无码视频| 久久久999网站| 三四中文字幕| 日日爽夜夜爽| 国产农村妇女毛片精品久久| 中国国国产一级特黄毛片| 亚洲精品欧洲精品| 国产精品直播在线观看直播| 青草青青久久久久久国产| 国产日韩美女小穴视频网站不卡| 久久九九国产精品| 欧美熟女丝袜| 探花在线免费观看视频国产一区| 97超碰免费人人性爱| 中文操逼字幕| 日韩在线女优天天干| 亚洲精品欧洲色| 在线99热| 国产精品欧美在线观看| 亚洲夜色在线| а√天堂资源官网在线资源| 撸撸成人在线视频| 欧美亚洲色图另类国产| 91nbbbbbb| 又大又长又粗又爽又黄| 精品中文日韩字幕视频| 狠狠色噜噜狠狠狠狠狠色综合久久| 传媒免费一区二区三区| 亚洲第一狼人丝袜美女另类| 欧美在线视频观看一二三四区高清| 色操逼网| 国产自偷| 日本免费中文一区二区三区四区 | AV天堂国产| 熟女一区二区三区| 欧美强奸一区二区诱惑| 大色网久久| 啊…啊…操我用力操我| 人妻一区二区三区四区视频| 亚洲欧洲无码97久久精品| 一级特黄aaa大片在线观看成人一级片在线观看 | 91欧洲国产成人久久精品网站| 欧洲综合视频| 免费一级黄色录像影片| 激情视频图片| 看黑人AV不卡| 国产黄色影片在线观看| 久久精品女同亚洲女同13| 婷婷综合激情| 久久草草亚洲蜜桃臀| 日韩 欧美 国产 麻豆| 日韩欧美字幕亚洲一区二区| 风月影院十八禁| 欧州激情视频在线一区二区| 黄片www.| 黑人精品XXX一区一二区| 大香蕉伊然在亚洲91| 激情深爱五月天| 久久久精品91八戒| 久久9精品| 色女综合| 激情综合久久| 国产精品人妻熟女aⅴ| 亚洲区 欧美区| 91天堂视频| 午夜男女爽爽爽在线视频| 人妻少妇久久中文字幕一区二区 麻豆| 一区二区不卡| 天天综合色电影| 丝袜大香蕉| 日本欧美一区二区三区免费| 久久久96| 国产丁香精品露脸视频| 免费网色网站| 中文无码一二三区| 综合啪啪| 日韩av不卡在线看| 人妻少妇久久中文字幕一区二区 麻豆 | 欧美亚洲首页| 免费97视频| 91九色丨国产丨爆乳| 国产自偷自拍一区| 韩国一级婬片A片无码天美| 日骚逼视频| 97在线欧| 秋霞鲁丝午夜无码一区二区三| 人妻久久久久久久久久久久久久久| 乱伦a片视频| 国产精品美女久久久久久网站| 亚州高清AV| 蜜桃一区二区三区| 欧亚久久偷拍视频| 4141514逼喷水三级片| 美日韩成人| a级成人毛片免费视频高清| 久久无码一区二区二三区性色| 99re久久| 蜜臀99久| 国产97在线 | 亚洲| 丝袜美腿丝袜| 国产麻豆91欧美一区二区久久婷婷国产精品| 国产青视频| 不卡九肏| 884t在线| 久久99精品九九久久久婷婷| 欧美 牲| 97视频7| 欧美色天堂网在线视频| 天天看片麻豆| 91精产一区二区三区| 中文字幕久久精视频久久大全| 啊啊啊啊啊操我视频| 日韩精品.久久精品.AV女优.天美传媒| 狠狠色综合网| 一区二区偷拍拍视频| 久久五月份| 天综合网| 97超碰天天爱天天爱| 久久欧洲| 91美女視頻| 四季av一区二区凹凸精品小说| 欧美性五月| 激情小说激情视频| 粉嫩av在线| 国产精品久久久久久久久久梁医生| 日韩强奸av| 伊人久久大香线蕉无码| 久久草在线综合视频| 五月婷婷性爱| 色好看av| 天天干1区2区在线| 久久久久久久9999| 国内毛片欧美香蕉精品| 日韩人妻播放| 婷婷五月天影院| 欧美日本久久精品一区 | 少妇色综合| 青青草一本道福利视频| 精品视频在线观看| 激情五月天插| 久久久九九网站| 极品色社| 五毛骚逼极品美女怕怕| 日逼97| 亚洲另类欧美精品| 亚洲天堂无码| 四虎AV无码| 欧美91色| 99久久亚洲精品无码毛片潘甜甜| 亚洲成人无码影院| 天天综合网一91网| 色综合20p| 亚洲毛片基地专区| 特级毛片特黄久久免费看| 九九九九九九九精品视频| 操b网站亚洲无码| 久久精品国产97欧美精品亚洲 | 久9精品| 亚洲小电影免费涩涩成人在线高清 | 免费操逼91| 国产精品亚洲一区二区三区四区| 日韩精品三区四区| 青青草在线视频播放器| 国产黄色影片在线观看| 97人肏| 久久九九精品一区二区| 成人自拍三级在线观看| 少妇超碰在线| 超碰97人人乐| 日本天天操| 69综合网| 男人天堂网站| 大香蕉综合网| 欧美桃色网| 岛国片国产成人亚洲播放| 欧美熟妇乱码在线一区| 色色婷婷五月| 欧美在线干| 黑人白女精品一区| 鸥美精品一区二区久久婷婷| 精品九九九九九九| 久色网| 人人妻人人色一区二区三区| 乱伦av国产| 一区二区 电影 亚洲| 五月婷在线| 狠狠干91| 亚洲午夜免费狠狠干| 乱操9999| 国产三区免费在线观看| 亚洲污污网站| 在线岛| 夜夜国产一区| 国产又黄又爽又刺激久久久久久 | 日本999精品视频| 亚洲网站一区二区在线| 久久久久久久极品香蕉视频| 啊v在线观看视频| 色色色网站| 色香综合| 久草久热| 日本操逼aaaaa| 婷婷五月天久久精品视频一区二区三区| 91精片| 亚洲欧洲小说图片视频 | 欧美黄片视频在线观看免费| 亚洲,欧美,综合网| 日本一级一级一级一级| 日韩精品-原创伙伴| 国产成人亚洲精品自产在线| 亚洲天天操| 好吊色一区| 国产91乱伦| 激情文学亚洲| 激情丁香五月婷婷| 加勒比伊人| 天天摸天天碰天天添青青| 国产精品一区av在线| 久久人妻少妇| 色墦五月丁香| 人人弄人人摸| 日本孕妇孕交| 9久精品| 国产综合日韩伦理| 操逼999| 欧美性生活综合| 97综合国产| 亚洲男人天堂2016| 极品极品色影院| 欧美天天性| 99只有精品| 婷婷六月色开| 欧美日韩国产中文超碰| 99久久久久久亚洲精品不卡| 亚洲日韩欧美一区二区| 五月天综合在线| 久久超碰国产一区二区三区| 综合激情一一91| 亚洲色吧网| 国产成人精品无码久久| 久久久四区| 久草热制服丝袜在线观看 | 男人天堂综合| 天天操夜夜操| 久久成人午夜精品影院| 国产精品网址| 操少妞在线视频| 欧美精品成人亚洲| 国产亚州精品美女久久久免费| 国产97免费视频| 亚州欧美一区| 热天堂一区二区| 欧美劲爆视频一区二区| 精品国产Av无码久久久伦古装 | 日韩国产乱子伦App| 69精品| 日韩特一级久久| 欧美日韩淫加| 综合熟女| 黄色视频特级毛片| 级做a爱无码性色永久免费| 九九操久久国产免费视频| 久久久性爱视频| 区日韩亚洲乱码av电影| 国产尹人在线视频免费| 亚洲国产欧美另类自拍| 91精品人| 蜜臀久久99精品久久久久久婷婷 | h无码动漫在线观看| 国产狂喷潮在线精品| 亚洲黄色| 日韩无码第3页| 亚洲精品黑丝| 亚洲凸凹超碰成人| 青青国产在线拍揄自揄拍| 95精品在线| 色色激情| 熟女乱伦二区| 国产乱伦一二三区| 91操人| 亚洲啪啪视频一区二区| 午夜乱轮操逼视频免费看| 精品一区二区国产日韩| 加勒比综合| 91天美| 欧美日韩1234| 欧美性第一页| 白嫩少妇| 最新日本中文字幕| 在线视频免费观看午夜| 91夜色| 成人毛片免费| 成人小说另类在线| 91一区二区三区蜜桃| 三级日本一区二区三区| 精品人妻一区二区三区四区石在线| 国产传媒日韩| 一区二区乱码福利| 一级性爱视频免费在线| 欧美日韩大香蕉| 亚洲乱色熟女一区| 欧美国产欧美在线观看| 亚洲中文一区二区三区| 日本www操操操| 3p国产欧美99热| 久久激情五月| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 日韩免费av片高清无码| 9丨亚洲一区二区在线| 天天看天天在线精品| 亚洲av综合色区无码一| 偷看洗澡一二三区美女| 91狠狠色丁香婷婷综合久久精品| 亚洲天堂男人在线| av在线人气| 国产十八禁视频| 亚洲人精品久久久| 2017亚洲天堂| 18禁免费视频| 婷婷五月成人| 欧美色66| 伊人久大| 97在线视频观看| 一级片在线观看高清无码| 大香蕉一线视频| 欧美亚州手机在线| 大香网伊人久久综合网eew| 热热色色综合| 屁股久久久久久久久久| 秋霞操逼片| 亚欧高清在线| 啊啊啊啊啊操我视频| 亚洲人码13| 五十路熟女人妻一区二区三区四区五| 日日噜噜夜夜狠狠视频无| 国产精品一区二区黄片| 午夜天堂网| 超碰吊日色| 亚洲精品一区二区精品| 丁香五月天激情| 97看操| 99999re| 伊人久操| 超碰99热中文字幕| 欧美se综合| 精品国产丝袜一区二区三区乱码| 亚洲中文字幕97久久精品少妇| 污污污8888| 中文字幕熟女人妻丝袜| 五月天婷精品激情| 宗合情欲网| 91精品人妻一品二品三品| 亚洲精品尤物yw在线影院| 99色视频| 自拍第一页| 大香蕉一区二区在线观看.| 91综合在线| 国产和美国毛片| a片 xxxx受爽视频| 五月天色图| 精品妇操一区二区三区| 国产超碰AV在线精品| 久久一二三四五六七八九区区区 | 激情AV| 91青青在线视频| 啪啪啪东京| 色呦呦、国产精品| 九九九九九九九九九国产精品 | 中文字幕美女91| 天天影视色香色欲| 欧美日韩小说| 69精品久久久久中文字幕| 亚洲熟女乱熟乱熟妇综合网二区| 操逼操2| 精品久久久无码| 99久在线精品99re8蜜桃| 日本人人操人人操| 亚洲国产中文字幕| 国产精品久久久久亚洲av| 亚洲精品欧洲精品| 91人精品妻入口| 欧美少妇第一页| 精品国产一区探花在线观看| 欧美日韩m| 免费国产视频| 在线啊啊啊啊| 色网站导航大全| 亚洲男人天堂网久久| 久久夜夜| 大香蕉 222| 欧美成人免费在线观看| 欧美内射少妇| 国产又色又粗又黄又爽| 久久綜合很很很| 无码人妻精品一区二区中文| 亚洲 另类 丝袜 自拍 动漫| 93人人操人人| 欧美综合自拍亚洲综合图| 国产激情在线| 青青青在线高清视频在线一二三四区 | 嫩草 人人网精品| 最近2018中文字幕在线高清第一页| 艾草av| 操逼免费视频无码国产| 大屁股国产在线视频| 凸凹视频在线观看| 欧美九九九| 日韩偷拍色图| AA级电影三区| 亚洲精品久久一区二区三区蜜桃臀| 人人摸人人叼| 91亚洲人| 欧美后入视频| 亚洲最大无码中文字幕网站| 天天综合官网| 国产美女91视频| 日本一级二级三级网站| 欧美92| 熟妇一区二区三区| 国产精品久久久久久久黄无码| 亚州五月| 午夜呻吟欧美| 亚洲一卡2卡3卡4卡乱码网站| 99少妇| 安徽熟妇视频| 亚洲熟女av日韩熟女| 久操免费在线| 九九九九欧美| 免费观看欧美日韩操逼视频| 99re免费视频精品全部| 日本亚欧爱爱| 久久综合18p| 八人操人人摸人人看| 超碰97综合| 超碰97最新人妻| 一起草av| 艹精品| 久夜视频| 夜色97| 高清不卡国产| 五月天玖玖资源站| A级在线视频| 青青青草原| 亚洲色图a| 色五月激情网| 国产精品亚洲天堂网址| 激情一区二区| 日本 情色 1区2区3区| 成人AV素股で擦久久| 欧美日韩香蕉| 精品国产三级av韩国在线| 少妇九九九九| 91AV天美在线视频| 亚洲男人天堂2012| 久久性爱视频| 另类小色呦| 人妻啪| 国产自制av蜜乳| 天天躁日日躁狠狠狠躁| 国产女人9999| 熟女自慰久久久| 日韩素人无码一区二区三区三州| 天天日天天干天天整| 8x福利精品第一福利视频导航| 九九九九9999| 成人性交免费视屏| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 国产日韩欧美| 91中文精品日韩欧美在线| 欧美色棕合| 丁香五月激情婷婷| 粉嫩绯色AV一区二区在线| 亚洲国产av中文字幕久久| 国产精品午夜AV完会免费| 无码人妻一区二区三区四区老鸭窝| 蜜桃精品一区二区三区久在线| 九草在线大香蕉| 亚洲欧美另类少妇精品| 国产白领连续中出在线观看| 殴美,日韩国产伦精品| 99啪啪| 啪啪91| 亚洲综合色网| 九九热精品视频在线观看| 国内精品伊人久久久久影院会| 人人操人人操人人操人人操人人操人人人11.CM| 国产成人欧美精品在线| 久草加勒比一区在线| 婷婷五月天激情四射| 五十路熟女人妻一区二区在线观看| 欧美成97爱| 欧姜老司机| 欧美宗合色| 亚洲丝袜综合| 蜜臀久久99精品久久久电影| 久久日本熟妇熟色一区| 国产强奸乱伦第1页| 女性喷水高潮在线观看| 亚洲男人综合| 亚洲欧洲综合成人av一区| 99国产在线 精品 视频| 久久毛卡| 国产18精品亚洲精品| 国模吧 一区二区三区| 国产精品一区二区黄片| 久热超碰| 韩国女主播青草福利视频| 人妻精品4K4K4K4K4| 丁香婷婷激情五月天无毒不卡| 亚洲欧美日韩电影网站一区 | 亚洲色欲天天人妻无码系列专区| 婷婷91| 狼天天狼天天大香蕉| 欧美老妇综合网| 偷拍色图| 男人天堂新在线| 一级片视频啪啪| 日日操丁香五月天| 久久激情视频| 欧美日日夜夜| 综合激情一一91| 麻豆成人AV| 亚洲AV无码乱码| 亚洲一本色道中文无码aV天美| 色色色五月婷婷| 国产无遮挡| 久久久内射良家| 97在线看| 淫荡少妇免费| 青青草中文-久久青草精品一区二区三| 91N五十路| 九九九九免费视频| 久艹日日日| 中文字幕91页| 人妻天天夜夜爽一区二区| 亚洲区限制级| 亚洲性天堂| 人妻献身系列第54部| 色综合九九| 欧美日韩一干二干| 另类小说欧美激情校园春色| 91香蕉视频在线观看免费| 99热久| 91精品国久久久久久无码| 天天综合青苹果| 中文字幕在线观看永久| 91 亚洲 欧洲| 九九九九九九九九九九九蜜桃| 91综合在线| 乱色视频中文字幕| 使劲用力艹少妇视频一区二区| 欧美色另类| 极品美女福利在线观看| 天天影视激情欧美| 欧美日韩人妻精品系列一区二区三区| 日本色色视频网站| 亚洲中文字幕噜噜噜久久久| 丝袜色综合| 一二三四视频中文字幕在线看| 丁香五月婷婷色| 啊啊啊啊啊啊啊啊啊在线观看| 9久在线视频只有精品| 色婷婷综合网站| 欧美天天综合站| 无码一区免费在线不卡| 久热无码| 欧美人妻一区二区| 欧美人与性动交a美精品| 国产精品久久久久久夜夜夜| 无码粉嫩白虎一线天b区| 天堂中文日本在线观看| 磁力99AV| 超碰免费人妻人人| 无码99| 清纯唯美综合| 久久久国产三级黄色片| 在线五区| 日本高清_区二区三区| 亚洲欧洲色情高清| 日韩激情无码影院| 国产怡红院| 亚洲激情片| 天天看综合网| 97欧美视频| 亚州色交| 蜜臀中文字幕| 欧美不卡在线美女| 蜜臀99久久| 偷拍 精品 另类 四区| 九九九九精| 韩国一区二区精品亚洲| 97色色色| 日韩欧亚太美不卡| 91人精品妻入口| 91嫩草欧美| 亚洲国产91精品一区二区久久| 天堂资源欧美| 色综合V| 91爱做| 333kkkk·亚洲com久久| 青青操视频在线| 激情啪啪拍91| 91制服丝袜| 精品国产乱码久久久久久影片| 久久久久久九九九| 九九热男人天堂| 欧美高清18A片| 最新av在线| 青青操狠狠撩| 欧美色图欧美| 亚洲图片欧美91N| 无码动漫av中文字幕| 天天干天天日天天射黄色片| 2020中文在线一区二区三区| 懂色av中文字幕一区二区三区天美| 久久久久久久久成人av解说| 亚洲天在线| 日韩欧美亚洲国产日韩| www.91人妻.com| 超碰在线成人电影| 偷拍 精品另类 凸凹了四区| 日韩免费在线观看不卡| 国产在线精品电影观看| 91超碰人人操| 欧美色999| 久久伦理视频久久大香蕉视频| 亚洲第一成人影院色播| 校园春色五月天| 亚洲91网站| 五月天婷婷成人网| 成人精品久久久午夜福利| 夜色97| 欧插网站| 日本一区二区三区四区免费观看| 加勒比aⅴ| 蜜臀99999| 中文字幕成人| 欧美性爱18观看| 人妻少妇无码 | 婷婷性网| 亚洲av热热色| 亚洲中文字幕精品久久久久久直播| 日本视频在线中文字幕| 一级黄碟| 少妇99成人麻豆| 人妻在线视频| 国产精品com| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 91亚洲黑人| 大色综合网| 日本性爱视频一级| 亚洲资源一区| 天美传媒av一区二区| 怡红院视频在线| 无遮挡h肉动漫在线观看| 91人精品妻入口| 97国产精品一区二区传媒公司| 欧美亚洲涩涩| 97视频网站在线观看| 亚欧韩av| 日本成人A片免费看| 中文字幕一区二区视频在线观看| 亚洲文学偷乱拍啪啪啪啪| 91丝袜美腿网站| 五月天偷拍| 性爱乱伦一区| 思思热免费在线视频| 亚洲视频中文一区| 伦理第一页| 丝袜视频网国产90| 日日摸日日碰| 青青操在线亚洲视频观看欧美在线| 啊啊啊好爽快点啊啊啊嗯嗯| 欧美,日韩,亚洲视频| 熟妇的味道HD中文字幕| 日韩av无码网站| 福利视频网站| 狠狠入| 情色大香蕉| 欧美综合色综合| 中文字幕在线2| 欧美韩国你懂得在线 | 亚洲成A∨人影院在线欢看| 国产性爱在线视频一区二区| 国产家庭乱伦表演| 午夜舔阴达高潮视频免费看| 97超碰色色| 97 色综合| 一区二区高清视频| 日韩一二三区| 亚洲色阁| 91 丝袜在线播放| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 色九色久| 一本色道久久综合亚洲二区三区| 日韩色图 一区二区| 亚洲drav色图| 久久亚洲天堂| 国产精品久久久久999| 亚洲国产亚洲天堂| 亚洲91射| 密臀在线视频| 亚洲天堂加勒比| 男人午夜天堂| 人妻精品免费一二三区| 強姦亂倫a|