Turso 安利

发布在 database

我是一个Sqlite爱好者,作为世界上最广泛使用的数据库,它着实有很多优势,特别是对于小型项目来说。SQL语法兼容、项目成熟、每个语言毫无疑问都支持、速度也不慢、不需要运维。我有好几个小项目都用了Sqlite替代postgresql。但是在有些场景,因为它是嵌入式数据库,也影响了它的发挥

比如我有一个小项目,需要同时在多台电脑上运行,它们都需要数据库。按照数据量大小,新建一个postgresql是不合适的,但是sqlite又不能被多台电脑共用,就很遗憾。直到今天看了https://turso.tech/libsql ,觉得颇有新意,仔细读了一下它的文档,并把一个小项目迁移到了上面,完美符合我的需求…… 关键是免费, 成本极低。所以…. 我决定安利一下

创新点

很简单,将sqlite改成了允许CS架构,并增强了它的WAL能力。让它可以多副本同步,主要应用在serverless场景,用来给边缘计算提供快速的数据库访问,降低全球用户访问延迟。改成CS架构后,原有的编程语言SDK后就得适配。当前提供了TypeScript、Rust、Python、Go SDK。而且TypeScript的支持是最完善的。也可以看出对serverless的支持是它们的核心目标

有了多副本能力,它的推荐架构就有了读写分离这种套路,本地时刻保留了一个可用的副本(理想情况下延迟几秒钟)。写的时候写到主数据库,再同步到本地,这样就能更快的返回数据

看计划好像还有直接写到本地数据库,本地自动写到primary(不知道它的冲突问题准备怎么解决)

我这种使用它避免数据库运维的用法大概率是异类……

迁移已有Sqlite数据库超简单

1
turso db create --from-file olddb_file newdb

其他

该数据库当前的计费方案也可谓是相当的良心,你只需要为你的存储和对数据的读写付费。这基本就是运行sqlite所需要的东西了,没有扣多余的费用。你所写的查询效率越高,触发的数据库查询读越少,成本越低。相对于RDS那种强制按月付费的服务,可谓是大善人…. 免费用户有9GB存储空间,每个月10亿读(并不是查询10亿次,而是查询触发对硬盘块读操作),对于个人小项目基本是够用了….. 只希望别被羊毛党薅光了…..且用且珍惜

其次,该项目服务端、SDK、CLI代码都是开源的。意味着可以自己部署,自己改进,还是挺友好的

就当前,免费的serverless不少,搭配这种免费的serverless 数据库。意味着CPU资源+存储资源都有了。个人写点小项目想部署到serverless上面是没什么问题的,可谓是十分有想象空间了

当然,缺点也不是完全没有的,因为该项目运营才半年时间。SDK未必有那么完善。没什么GUI(比如Datagrip)支持对它查询,只能自己使用typescript SDK sync api同步完整的数据库到本地(当前CLI不支持下载数据库),再使用当前工作流的工具对数据库进行操作

总之~~~ 我觉得这个服务很不错,特别是它当前的收费计划👍

参考

Introducing Embedded Replicas: Deploy Turso anywhere

提到了一种方案,搭配Postgresql的逻辑流复制能力将数据同步到Turso

评论和共享

上一篇 介绍了BK树和VP树,并说明用它可以优化汉明距离的查询。用来处理重复图片的问题。本篇我们做出示例演示如何使用,最终的结果是100万条数据。相对于全表遍历的31秒下降到54毫秒。使用了正确的索引速度提升了五百多倍

阅读全文

BK树和VP树

发布在 database

最近有一个项目需要用到simhash.获取图片的hash值并保存到数据库。在生成新的hash的时候和数据库进行比对。达到去重的效果。假如图片达到了一定数量级,那么每次查询会进行全表扫描,效率是比较低下的,而数据库默认的一些索引又无法达到这个需求,后来看到了BK树。记录一下

阅读全文

influxdb配置文件

发布在 database

开始一个软件,从读懂它的配置文件开始。以下是读取3.1配置文档的笔记
总结来说,influxdb的配置文件可配置的地方几乎没有。参数性能调优貌似不存在,其中是否开启,是否记录日志都占据了好多部分。额外需要关注的是data章节有一些关于fsync的设置默认是0,还有默认的max-series-per-database和max-value-per-tag默认都存在限制。暂时不太清楚原理是什么(更新:因为influxdb最大的软肋就在series的数量上。tag的数据都保存在内存。所以有极大的限制。可以看到官方硬件要求,100万的series需要4-6核心CPU,8-32GB内存,iops要求1000+。对比一下influxdb提供的云服务,100万的series需要每月1500刀!!!)。当保存大量数据的时候肯定会报错,另外默认的慢查询日志是没有打开的。对于请求。默认没有限制最大的返回内容数。以及限制单个查询响应的时间

阅读全文
  • 第 1 页 共 1 页

ficapy

author.bio


author.job


深圳