1.分表(一个数据库):解决单表数据量过大,数据查询的效率问题(一张表大约能支持1000w条数据,字段越多就越少)
1.1 5年数据预算,计算出大概需要 x 张表
1.2 为了可扩展性考虑,我们计划生成 2x 张表
1.3 利用一致性hash值,进行数据插入,一般用用户主键id操作,hash(id)%2x -----尽量保证同一用户数据在一张表里面
2.分库(多个数据库):解决单台数据库的并发访问压力问题,策略和分表类似,但是是对应不同的数据库生成表。
3.读写分离:提高了应用中读取数据的速度和并发量,通过建立主从数据库实现,
参考:
http://blog.csdn.net/xlgen157387/article/details/51331244
http://blog.csdn.net/xlgen157387/article/details/53930382
4.mysql 5.1版本 分区:可以存储更多的内容,提高查询效率
参考:
http://blog.csdn.net/liuyifeng1920/article/details/53673795
http://blog.csdn.net/yongchao940/article/details/55266603
SHOW VARIABLES LIKE '%partition%'//mysql版本库是否支持mysql分区
4.1 RANGE分区:范围分区
4.2 LIST分区:
4.3 HASH分区:
4.4 KEY分区:
4.5 Columns分区: