03|数据库演进

池化技术:即数据库连接池,线程池。空间换时间,配置参数:最小连接数和最大连接数。

 

主从分离:读写分离,主库定时复制到从库

缺陷--同步延迟问题,优先考虑性能而不是数据的强一致性。

方案:第一种方案是数据的冗余。第二种方案是使用缓存。最后一种方案是查询主库。

 

分库分表:

垂直拆分-按业务模块,功能模块拆分

水平拆分-按哈希,时间拆分

引入问题:

分库分表键,也叫做分区键,也就是我们对数据库做分库分表所依据的字段,没有的话就会检索所有的库和表。

数据库的特性在实现时可能变得很困难,例如JOIN,count。

 

唯一性主键:(基于 Snowflake 算法搭建发号器)

1. 使用业务字段作为主键。

2. 使用生成的唯一 ID 作为主键。

 

数据库和NoSQL互补

1. 在性能方面,NoSQL 数据库使用一些算法将对磁盘的随机写转换成顺序写,提升了写的性能;

2. 在某些场景下,比如全文搜索功能,关系型数据库并不能高效地支持,需要 NoSQL 数据库的支持;

3. 在扩展性方面,NoSQL 数据库天生支持分布式,支持数据冗余和数据分片的特性。

【对于开源组件的使用,不能只停留在只会“hello world”的阶段,而应该对它有足够的运维上的把控能力。】

posted @ 2020-11-25 10:43  嵌入式系统  阅读(104)  评论(0)    收藏  举报