分表分庫後帶來問題(主鍵衝突)

2022-05-05 22:51:16 字數 468 閱讀 8710

主鍵衝突問題

分庫分表的環境中,資料分布在不同的分片上,不能再借助資料庫自增長特性直接生成,否則會造成不同分片上的資料表主鍵會重複。

新增資料》主鍵生成中心》分庫決策中心》切換相應庫》執行新增

事務問題

在執行分庫分表之後,由於資料儲存到了不同的庫上,資料庫事務管理出現了困難。

如果依賴資料庫本身的分布式事務管理功能去執行事務,將付出高昂的效能代價;

如果由應用程式去協助控制,形成程式邏輯上的事務,又會造成程式設計方面的負擔。

跨庫跨表的join問題

在執行了分庫分表之後,難以避免會將原本邏輯關聯性很強的資料劃分到不同的表、不同的庫上。

這時,表的關聯操作將受到限制,我們無法join位於不同分庫的表,也無法join分表粒度不同的表,結果原本一次查詢能夠完成的業務,可能需要多次查詢才能完成。

分庫分表帶來的問題

前言 分庫分表雖然能帶來效能提公升,但同時會提出 問題一 跨庫關聯查詢 我們有幾種主要的解決方案 1 字段冗餘 比如我們查詢合同庫的合同表的時候需要關聯客戶庫的客戶表,我們可以直接把一 些經常關聯查詢的客戶字段放到合同表,通過這種方式避免跨庫關聯查詢的問題。2 資料同步 比如商戶系統要查詢產品系統的...

分庫分表實戰問題

1.分庫分表中水平拆分和垂直拆分的區別?水平拆分 將表資料拆分到不同的資料資料庫中。垂直拆分 把乙個大表拆成多個小表。字段進行拆分。分表 是指的是把表資料拆分到多張表裡面。range分發 每個月生成乙個新錶。如果訪問新的資料還好,但是訪問舊的資料就麻煩一些。hash分發 平均分配,但是擴容的話會比較...

mysql分表後怎麼索引 分庫分表後的索引問題

摘要 最近遇到乙個慢sql,在排查過程中發現和分庫分表後的索引設定有關係,總結了下問題。問題在進行應用健康度盤點時,發現有個慢sql 如下 select brandgoodid from brandgood 0020 where userid and brandgoodid in 1 2 表結構,按...