精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

杭州某大廠:MySQL 連環問

數據庫 MySQL
隨著用戶量的激增和時間的堆砌,存在數據庫里面的數據越來越多,此時的數據庫就會產生瓶頸,出現資源報警、查詢慢等場景。

[[395970]]

本文轉載自微信公眾號「yes的練級攻略」,作者是Yes呀 。轉載本文請聯系yes的練級攻略公眾號。

大家好,我是yes。

MySQL 面試題又更新啦!

請繼續接招。

說說分庫分表?

隨著用戶量的激增和時間的堆砌,存在數據庫里面的數據越來越多,此時的數據庫就會產生瓶頸,出現資源報警、查詢慢等場景。

首先單機數據庫所能承載的連接數、I/O及網絡的吞吐等都是有限的,所以當并發量上來了之后,數據庫就漸漸頂不住了。

再則,如果單表的數據量過大,查詢的性能也會下降。因為數據越多 B+ 樹就越高,樹越高則查詢 I/O 的次數就越多,那么性能也就越差。

因為上述的原因,不得已就得上分庫分表了。

把以前存在一個數據庫實例里的數據拆分成多個數據庫實例,部署在不同的服務器中,這是分庫。

把以前存在一張表里面的數據拆分成多張表,這是分表。

一般而言:

  • 分表:是為了解決由于單張表數據量多大,而導致查詢慢的問題。大致三、四千萬行數據就得拆分,不過具體還是得看每一行的數據量大小,有些字段都很小的可能支持更多行數,有些字段大的可能一千萬就頂不住了。
  • 分庫:是為了解決服務器資源受單機限制,頂不住高并發訪問的問題,把請求分配到多臺服務器上,降低服務器壓力。

你們一般怎么分庫的?

一般分庫都是按照業務劃分的,比如訂單庫、用戶庫等等。

有時候會針對一些特殊的庫再作切分,比如一些活動相關的庫都做了拆分。

因為做活動的時候并發可能會比較高,怕影響現有的核心業務,所以即使有關聯,也會單獨做拆分。

那你覺得分庫會帶來什么問題呢?

首先是事務的問題。

我們使用關系型數據庫,有很大一點在于它保證事務完整性。

而分庫之后單機事務就用不上了,必須使用分布式事務來解決,而分布式事務基本的都是殘缺的(我之前文章把分布式事務匯總了一波,后臺搜索分布式事務就有了)。

這是很重要的一點需要考慮。

  • 連表 JOIN 問題

在一個庫中的時候我們還可以利用 JOIN 來連表查詢,而跨庫了之后就無法使用 JOIN 了。

此時的解決方案就是在業務代碼中進行關聯,也就是先把一個表的數據查出來,然后通過得到的結果再去查另一張表,然后利用代碼來關聯得到最終的結果。

這種方式實現起來稍微比較復雜,不過也是可以接受的。

還有可以適當的冗余一些字段。比如以前的表就存儲一個關聯 ID,但是業務時常要求返回對應的 Name 或者其他字段。這時候就可以把這些字段冗余到當前表中,來去除需要關聯的操作。

那你們怎么分表的?

分表其實有兩種:

  • 垂直分表
  • 水平分表

垂直分表,來看個圖,很直觀:

垂直分表就是把一些不常用的大字段剝離出去。

像上面的例子:用戶名是很常見的搜索結果,性別和年齡占用的空間又不大,而地址和個人簡介占用的空間相對而言就較大,我們都知道一個數據頁的空間是有限的,把一些無用的數據拆分出去,一頁就能存放更多行的數據。

內存存放更多有用的數據,就減少了磁盤的訪問次數,性能就得到提升。

水平分表,則是因為一張表內的數據太多了,上文也提到了數據越多 B+ 樹就越高,訪問的性能就差,所以進行水平拆分。

其實不管這些,淺顯的理解下,在一百個數據里面找一個數據快,還是在一萬個數據里面找一個數據快?

即使有索引,那厚的書目錄多,翻目錄也慢~

那分表會有什么問題?

垂直分表還好,就是需要關聯一下,而水平分表就有點麻煩了。

  • 排序、count、分頁問題

如果一個用戶的數據被拆分到多個表中,那查詢結果分頁就不像以前單張表那樣直接就能查出來了,像 count 操作也是一樣的。

只能由業務代碼來實現或者用中間件將各表中的數據匯總、排序、分頁然后返回。

像 count 操作的結果其實可以緩存下來,然后每次數據增刪都更新計數。

  • 路由問題

分表的路由可以分:

  • Hash 路由
  • 范圍路由
  • 路由表

Hash 路由,其實就是選擇表中的某一列,然后進行 Hash 運算,將 Hash 運算得到的結果再對子表數進行取模,這樣就能均勻的將數據分到不同的子表上。

這跟 HashMap 選哪個桶是一樣的原理。

優點就是數據分布均勻。

缺點就是增加子表的時候麻煩,想想 HashMap的擴容,是不是得搬遷數據?這個分表也是一樣的,我們可都知道,數據遷移一件麻煩事!

范圍路由,其實很簡單,可以是時間,也可以是地址,表示一定的范圍的即可。

比如本來一張 User 表,我可以分 User_HZ、User_BJ、User_SH,按照地名來劃分 User。

再比如 log 表,我可以將表分為 log_202103、 log_202104,把日志按照年月來劃分。

優點就是相對而言比較容易擴展,比如現在來個 GZ,那就加個 User_GZ。如果到了 5 月,那就建個 log_202105。

缺點就是數據可能分布不均勻,例如 BJ 的用戶特別多或者某個月搞了促銷,日志量特別大,等等。

路由表,就是專門搞個表來記錄路由信息,來看個圖就很清楚了。

從圖中我們就能得知,UserID 為 2 的用戶數據在要去 User_3 這個用戶表查詢。

優點就是靈活咯,如果要遷移數據,直接遷移然后路由表一改就完事兒了~

缺點就是得多查一次,每次查詢都需要訪問路由表,不過這個一般會做緩存的。

  • 全局主鍵問題

以前單表的時候很簡單,就是主鍵自增,現在分表了之后就有點尷尬了。

所以需要一些手段來保證全局主鍵唯一。

還是自增,只不過自增步長設置一下。比如現在有三張表,步長設置為3,三張表 ID 初始值分別是1、2、3。這樣第一張表的 ID 增長是 1、4、7。第二張表是2、5、8。第三張表是3、6、9,這樣就不會重復了。

UUID,這種最簡單,但是不連續的主鍵插入會導致嚴重的頁分裂,性能比較差。

分布式 ID,比較出名的就是 Twitter 開源的 sonwflake 雪花算法,具體就不展開了,不然就又是一篇文章了,簡單點利用 redis 來遞增也行。

那上面說的路由問題的 Sharding-Key 如何設計呢?

我們分表是按照某個列來拆分的,那個列就是 Sharding-Key,查詢的時候必須帶上這個列才行。

例如上面提到的 log_202103,那表明查詢條件一定得帶上日期,這樣才能找到正確的表。

所以設計上得考慮查詢的條件來作為 Sharding-Key。

舉個常常會被問的訂單表 Sharding-Key 例子。

你想著查找訂單的時候會通過訂單號去找,所以應該利用訂單 ID 來作為 Sharding-Key。

但是你想想,你打開外賣軟件想查找你的歷史訂單的時候,你是沒有訂單 ID 的,你只有你的 UserID,那此時只能把所有子表都通過 UserID 遍歷一遍,這樣效率就很低了!

所以你想著那用 UserID 來作為 Sharding-Key 吧!

但是,商家呢?商家肯定關心自己今天賣了多少單,所以他也要查找訂單,但他只有自己的商家 ID,所以如果要查詢訂單,只能把所有子表都通過商家 ID 遍歷一遍,這樣效率就很低了!

所以 Sharding-Key 是滿足不了所有查詢需求的,只能曲線救國。

一般做法就是冗余數據。

將訂單同步到另一張表中給商家使用,這個表按商家 ID 來作為 Sharding-Key,也可以將數據同步到 ES 中。一般而言這里的數據同步都是異步處理,不會影響正常流程。

最后

今天的面試題主要是分庫分表相關的,基本上常問的都涵蓋了。

MySQL 面試題未完,持續更新~

 

責任編輯:武曉燕 來源: yes的練級攻略
相關推薦

2021-10-26 15:56:57

kafka數據平臺,

2023-02-26 02:00:36

OpenFeign接口實現類

2024-03-13 13:56:11

openFeignHttp服務調用

2023-03-08 09:03:55

2021-11-11 17:34:54

數據庫索引面試

2023-04-26 09:16:17

2020-05-14 17:41:40

Redis 6.0多線程數據庫

2021-06-04 14:38:12

網絡通信TCP揮手

2022-03-25 09:01:36

Spring循環依賴面試

2021-11-08 14:10:37

分布式Spring鏈路

2019-05-29 15:17:43

TCPHTTPSSL

2021-07-21 09:15:27

MySQL數據庫面試

2023-06-07 15:29:33

MySQL事務面試

2015-09-22 20:19:43

2022-04-01 12:40:13

MySQL數據庫

2020-09-24 06:39:58

MySQL數據庫

2020-09-08 07:01:01

調度算法

2021-01-18 08:25:44

Zookeeper面試分布式

2021-09-08 07:58:58

字節系統雙寫

2023-04-26 07:40:34

MySQL索引類型存儲
點贊
收藏

51CTO技術棧公眾號

成人黄色一级大片| 91精品国产自产在线| 屁屁影院国产第一页| 国模套图日韩精品一区二区| 国产精品区一区二区三| 成人av播放| 少妇高潮av久久久久久| 久久精品欧美一区| 精品网站999www| 色片在线免费观看| jizz一区二区三区| 欧美激情在线一区二区| 成人欧美一区二区三区视频 | 午夜在线观看视频18| 国产精品毛片久久| 亚洲激情在线观看视频免费| 污色网站在线观看| 九色porny丨入口在线| 国产精品黄色在线观看| 精品国产福利| 国产av无码专区亚洲av麻豆| 视频在线观看91| 欧美成人h版在线观看| 国精产品一区一区三区免费视频 | 亚洲电影在线| 日韩一区二区福利| ass精品国模裸体欣赏pics| 精品国产伦一区二区三区观看说明| 欧美日韩亚洲91| 少妇久久久久久被弄到高潮| 在线日本中文字幕| 久久影视一区二区| 国产亚洲第一区| 国内精品久久久久久久久久| 毛片基地黄久久久久久天堂| 91超碰中文字幕久久精品| 麻豆视频在线免费看| 成人羞羞视频播放网站| 亚洲欧美激情一区| 日韩欧美亚洲区| 天天夜碰日日摸日日澡性色av| 黄色在线网站| 91伊人久久大香线蕉| 成人综合av网| 国产哺乳奶水91在线播放| 久久精品国产精品亚洲红杏| 日韩免费在线免费观看| 91video| 亚洲片区在线| 韩国日本不卡在线| 国产亚洲欧美精品久久久久久| 综合久久一区| 欧美成人精品在线| 日韩视频中文字幕在线观看| 久久美女视频| 日韩中文有码在线视频| 四季av中文字幕| 成人影院在线| 中文字幕日韩综合av| 蜜乳av中文字幕| 成人同人动漫免费观看| 中文综合在线观看| 女人黄色一级片| 日韩国产一区二区三区| 中文字幕欧美日韩| 五月天激情图片| 国产精品1000部啪视频| 国产精品18| 日韩无一区二区| 丰满少妇xbxb毛片日本| 超碰地址久久| 精品一区二区电影| 高潮毛片无遮挡| 精品久久美女| 久久久精品在线观看| 18岁成人毛片| 99精品欧美| 国产成人免费av电影| 成人免费一区二区三区| 国产一区二区在线看| 99在线免费观看视频| 亚洲人午夜射精精品日韩| 久久精品欧美日韩| 成年人免费观看的视频| 成人福利影视| 色偷偷久久人人79超碰人人澡| wwww.国产| 欧美日韩黄网站| 日韩成人av网| 手机看片国产日韩| 国内揄拍国内精品久久| 日本成人黄色片| 国产又粗又大又爽| www.色综合.com| 亚洲人体一区| 国产免费拔擦拔擦8x高清在线人 | 精品人妻一区二区三区潮喷在线| 老司机一区二区| 国产伦精品一区二区三区视频免费| 日av在线播放| 亚洲精品中文在线观看| 久久久久久久久久久视频| 久久91视频| 亚洲国产精品电影| 日韩av手机在线免费观看| 夜久久久久久| 91理论片午午论夜理片久久| 欧美中文在线视频| 在线观看成人毛片| 可以看av的网站久久看| 97在线电影| 国产午夜在线观看| 亚洲综合激情小说| 亚洲综合日韩欧美| 婷婷综合福利| 色综合导航网站| 中文av免费观看| 91美女视频网站| 99久久99久久精品| 欧美视频精品| 亚洲男人的天堂网站| 久久久久人妻一区精品色欧美| 三级欧美韩日大片在线看| 国产精品二区在线| 国产鲁鲁视频在线观看特色| 在线一区二区三区四区| 波多野结衣先锋影音| 中文字幕亚洲精品乱码| 国产日韩在线精品av| 日本电影一区二区在线观看| 亚洲国产精品自拍| aaaaaaaa毛片| 艳女tv在线观看国产一区| 国产精品99久久久久久久久| 香蕉久久国产av一区二区| 一区二区高清免费观看影视大全| 亚洲精品免费一区亚洲精品免费精品一区 | av中文字幕在线看| 欧美日韩视频不卡| 老熟妇一区二区| 亚洲黄页一区| 岛国一区二区三区高清视频| 手机av在线播放| 欧美一卡2卡三卡4卡5免费| 波兰性xxxxx极品hd| 免费黄网站欧美| 日韩一二三区不卡在线视频| 深夜成人影院| 亚洲一二在线观看| 69亚洲精品久久久蜜桃小说| 开心久久婷婷综合中文字幕| 99精品国产一区二区三区不卡| 神马午夜伦理影院| 国产日韩欧美中文在线| 九九热精品在线| 亚洲第一色视频| 亚洲午夜国产一区99re久久| 亚洲精品国产成人av在线| 精品动漫3d一区二区三区免费版 | aaa国产视频| 亚洲美女屁股眼交3| xxxx国产视频| 亚洲欧洲日本mm| 九九热久久66| 三级成人在线| 久久激情视频久久| 国产不卡av在线播放| 亚洲一二三四在线| 国产在线观看无码免费视频| 久久视频一区| 亚洲一区精彩视频| 天堂av一区| 国内揄拍国内精品少妇国语| 涩爱av在线播放一区二区| 在线观看视频一区| 日本一级特级毛片视频| 国产成人免费高清| 免费高清在线观看免费| 成人免费电影网址| 成人3d动漫一区二区三区91| 一二三四视频在线中文| 中文字幕日韩av综合精品| 国产精品久久免费| 午夜精品成人在线视频| 国产精成人品免费观看| 国产一区二区三区免费播放| 日韩av在线播放不卡| 久久97视频| 91久久久久久| 中文字幕影音在线| 日韩一区二区在线视频| 蜜桃久久一区二区三区| 欧洲色大大久久| 久久久无码一区二区三区| 久久蜜桃一区二区| 四虎1515hh.com| 亚洲综合99| 永久免费看av| 精品国产一区二区三区小蝌蚪| 午夜亚洲激情| av在线不卡观看| 欧美精品总汇| 欧美激情日韩图片| porn视频在线观看| 亚洲国产精品网站| 国产在成人精品线拍偷自揄拍| 亚洲第一福利视频在线| 波多野结衣家庭教师在线观看 | 日韩欧美国产高清91| 69av.com| 亚洲欧美在线aaa| 色无极影院亚洲| av不卡在线播放| 香蕉视频xxxx| 看片的网站亚洲| 成年人视频观看| 亚洲视频高清| 激情视频小说图片| 日本女优一区| 欧美精品欧美精品| 欧美jizz19性欧美| 成人在线观看91| 久久视频免费| 成人福利在线观看| 久久精品国产福利| 日本午夜精品理论片a级appf发布| 日本精品600av| 欧美精品日韩三级| 久久bbxx| 色妞久久福利网| 国产乱理伦片a级在线观看| 日韩成人av在线| 亚洲三级中文字幕| 亚洲第一精品电影| 懂色av成人一区二区三区| 欧美一区二区观看视频| 一级特黄aaa大片| 欧美日韩在线观看一区二区| 免费精品一区二区| 在线观看日韩国产| 国产免费a视频| 色哟哟一区二区三区| 男人午夜免费视频| 欧美日韩在线免费观看| 日本天堂网在线| 日韩欧美在线观看视频| 亚洲午夜高清视频| 婷婷国产在线| 亚洲国产成人91精品| 国 产 黄 色 大 片| 日韩午夜中文字幕| 国产av精国产传媒| 精品欧美一区二区久久| 国精品人妻无码一区二区三区喝尿 | 欧美精品1区2区| 中文字幕精品一区二区精| 欧美性大战久久久久久久| 最近国语视频在线观看免费播放| 色香色香欲天天天影视综合网| 青草视频在线观看免费| 人妻 丝袜美腿 中文字幕| 亚洲欧美一区二区三区| 午夜精品福利在线观看| 手机在线观看av| 日本中文字幕久久看| 国产精成人品2018| 成人免费在线网址| av日韩在线播放| 久久大香伊蕉在人线观看热2| 日韩高清成人在线| 欧美亚洲国产免费| 99久久久久| av 日韩 人妻 黑人 综合 无码| 黄色日韩在线| 成年人免费大片| 久久av老司机精品网站导航| 久久精品国产99久久99久久久| 国产不卡在线播放| 中文字幕xxx| 中文字幕一区二区三区不卡在线| 九九热精彩视频| 欧美日韩国产页| 在线播放一级片| 精品国产一区二区三区久久久蜜月 | 亚洲av电影一区| 国产亚洲精品久久久久久777 | 欧美国产激情一区二区三区蜜月| av黄色免费在线观看| 一区二区免费视频| 黄色av网站免费观看| 欧美一区二区三区免费大片| 四虎精品成人影院观看地址| 日韩一区视频在线| 少妇视频一区| 91精品免费视频| 亚洲激情77| 免费观看亚洲视频| 日韩精品欧美精品| 95视频在线观看| 日韩不卡免费高清视频| 欧洲一区在线观看| 亚洲黄色一级大片| 伊人伊成久久人综合网小说| 免费在线播放电影| 国产欧美va欧美va香蕉在| 久久影视三级福利片| 性欧美18一19内谢| 久久亚洲图片| 精品少妇人妻av一区二区三区| 国产精品久久夜| 一级片视频在线观看| 欧美成人官网二区| 午夜视频在线看| 国产成人精品免费久久久久| av成人app永久免费| 欧美aaa在线观看| 日韩福利视频导航| 91精品国产自产| 亚洲一二三四在线观看| 999久久久久| 中文字幕日韩免费视频| 人人鲁人人莫人人爱精品| 国内精品二区| 亚洲国产一区二区三区a毛片| 久久免费视频观看| 国产精品高清乱码在线观看| 国产日韩欧美精品| 自拍偷拍欧美| 天堂av手机在线| 国产精品美女久久久久久2018| 男人天堂2024| 亚洲精品电影在线观看| 麻豆蜜桃在线| 3d精品h动漫啪啪一区二区| 视频在线不卡免费观看| 99热这里只有精品在线播放| 久久久精品天堂| 日韩熟女一区二区| 亚洲欧美日本精品| 伊人久久国产| 欧美日韩免费高清| 免费欧美日韩| 强伦人妻一区二区三区| 欧美性猛交xxxx乱大交蜜桃 | 欧美aa视频| 免费99视频| 久久久久久一区二区| 成人性生交大免费看| 色先锋aa成人| 9i精品一二三区| 国产日本欧美一区二区三区| 国产精品videosex性欧美| 亚洲天堂国产视频| 亚洲视频你懂的| www.色亚洲| 午夜精品久久久久久99热| 欧美日韩另类图片| 黄色片视频在线免费观看| 久久久久国产一区二区三区四区| 午夜精品久久久久久久蜜桃| 不卡的看片网站| 欧美激情一区二区三区在线视频| 国产综合久久| 中文字幕 亚洲一区| 日本韩国精品一区二区在线观看| 成人18在线| 成人自拍性视频| 狠狠色丁香久久综合频道| www国产视频| 色婷婷av一区二区三区软件| 中文字幕在线播放| 高清国语自产拍免费一区二区三区| 精品91在线| 国产精品av久久久久久无| 欧美久久久久免费| 国产盗摄在线视频网站| 奇米影视首页 狠狠色丁香婷婷久久综合| 日本中文字幕一区二区视频| av成人免费网站| 亚洲精品动漫100p| 欧美成人毛片| 精品丰满人妻无套内射| 久久久99久久| 99国产精品99| 欧美亚洲日本网站| 91麻豆国产自产在线观看亚洲| 动漫av在线免费观看| 欧美亚洲国产一区二区三区va| 在线观看三级视频| 欧美日韩亚洲一区二区三区四区| 激情综合网av| 天天干天天干天天干天天| 精品国内亚洲在观看18黄| 欧美1区二区| 6080国产精品| 欧美性猛交xxxxx免费看| 日皮视频在线观看| 午夜欧美性电影| 99视频超级精品| 国产精品久久久久久久免费 |