1.当数据库数据达到上亿级别时,数据库压力会很大,存不下,可以考虑使用数据库分片。
2.数据库分片模式:
2.1不同的表放到不同的 数据库中---垂直切割。
数据量小,查询性能会提高。 不同数据库位于不同服务器上时,会减小服务器压力。
2.2单张表数据量也很大,如用户量大产生操作量也会很大。单独查询时,压力也会很大。此时垂直分割也无济于事。可以考虑--水平分割。
一张表放到不同数据库中。用户表,放到不同数据库,每个数据库存储部分数据,单表数据量不大。
3.分表后的实现问题;
程序怎么写,查询不同的数据,连接不同的数据源,需要动态切换数据源, 水平切割的话还不知道要的数据到底在哪个数据库中。查哪个数据库呢?
4.问题的解决---mycat,支持很多种数据库
像使用单库一样使用mycat
mycat详解请见下篇。