学习了数据库知识后,自己总结的一些重要的点:
- 扩展性:在单台设备上扩展性能是很难且昂贵的,所以需要使用分布式存储系统。
- 可用性:在不要求强一致性的时候,可用性是最重要的。数据库宕机、查询数据卡死这些故障都是很严重的事故。
- 一致性:如果要求强一致性,可以牺牲一些可用性。如果真的出故障宁可让事务失败。
- 容灾性:如果数据设备出现了问题,比如断点、死机甚至不可抗力。如何保证数据不丢失。
- 伸缩性:关系数据库需要明确数据的结构,如此可以高效的查询和处理数据。但现代网站上往往会有很多不确定性结构的数据,这些数据关系数据库也可以处理,但是如此就失去了关系数据库的优势。这个时候非关系数据库就可以很好的解决伸缩性的问题。
- 吞吐量:数据库是有性能上限的。所以如何在保证数据库不挂的情况下提高吞吐量是后端面对数据库绕不开的话题。
- 高性能:如何通过机制、算法等方案提高数据库处理数据的效率,让数据库在面对大量数据请求的时候更高效也非常重要。
数据库说白了,其实也是计算机系统的一部分。所以它必然会受到设备性能、存储容量、网络、外部环境等这些客观因素的限制。所以,人们就千方百计想出各种方案来保证数据库数据的安全、高效、稳定。上面这些点其实都是这个目的。
网友评论