模块化分库
1. 一个频道一个数据库:如商城库、公司库、分享库、团购库、优惠券库、问答库、活动库、论坛库、CMS库等。
2. 一套大功能一个数据库:如核心库、历史库、统计库、队列库等。
3. 一套子系统一个库:如OA库、仓储物流系统库等。
大数据量分表
如历史库中的表大多需要做分表处理(根据数据量大小按时间分表)。亦可利用SQL2008的分区表功能做分区表。
提高扩展性
如商城库根据需要可以分拆为商城基础库、商品库、订单库等。
其他细节
1. 主键使用数字ID,弃用GUID
2. 除包含事务需要批量执行的SQL编写存储过程外,其他SQL均由程序维护。
3. 尽量不做跨库查询,以降低个分库之间的耦合度提高扩展性。
4. 需要做统计功能的,应添加冗余字段,减少数据库中的实时统计。
5. 对于Convert/SubString等对数据的处理,尽量放到程序中处理
6. 应该建立缓存机制,将更新频率低的部分数据做本机缓存,减少连接查询
7. 减少Like查询,将需要做全文检索的数据生成文件索引,减少高开销的查询。
目录
【架构★我的系统架构】我的系统架构<应用系统架构>
【架构★我的系统架构】我的系统架构<程序结构>
【架构★我的系统架构】我的系统架构<分布式存储>
【架构★我的系统架构】我的系统架构<异步队列>
【架构★我的系统架构】我的系统架构<统计报表系统>
【架构★我的系统架构】我的系统架构<站内统计系统>
... ...
分类: 01 我的系统架构
http://www.cnblogs.com/fmp/archive/2013/01/31/MyFramework_Database.html