#分庫分表與主從回顧
##為什么要分庫分表
數據裝不下了
承壓分離
安全隔離
##如何分庫分表
縱向分表依據?(從業務)
分庫、拆表
uid、賬號、密碼、姓名、頭像、積分、余額、簡介
按字段類型 變長(varchar) 與定長(char)
按是否頻繁更新 score
橫向分表依據?
拆記錄
商品、照片列表、好友動態
##分庫分表的缺點
業務更復雜
事務
關聯
id
##主從配置
主庫從庫配置文件差別
啟動停止與查看狀態命令
從庫出錯:
set global SQL_SLAVE_SKIP_COUNTER=1;
多級主從
##備份與擴容
為什么要到從庫備份?
從庫備份要點? 停止從庫->記錄節點->導出數據->恢復從庫(導出數據和節點記錄一起保存)
擴容?
#ID解決方案
步長一樣 偏移錯開
1:1 11 21 31 步長都為10 偏移從1開始
2:2 12 22 32
3:3 13 23 33
4:
問題:id不連續 步長設的長一些 方便增加服務器
##分表ID生成
1、數據庫解決 步長、偏移 問題?
2、代碼解決 id、year、mod、md5
3、id生成器
#TP實現分庫分表與局限
##ThinkPHP實現分庫分表方式
1、AdvModel
2、擴展Model
##ThinkPHP實現分庫分表問題
1、維護 透明、擴展
2、性能
#構建分布式連接池
##PHP連接池
1、運維分開,透明
2、易于擴展的分庫分表、讀寫分離
3、性能:導出配置、進程緩存
#問題與解決
###分庫分表與主從的邏輯問題
1、主從
同步時間問題,先寫后讀
2、分表
id、外鍵 count join order
###分庫分表與主從的性能問題
配置庫查詢
1、緩存到客戶端
2、TCP層用不同語言與技術
3、常駐內存
- SWOOLE及php網絡編程
- LNMP架構與Socket,http協議
- 如何高效學習
- 開發工具箱
- 編寫高效的js
- js閉包編寫全功能的購物車
- JSON和JSONP
- 多級分類的開發與應用
- 設計安全的登錄注冊流程
- 前端性能優化
- 前端架構優化
- 使用第三方云服務加速產品開發
- 移動互聯網之API開發
- php分層
- 全文檢索的實踐與部署
- webIM的原理及前后端實現
- 如何配置高效的數據庫以及MySQL的代碼及插件開發
- NoSql.隊列,任務隊列
- 構建本機緩存,構建分布式緩存池
- 數據庫分庫分表的設計
- Nginx原理及模塊開發初步
- 無限擴充的數據庫架構
- php構建分庫分表分布式數據庫連接池
- 靜態文件上傳、分布式存儲與分發
- MySQL Cluster,Proxy分析與實踐
- 架構解密