首先关系型数据库和非关系型数据库对比:
怎么搭建一个高性能、高可用和能存储海量数据的关系型数据库(比如MySOL):
主从同步:从数据库对主数据库进行数据备份,并且通过数据冗余(比如将数据多复制一份,那么我们就可以将访问流量分成两半同时访问)来提升效率。
读写分离:一般情况下,对数据库的读操作远远多于写操作,我们可以将写请求分配给主服务器,将读请求分配给从数据库,这样我们就只需要对主数据库进行加锁、事物隔离等数据安全操作就可以了(注:为了防止进行读写分离的中间件服务器崩掉,我们可以搭载去中心化集群来提高可用性)。
分库分表:在数据量非常庞大的情况下,一张表或一个库已经不足以存储我们就需要拆分成多个库或者表,一些中间件可以帮我们做到将请求映射到对应的库或者表中,这样提升了数据存储能力和访问能力。
数据库优化:MySQL数据库有很多可以优化的地方比如:字段选取、数据库参数调优、选择合适的存储引擎、对锁的优化、SQL语句的编写和索引处理等。
在海量请求到达数据库之前建议的一些做法:
对于PB级数据以及日处理上亿的数据建议使用非关系型数据库以及相关技术。