在工作过程中经历了几个不错的项目,所采用的数据库设计也是多种多样,
这里我简单的说一下自己的想法,有不对的地方欢迎探讨。
===============分割线=====================
对于数据库的优化可以从最基础的服务器选择开始优化,选择好的SSD硬盘当然是事半功倍,
其次‘合理的数据结构’和‘严谨的建表规范’ 也是必要的过程。
合理的索引加上适当的字段冗余也是不错的选择。
可以参考下:
http://blog.csdn.net/u014017080/article/details/52199432
我这里不说上面这些,我说一下关于数据库的一些简单的分库,分表策略。
说到分库,分表每一个公司的业务逻辑不同肯定会有不同的设计方案,肯定没有一个共有的方案策略,
我这里简单的说下我的想法:
1.多城市数据分离
如果你们的业务数据是可以根据城市进行分离的话,例如:不同的城市有不同的商品。
可以用独立的用户体系+城市系统进行一个分离
而其中的用户体系也可以再次切割,如下:
最简单的用户切割方式根据用户唯一标示(手机号,用户ID)的hash值循环冗余校验值进行分表
crc32(md5(‘手机号’)) % 300 + 1
最简单的php代码,根据手机号分300个表 t_001user , t_002user ......
可以在框架中对DB进行分装,根据访问用户手机号进行不同的拼装表面就ok了
这是最简单而又直接的分表分库方式。
2.用户体系分割
3.冷热数据处理
4.业务优化
====晚点更======