分庫 & 分表
垂直分庫:按照業務線,比如用戶、訂單等拆分成多個數據庫,缺陷跨庫操作
垂直分表:列太多影響性能,把表的列拆分開,如訂單表 ---> 訂單基本信息表+訂單附加信息表
水平分表:按照一定的分表策略把表水平切分(不破壞表結構)
表中數據500萬到1000萬,性能還行
超過1000萬性能就會逐漸下降
水平分表策略:範圍拆分、hash拆分、日期拆分
分庫分表並不衝突,根據業務需要進行垂直分庫、垂直分表、水平分表
數據庫中間件:mycat、 TDDL、 Sharding-JDBC、cobar
對用戶而言,由於中間件的存在,水平切分是透明的,用戶感知不到
用戶就好像操作一張表一樣操作多張切分的表
中間件也支持讀寫分離等