LOADING

加载过慢请开启缓存,浏览器默认开启

database -interview

2023/3/20 database categories

分类

分类 特点
OLTP(Online Transaction Processing)
OLAP(Online Analytical Processing)

HTAP
HTAP是Hybrid Transactional/Analytical Processing的缩写,意为混合事务/分析处理。传统的OLTP(Online Transactional Processing)和OLAP(Online Analytical Processing)系统是分离的,需要在不同的系统中进行操作和管理,而HTAP则将事务处理和分析处理的功能融合在一起。

在HTAP系统中,事务处理和分析处理使用的是同一套数据,因此需要保证数据的一致性和可靠性。为了实现这一点,HTAP系统通常采用以下几种技术:

内存数据库:内存数据库可以提高数据的读写速度,使得HTAP系统可以快速地进行事务处理和分析处理。
分布式架构:HTAP系统通常采用分布式架构,将数据分散存储在多个节点中,可以提高系统的可靠性和容错性。
实时数据同步:HTAP系统需要保证数据的一致性,因此需要使用实时数据同步技术,将事务处理和分析处理使用的数据保持同步。
查询优化:HTAP系统需要支持复杂的查询操作,因此需要使用查询优化技术来提高查询的效率和性能。

redis和mysql的数据一致性问题

随着业务量的增长,项目请求量越来越大,如果每次都从数据库中读取数据,那么肯定会有性能问题。

这个阶段通常的做法是,引入「缓存」来提高读性能,架构模型就变成了这样:

avator

但是这样可能会有一些问题,比如数据一致性的问题,有这样几种方案用于解决

方式 特点 缺点 优点
主动更新(双写策略) 数据库更新后立刻更新缓存 会增加数据库的负担 能保证数据的一致性
延迟更新 数据库更新后,不立即更新缓存,等待缓存过期时再更新 可能导致缓存中数据不一致 减少数据库负担
消息队列 数据库更新的时候,通过消息队列等方式通知缓存更新,确保缓存和数据库中的数据一致 需要额外的管理和维护工作 减少对库的压力

数据库高性能方案

设计一个能扛住千万并发的数据库架构

层面 方式
数据库层面 1.设置mysql的最大连接数
2.使用redis缓存
3.分库分表
4.读写分离
5.不同类型采用不同的数据库
5.池化技术,比如连接池
磁盘访问 1.磁盘的页缓存
2.尽量顺序读写
3.SSD
4.频繁读写一块区间的时候
5.频繁读写同一块磁盘区域的时候,可以使用mmap代替read/write
6.在需要同步写的场景中,尽量将写请求合并,而不是让每个请求都同步写入磁盘,即可以用 fsync() 取代 O_SYNC
把架构异步化 1.多线程
2.消息队列