2021-11-24 03:47:09
高并发下数据写入不推荐使用关系数据库,主要原因涉及索引结构限制、写入性能瓶颈、存储机制缺陷以及架构扩展性不足,具体分析如下:
1. B+Tree索引的深度与数据量限制若每页存储16KB数据,单行索引1KB,则三层B+Tree最多支持约2400万行数据;若单行索引0.5KB,则三层可支持约4000万行。超过阈值后,索引深度增加,查询效率显著下降。

内存中的数据按Key排序,合并到磁盘时通过多层级结构(Level 0到Level N)压缩数据,降低存储空间占用。
查询时通过Bloom Filter快速定位数据块,减少不必要的磁盘访问。

高并发写入时,频繁的行更新会导致磁盘随机写入,降低吞吐量。
列存储数据库(如ClickHouse)仅更新需修改的列,减少IO操作,尤其适合分析型查询。
分析查询仅需读取相关列,避免全表扫描,显著降低IO压力。
高并发写入时,主库成为性能瓶颈,可能导致响应延迟或拒绝服务。
主从同步延迟可能引发数据不一致问题,尤其在分布式场景下。
同一份数据可同时提供事务处理(OLTP)和分析查询(OLAP),避免数据同步延迟。
通过分布式架构分散写入压力,提升整体吞吐量。
高并发写入时,索引维护可能占用大量CPU资源,导致整体性能下降。
RocksDB的Compaction过程将多个SSTable合并为更大文件,减少查询时的IO次数。
关系数据库在高并发写入场景下面临索引深度增加、随机IO负担重、主从架构瓶颈等问题,而OLAP数据库通过LSM Tree的顺序写入、列存储的压缩优化、分布式架构的扩展性,显著提升了写入性能。因此,对于高并发数据写入需求,推荐使用OLAP数据库或支持HTAP的分布式数据库,而非传统关系数据库。