数据库技术选型:MySQLicon->冷热分离->分库分表->分布式数据库
在常见的业务场景中,数据量千万级别或以下,可以选择轻量级OLTP数据库,如MySQL。
如果数据量达到亿级以上,或者SQL查询比较复杂,首先基于业务场景考虑,是否可以实现冷热分离,将一些冷数据进行归档,降低MySQL 业务数据库中的数据量。
如果不满足冷热分离的条件,继续分析业务场景是读多写少,可以基于MySQL主从同步或Redis 实施读写分离的方案,将查询请求转移到MySQL 从库或者Redis 缓存中,降低MySQL 主库的访问压力。
如果读多写多,单MySQL 主库难以支撑,可以基于Sharding-JDBC开源方案,进行分库分表。
如果查询条件复杂,并发量高,可以搭建MySQL +Elasticsearchicon的查询分离方案,多维复杂查询由Elasticsearch集群来提供服务。
随着开源分布式数据库的出现,并经过多年的生产实践,可以采用一些开源分布式数据库产品,如TiDB、PolarDB-X和CockroachDB等,替换上面的读写分离、分库分表和查询分离技术方案,简化技术栈。