我用两行代码实现了一个数据库

时间:2022-10-09 14:48:05 | 浏览:668

文章来源:herongwei(ID:herongweiV)如若转载请联系原公众号。今天给大家来看一个「骚操作 」你知道最简单的数据库只需要几行代码吗?只需要两行,一行读取,一行写入。不信?「Talk is cheap. Show me th

文章来源:herongwei(ID:herongweiV)

如若转载请联系原公众号

今天给大家来看一个「骚操作 」

你知道最简单的数据库只需要几行代码吗?

只需要两行,一行读取,一行写入。

不信?

「Talk is cheap. Show me the code」

运行结果如下:

那么,这区区看起来没几行的代码,为什么能实现一个简单数据库呢?

是不是很神奇,其实原理很简单:

db_set 的操作是将数据追加到文件末尾,

db_get 的操作是先 grep 找到所有 key 的数据,然后再取最后一条数据(tail -n 1)作为结果。

顺便普及一波 shell 小知识

其中,grep “^$1” 表示匹配开头为 $1 的字符串,在 shell 脚本里里面 $+ 数字代码输入的参数占位符。

sed 是一个常见的处理文本文件的命令,可依照脚本的指令来处理、编辑文本文件。

其中 -e 选项 表示着以选项中指定的 script 来处理输入的文本文件。

sed -e "s/^$1,//" 表示着开启 s 匹配模式,也就是首行匹配,并且也是匹配开头 为$1且加逗号分割的 key,因为 db_set 存入的时候是按照逗号分割的。

扩展:其实呢,我们常用的 sed 匹配,是习惯于最后加一个 g;

+g:匹配每一行有行首到行尾的所有字符;

而不加 g:匹配每一行的行首开始匹配,匹配到第一个符合的字段,就会结束,跳到下一行。

因为我们这里只要匹配到每一行的 key 输出其对应的 value 就可以了,所以不用加 g。

再普及一波数据库的小知识

仔细思考一下,这个数据库逻辑是正确的,而且还是持久化的。

这个数据库原理虽然简单,但是其中 db_set 使用日志追加的方式写入数据。

的确,这种方式是很多数据库的常用方式,因为日志追加性能非常好。

相对的,db_get 的方式性能就比较差了,需要从头到尾扫描整个文件,查询的开销是 O(n)。

那为了提高读取的性能,我们需要用到索引,那么索引的原理是干嘛的呢?

其实索引的特点其实就是为了加快寻找数据的速度。

基本的原理就是通过保存额外的元数据,根据这些元数据作为路标来快速定位到想要的数据。

但是天下没有免费的午餐,维护索引需要在写入的时候额外写入其他数据,而这会影响写入的性能。

涉及到存储系统中重要的权衡设计:适当的索引可以加速读取,但是每个索引都会减慢写入的速度。

那数据库常见的索引类型你知道有几种吗?

那什么情况下该用什么模式的索引呢?

卖个关子,下次我们一起探讨吧。

好了,本周的唠嗑就到这里了。

今天,你学废了吗

我是小贺,每天进步一点点,我们下周见。

参考:

1、
https://zhuanlan.zhihu.com/p/351897096

2、《数据密集型应用系统设计》

相关资讯

江苏的野心勃勃,都藏在数据里了

来源 | 大数据透析站这是什么水平?作为苏南模式的代表之一,无锡可不是吃素的,按照现在流行的算法,1无锡≈1黑龙江省≈4.3青海省。按照2021年6.45的平均汇率换算,江苏的GDP高达1.8万亿美元,超过澳大利亚、俄罗斯、韩国,略低于全球

中国买来最急需直升机为何不引进生产线?俄方关键数据点破窗户纸

米-17系列现在基本替代了“黑鹰”称为了绝对主力 30年的“黑鹰”现在应急用长期以来,在中国陆航部队中,能够担负高海拔地区运输的只有从美国引进的S-70“黑鹰”中型直升机。那段时间,能够爬上4500米以上高海拔地区的只有“黑鹰”,而且中国的

新乡市凤泉区大数据局:疫情防控不放松数据保障当先锋

映象网讯(大象新闻记者 崔学庆)“疫情就是命令,防控就是责任”,自疫情防控工作开展以来,新乡市凤泉区大数据局全体员工高度重视,在充分运用大数据技术的基础上,强化部门间的协同配合,高标准完成各项工作任务。快速响应,迅速建立组织架构。该局按照市

濉溪县数据资源局到县城管局、市大数据中心开展数字濉溪走访调研

濉溪县数据资源局到县城管局、市大数据中心开展数字濉溪走访调研为了解淮北市、濉溪县大数据发展现状和趋势,促进濉溪县大数据快速发展,推进“数字濉溪”建设,9月16日,濉溪县数据资源局党组书记、局长刘溪带领全体职工到濉溪县城管局、淮北大数据中心进

12组数据!带您看看阜阳新变化

12月15日市政府新闻办召开实力阜阳大美阜阳“十三五”成就巡礼系列新闻发布会(第十场)摄影:王彪市发展改革委主任高文军在梳理前期发布成就的基础上再选取12组典型数据进一步展示我市经济社会发展可喜变化并回答记者提问<发布会主要内容>

A股数据报告:古井贡酒2022年01月26日

A股报告古井贡酒交易日期:2022年01月26日作成日期:2022年01月26日股票代码:000596股票名称:古井贡酒2022年01月26日,古井贡酒收盘价225.87元,涨跌幅为+6.78%。本交易日,上证指数上涨0.66%;深证成指上

特步半年报数据惊艳,硬科技交出高增长答卷

8月23日,特步国际(1368.HK)发布了2022年上半年财报。特步国际上半年收入达56.84亿元,同比增长37.5%;经营利润实现9.22亿元,同比增长34.8%;普通股股权持有人应占净利润为5.90亿元,同比增长38.4%。整体上看,

友情链接

SEO域名抢注宝宝起名网妈妈知道币圈荆州新闻头条网保山今日新闻网阳光电源A股咸宁新闻爆料网考研信息网人力资源资讯网十二星座排名网法拉利跑车网六安瓜片茶官网南京旅游网易方达基金资讯网今日滨州睡眠健康知识网乒乓球运动网荔枝品种科普网
MYSQL数据库应用网-mysql数据库基础知识、Mysql还原数据库、mysql数据库迁移方案、mysql数据库增删改查、mysql数据备份和恢复、mysql数据迁移工具、mysql数据库迁移详细步骤、mysql数据库存储目录迁移、mysql数据库不停机迁移方法、mysql数据备份和恢复、免费mysql服务器、mysql官网免费版安装教程。
MySQL数据库应用 nincu.cn ©2022-2028版权所有