#分库分表与主从回顾
##为什么要分库分表
数据装不下了
承压分离
安全隔离
##如何分库分表
纵向分表依据?(从业务)
分库、拆表
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分析与实践
- 架构解密