My Little World

数据库索引和冲突解决

为什么要有系统设计

当我们作为用户去访问社交媒体或者互联网数据时,这些数据肯定是需要已存在一个地方,我们才能访问到
假如数据存放在一台计算机内存上面,计算机的存储一般分为ram 和硬盘,ram 读取速度快,但是只能临时存储
硬盘读取速度慢,但可以永久存储,虽然也会面临断电导致存储异常问题
在这种情况下,我们更倾向于使用硬盘存储
假如现在使用一台计算机上的硬盘存储,一个用户只访问这一台计算机是理想的
但成千上万的用户同时访问这一台计算机
就会面临访问性能问题
为了解决访问性能问题,可以选择通过提供多台服务器来分担访问压力
但是数据是在一台服务上面的,如果用户访问了其他没有存储数据的服务器,就不会访问到数据
即数据不能共享
这样为进一步解决数据共享的问题,引入数据库单纯处理数据存储的问题,所有服务器都通过数据库来访问数据
这时数据库就要承担起数据能够快速访问(读写),更高可靠性的责任
比如断电时如何备份数据
实际情况是一个数据库还不能承担所有的数据存储任务,往往还会同时存在多个数据库,
当一个数据库数据量足够大时,如何进行分片存储