在分库分表前一定要了解分区分库分表的原因。
对实时性要求比较高的场景,使用数据库的分区分表分库。
对实时性要求不高的场景,可以考虑使用索引库(es/solr)或者大数据hadoop平台来解决(如数据分析,挖掘,报表等)或者混合使用(如es+hbase/mongodb)。
-
分区解决冷热数据分离的问题;
-
分库解决互联网的高并发问题;
-
分表解决还联网的高容量问题;
-
分库分表解决高并发和高容量的问题。
实时数据
- 1000w以下的表通常不需要分库分表,如果数据增量比较小,可以分成冷热数据,考虑分区.
- 5000w以上的表通常要考虑进行分表(不考虑并发的情况),此时以查询为主。
- 对并发要求比较高的系统,要考虑分库,此时分表解决不了并发的要求。
- 对大并发和高容量的可以使用分库分表方案解决
非实时数据
- 1000w以下的读可以通过从库来读取
- 5000w以上的大量读可以通过es/mongodb/hbase或者混合使用
- 数据分析,挖掘,报表等最好不要和现有系统耦合,使用单独的库或者hadoop 平台来解决。