03|数据库演进
池化技术:即数据库连接池,线程池。空间换时间,配置参数:最小连接数和最大连接数。
主从分离:读写分离,主库定时复制到从库
缺陷--同步延迟问题,优先考虑性能而不是数据的强一致性。
方案:第一种方案是数据的冗余。第二种方案是使用缓存。最后一种方案是查询主库。
分库分表:
垂直拆分-按业务模块,功能模块拆分
水平拆分-按哈希,时间拆分
引入问题:
分库分表键,也叫做分区键,也就是我们对数据库做分库分表所依据的字段,没有的话就会检索所有的库和表。
数据库的特性在实现时可能变得很困难,例如JOIN,count。
唯一性主键:(基于 Snowflake 算法搭建发号器)
1. 使用业务字段作为主键。
2. 使用生成的唯一 ID 作为主键。
数据库和NoSQL互补
1. 在性能方面,NoSQL 数据库使用一些算法将对磁盘的随机写转换成顺序写,提升了写的性能;
2. 在某些场景下,比如全文搜索功能,关系型数据库并不能高效地支持,需要 NoSQL 数据库的支持;
3. 在扩展性方面,NoSQL 数据库天生支持分布式,支持数据冗余和数据分片的特性。
【对于开源组件的使用,不能只停留在只会“hello world”的阶段,而应该对它有足够的运维上的把控能力。】
FullStack-Programmer
某T公司打工的小码畜

浙公网安备 33010602011771号