什麼是分庫分表?
垂直分庫
把資料庫按照業務分庫
垂直分表
將表按照列進行拆解
水平分表
為什麼要搞分庫分表?
資料庫中的表太多----分庫----微服務(應用和資料庫都是單獨的,比如說使用者模組, 使用者相關的表在單獨的資料庫上)
資料庫中的表記錄太多
如何分庫分表?
分庫分表的方式
水平分表
分庫分表存在的問題
跨庫join問題
全域性唯一主鍵問題
分布式事務問題
跨庫count、order by 、group by
分庫分表的產品有哪些?
阿里的tddl、cobar
基於阿里cobar開發的mycat
當當網的sharding-jdbc —apache
使用背景
資料切分(sharding)方案
資料的切分(sharding)根據其切分規則的型別,可以分為兩種切分模式:
切分規則
常用的切分規則有以下幾種:
切分原則
分布式事務問題
分布式主鍵id問題
跨庫join問題
跨庫count、order by、group by問題
具體sharding jdbc用法示例參考sharding jdbc官方**
關於分庫分表 Mysql篇
關於分庫分表,要關心硬體,業務,分布式,和資料庫選型.基本指標 庫物理檔案大小 100g 表 100 字段 200 單錶記錄數 500w 可以用說用到mysql的地方,只要資料量一大,馬上就會遇到乙個問題,要分庫分表.這裡引用乙個問題為什麼要分庫分表呢?mysql處理不了大的表嗎?其實是可以處理的大...
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。優點 使用資料庫原有的功能,相對簡單 能夠保證唯一 能夠保證遞...