MySQL 學習筆記 分庫分表

2022-09-23 10:36:08 字數 450 閱讀 8121

分庫分表有乙個前提:能不拆就不拆,能少拆就少拆。因為拆分會帶來開發和後期維護的成本。那為什麼仍然需要分庫分表呢?第一,某些系統還是需要依賴mysql來保證金融級的事務。第二,mysql本質是單機資料庫,支援不了太大的資料量和高併發。所以只能是,資料量和併發大到沒其他辦法了,我們才分庫分表

主要的考慮因素就是:業務是怎麼查的。例如訂單系統,如果根據訂單id(主鍵)進行分片,查訂單id的時候就根據訂單id和分片演算法找到是哪個分片就在分片上查就行了。但是如果是使用者訂單介面,查的是使用者id呢?這個問題可以這樣解決,根據使用者id分片,然後規定訂單id的10-14位為使用者id的後四位,,查訂單id的時候通過10-14位找到分片位置。

但如果有各種各樣的查詢呢?例如商家查詢自己店鋪的訂單,各種訂單資料包表統計等等。一般做法是把訂單資料同步到其他儲存系統裡面去,去其他儲存系統解決。例如我們再構建乙個以店鋪id作為sharding key的唯讀訂單庫,給商家查詢。

mysql分表分庫實現 MySql分表分庫思路

一.資料庫瓶頸 1.1io瓶頸 第一種 磁碟讀io瓶頸,熱點資料太多,資料庫快取放不下,每次查詢時會產生大量的io 分庫和垂直分表 第二種 網路io瓶頸,請求的資料太多,網路頻寬不夠 分庫 1.2cpu瓶頸 第一種 sql問題,如sql中包含join,group by,order by,非索引字段條...

MySQL範圍分表分庫 mysql 分表分庫策略

唯一id的生成 下面列舉幾種常見的唯一id生成方案,需要滿足兩大核心需求 1.全域性唯一 2趨勢有序 1.用資料庫的auto increment 自增id 來生成,每次通過寫入資料庫一條記錄,利用資料庫id自增的特性獲取唯一,有序的id。優點 使用資料庫原有的功能,相對簡單 能夠保證唯一 能夠保證遞...

mysql 分庫分表實戰 MySQL分庫分表實戰

為什麼要分庫分表 在大型 中,當使用者量以及使用者產生的業務資料量達到單庫單錶效能極限時,為了支撐業務可持續發展,對於重要的核心業務必然要進行分庫分表來儲存業務資料。對於非核心業務產生的大量資料,例如爬蟲爬取的資訊,論壇產生的資料等,可以考慮把資料儲存在像mongodb這樣的nosql儲存裡面,這些...