我们日常的开发或多或少都会和数据库打交道,那么数据库中数据都是如何存储来保证读写的效率呢?本文就来详细地介绍数据库中数据的存储和读写。
最简单的数据库
我们首先来看一个最简单的通过bash来实现的数据库,它就是一个键值数据库,通过Bash函数来实现读写。
这里有两个函数,一个是写函数,就是简单的写入key和value对。另外一个函数是db_get()函数,它可以读出最新写入的一行数据。
我们可以这样使用它,这里我们就是写入了两个key,value,一个是123456,对应的后面的Json格式数据:'{"name":"San Francisco","attractions":["Exploratorium"]}',另外一个键值是42,它对应的是'{"name":"San Francisco","attractions":["Golden Gate Bridge"]}',最后我们可以调用get函数得到42对应的值。这个实现算是简单明了,一目了然了。
那么假如一个键值被设置了多次该怎么保存了,如下图所示:
我们可以看到,42被重写了,这里最简单的实现就是继续往后面加一行,然后在读取的时候从后往前读(后面就是最新的),就可以得到最新的值了。
其实在真正的数据库中,也有类似的实现就是一个不断增加的log文件,我们会不停地往里面写,当然真实的数据考虑的问题会复杂很多,比如写到一半出问题了,或者写出问题了等等。但是