用 Rust 重写 Bun

SQLite 在文中作为 Bun 所嵌入的 C/C++ 库之一被点名,与 JavaScriptCore、uWebSockets、BoringSSL 等并列。作者用“约 20% 代码为 C++ 且依赖这些库”说明:即便改用 C++ 也能获得构造/析构,但仍难靠风格与评审根治内存问题,因而最终选择 Rust,同时承认会长期保留对包括 SQLite 在内的 C/C++ 组件的调用。

SQLite

为什么 DuckDB 很快?

本文提到 DPhyp 是 DuckDB 连接顺序优化使用的动态规划算法之一。它将查询建模为图,逐步计算子集最优连接树,避免重复探索已求解的子问题,从而在多表连接场景下高效选出低成本执行顺序。

DPhyp

为什么 DuckDB 很快?

本文将 MVCC 作为 DuckDB 设计选择之一,采用乐观方式实现快照隔离。它支持分析查询与写入并发进行,避免传统锁竞争,同时保持查询结果的一致性。该机制与 in-process 执行结合,进一步降低事务开销。

MVCC

为什么 DuckDB 很快?

本文指出 Morsel-driven Parallelism 是 DuckDB 并行执行的关键机制。它不进行全局查询并行规划,而是让每个 pipeline 内部为不同线程分配独立 morsel 输入数据。线程各自维护本地状态,完成后并行合并,从而在 pipeline 层面实现多核高效扩展。

Morsel-driven Parallelism

为什么 DuckDB 很快?

本文指出 CSV 与 Parquet 相反,不是自描述格式,DuckDB 需先用 CSV sniffer 自动检测分隔符、引号、转义、类型及是否含表头。sniffer 默认采样 20480 行,依次完成方言检测、类型推断和表头判断,再生成可执行的读取计划。该过程让 DuckDB 能直接把普通 CSV 当作 SQL 表查询,但增加了启动开销。

CSV

为什么 DuckDB 很快?

本文详细说明 Zone Maps 存储在每个 row group 中,记录列的 min/max 值与 null 计数。扫描时先检查 zone map,谓词不满足的 row group 可被完全跳过,无需读取数据块。效果取决于列排序,时间戳或有序列能产生更窄范围,从而大幅减少 I/O。DuckDB 在查询 Parquet 时也复用文件自带的类似统计信息。

Zone Maps

为什么 DuckDB 很快?

本文将 Vectorized Execution 列为 DuckDB 速度优势的核心设计之一。它通过以 2048 行 chunks 为单位处理数据,配合 pipeline 机制实现流式计算,避免逐行函数调用开销。该方式让执行阶段能高效利用 CPU 缓存和 SIMD 指令,支撑后续 morsel 级并行。

Vectorized Execution

为什么 DuckDB 很快?

本文指出 DPccp 与 DPhyp 同为 DuckDB 连接顺序优化采用的动态规划方法。它基于连接图的连通子集递推最优解,在表数量较多时显著降低枚举开销,帮助优化器快速生成高质量物理计划。

DPccp

为什么 DuckDB 很快?

本文介绍 ADBC 作为 Arrow Database Connectivity 的缩写,它采用列式 Arrow 格式在系统间传输数据,避免 ODBC/JDBC 的逐行序列化。DuckDB 支持通过 ADBC 返回结果,进一步减少拷贝与类型转换。文中对比图显示,ADBC 在连接 Snowflake 等场景下显著优于传统驱动。

ADBC

为什么 DuckDB 很快?

文章将DuckDB定位为与Polars同类的进程内库,用户通过pip或链接libduckdb直接加载,无需启动服务器即可在程序内执行分析查询。

Polars

为什么 DuckDB 很快?

文章指出Arrow是DuckDB零拷贝场景的最优格式,其列式内存布局允许DuckDB直接读取或返回Arrow数据,绕过ODBC/JDBC的逐值函数调用与序列化,显著降低大型结果集的传输成本。

Apache Arrow

为什么 DuckDB 很快?

文章提及的公司之一,将DuckDB封装为云数据仓库产品,展示DuckDB从研究项目快速成长为商业分析引擎的实际落地案例。

MotherDuck

为什么 DuckDB 很快?

本文核心主题,一款进程内分析型SQL数据库,通过避免网络序列化、采用列式压缩存储加zonemaps、向量化执行与morsel并行等机制实现单节点高速查询。文章详细拆解其SQL解析、绑定、约33个优化器 passes、物理计划管道拆分,以及直接读取Parquet/CSV文件时利用文件内统计信息进行剪枝的能力,指出其单文件部署与pandas等库零拷贝集成的易用性。

DuckDB

为什么 DuckDB 很快?

本文发布方,使用DuckDB支撑数百万BI与分析查询,同时开发多引擎路由器以匹配不同查询的最优执行引擎,文章通过DuckDB internals分析体现其对查询引擎优化领域的专注。

Greybeam

为什么 DuckDB 很快?

本文中 Apache Parquet 是 DuckDB 直接查询的主要文件格式之一,其列式存储与行组设计让 DuckDB 无需转换即可高效读取。每个行组包含每列的 min/max 统计信息,DuckDB 通过读取文件 footer 获取这些统计来跳过不满足谓词的行组,仅拉取所需列块字节。远程文件场景下,该机制避免下载整个文件,显著降低 I/O 开销,与 DuckDB 原生 zone map 作用类似。

Apache Parquet

为什么 DuckDB 很快?

DuckDB可通过replacement scan直接读取Python pandas DataFrame底层buffer,在类型布局匹配时实现零拷贝,避免先将数据物化到内部表,文章对比了传统ODBC/JDBC逐行序列化的高开销。

Pandas

为什么 DuckDB 很快?

本文将 JDBC 与 ODBC 并列,视为造成客户端序列化开销的典型 API,每次取值都需单独调用,百亿行结果会产生数亿次调用。DuckDB 因采用 in-process 模型,无需通过 JDBC/ODBC 传输数据,直接在同一进程内共享 Arrow 或 DataFrame 缓冲区。该设计让 DuckDB 在相同硬件上远快于通过 JDBC 访问的服务器数据库。

JDBC

为什么 DuckDB 很快?

本文把 ODBC 归为传统行式客户端协议,其逐行逐字段的 API 导致大量函数调用与内存拷贝,成为大型结果集返回时的主要瓶颈。DuckDB 通过 in-process 执行完全绕过该协议,避免了序列化/反序列化开销。文中引用 2017 年论文指出,此类协议常比查询计算本身更耗时。

ODBC

为什么 DuckDB 很快?

本文中 Abstract Syntax Tree 是 SQL 解析阶段的产物,DuckDB 使用 Postgres 解析器 fork 将查询字符串转为包含 SELECT、Column、Literal 等节点的树结构。binder 随后在此树上完成名字绑定与类型检查,优化器则通过模式匹配子树进行 filter pushdown 等改写。没有 AST,后续的逻辑计划与物理计划转换无法进行。

Abstract Syntax Tree

生成可选择文本的 PDF

本文中 SQLite 是服务器端用于保存用户反馈的小型数据库,仅记录提交的消息内容与时间戳,不存储任何个人身份信息。这种存储方式直接服务于 SDocs 的反馈功能,体现了应用对隐私保护的重视,与“100% private”的设计理念保持一致。

SQLite

打字习惯影响 token 计数

本文将UUID列为安静的token泄漏来源,指出其常出现在工作提示中却显著增加消耗。示例UUID在OpenAI tokenizer中计为24个token,Claude中则为26个。作者说明这类ID、哈希和请求标识符是正常使用场景下容易被忽视的计费点。

UUID

逆向分析 Claude 的记忆

在本文用户记忆示例中,RRF被列为用户学习的信息检索技术之一,与BM25、FAISS、LDA、混合检索和LLM重排序共同构成兴趣记录。Claude通过此类记忆条目实现对用户专业背景的持久跟踪,仅在相关时选择性检索历史对话以补充细节,而非预先注入摘要。

RRF

逆向分析 ChatGPT 的记忆机制

RRF 出现在用户记忆示例中,是作者正在研究的现代信息检索技术之一,与 BM25、FAISS、LLM reranking 等共同构成学习主题。这些事实被显式长期存储并注入每次对话,帮助模型理解用户的知识背景和研究方向。

RRF

以防你不知道浏览器处理 Base64 速度有多快

Daniel Lemire为本文作者,他在博客中分享了浏览器Base64处理速度的实验设计与数据。文章通过其测试展示了不同API的性能排名及优化建议。

Daniel Lemire

Anthropic 收购 Bun

Bun v1.3 新增内置 Redis 客户端,这是该版本在提升 Node.js 兼容性和扩展数据库支持方面的具体改进之一,服务于更广泛的生产使用场景。

Redis

Anthropic 收购 Bun

Bun v1.2 版本内置了 PostgreSQL 客户端,同时显著提升 Node.js 兼容性,并被 X、Midjourney 等公司用于生产环境。

PostgreSQL

Anthropic 收购 Bun

Bun v1.3 同步加入内置 MySQL 客户端,与 Redis 客户端一同作为功能扩展,反映出 Bun 在 v1.3 阶段对常见数据库集成的重视。

MySQL

为什么反对 pgvector

本文将 Turbopuffer 列为托管向量数据库的例子,指出其起价为每月 64 美元且限额宽松。文章对比认为,与 pgvector 所需的超量内存配置、查询调优与索引重建工程成本相比,此类托管服务在生产环境中往往更简单且实际更便宜。

Turbopuffer

为什么反对 pgvector

本文指出 Timescale 公司发布了 pgvectorscale 扩展,用于改进 pgvector 的索引与过滤能力。文章将其视为对原生 pgvector 生产局限的间接承认,同时强调采用该扩展意味着引入额外依赖与升级管理工作。

Timescale

从零构建键值数据库

本文指出 Skip List 是 memtable 更常用的实现方式,能在内存中保持键的有序状态并提供接近对数时间的查找与插入性能。当内存列表达到阈值时,Skip List 中的数据被顺序刷新为磁盘上的 SSTable。它帮助 LSM 树在追加写入的同时维持排序特性。

Skip List

从零构建键值数据库

当文件大小超过阈值时,文章描述的压缩过程会关闭旧段、清理其中重复或已删除的数据,并合并多个段以缩小体积。此机制防止追加文件无限增长,同时维持查询性能。

Compaction

为什么反对 pgvector

文中将OpenSearch作为专用向量数据库的例子,其k-NN插件支持显式指定前置或后置过滤行为,能根据选择性自动或手动选择策略。相比pgvector,它内置了对过滤向量搜索的成本模型优化,避免用户手动处理查询规划难题。文章用此说明专用方案在过滤场景下的优势。

OpenSearch

从零构建键值数据库

在追加文件模式下,删除操作通过写入特殊墓碑记录(如值为null)来标记键已删除,而非直接移除。该机制让所有变更都以追加形式存在,保持文件不可变特性。

Tombstone

为什么反对 pgvector

本文指出Weaviate针对常见过滤模式进行了专门优化,属于支持高效过滤搜索的专用向量数据库。它能根据数据分布智能调整策略,减少pgvector常见的次优查询或锁竞争问题。文章以此说明专用数据库在混合元数据与向量搜索场景下的成熟度更高。

Weaviate

从零构建键值数据库

文章提出追加文件作为核心存储方式,记录只能添加到文件末尾而不可原地修改,从而避免更新时移动大量数据的问题。更新与删除均通过新增记录实现,同时用日志文件在内存数据丢失时提供恢复依据。

Append-Only File

从零构建键值数据库

本文中的 Memtable 是 LSM 树中的内存排序组件,所有新写入、更新和删除首先进入此处。它同时向追加日志写入备份以防崩溃,并在大小超限后刷新为不可变的 SSTable 文件。查询时优先检查 Memtable,未命中再回落到磁盘索引,显著提升写入与热点读取速度。

Memtable

为什么反对 pgvector

本文指出前置过滤指先按元数据条件筛选再执行向量搜索,适合高选择性过滤场景如仅筛选千分之一数据,能避免无效计算。但当过滤条件选择性低时,仍需扫描海量向量导致性能差。文章强调pgvector缺乏智能判断机制,用户需手动权衡并优化查询计划,否则易出现次优执行。

前置过滤

从零构建键值数据库

文章说明Google的LevelDB采用LSM Tree作为底层结构,用于构建大规模键值数据库。它继承了内存列表与磁盘SST的组合方式,支持高效追加与压缩操作,是LSM Tree在实际系统中的典型应用案例。

LevelDB

为什么反对 pgvector

作为 pgvectorscale 的核心组件,StreamingDiskANN 是一种新的搜索后端,文章强调它比原生 pgvector 索引更省内存,并支持更好的增量构建与过滤。该方案被描述为缓解生产环境中内存峰值与实时索引难题的尝试,但仍需额外扩展安装。

StreamingDiskANN

为什么反对 pgvector

文章指出pgvector需用户自行实现混合检索,包括向量相似度与全文搜索的权重分配、分数归一化及Reciprocal Rank Fusion等逻辑。专用向量数据库则通常内置该功能,无需额外开发。文中强调这属于pgvector在生产应用中需额外承担的工程复杂度之一。

混合检索

从零构建键值数据库

文章提到Amazon的DynamoDB使用LSM Tree实现键值存储,在Prime Day 2020峰值达到每秒8000万请求。该案例展示了LSM Tree在大规模场景下的高吞吐能力,同时印证了文章所构建结构的实用性。

DynamoDB

为什么反对 pgvector

IVFFlat 是 pgvector 提供的第一种索引类型,通过将向量空间预先划分为若干聚类来加速搜索。它索引创建速度较快、内存占用较低,但需手动指定列表数量,且随新数据插入集群分布会逐渐劣化,导致召回率下降。文章指出,生产中必须定期重建索引,期间会带来停机或数据不一致风险,不适合持续写入场景。

IVFFlat

为什么反对 pgvector

文章提及Pinecone能自动处理过滤选择性问题,属于提供智能查询规划的托管向量数据库。它无需用户手动实现预/后过滤切换或采样策略,可直接支持高性能元数据过滤向量搜索。文中将其与pgvector对比,强调托管方案在生产环境下的运维简便性。

Pinecone

为什么反对 pgvector

HNSW 是 pgvector 推荐的图结构索引,相比 IVFFlat 召回率更高、查询性能更稳定。它在数百万向量规模下构建时可能消耗 10GB 以上内存,且耗时数小时,同时每次插入都会更新图结构引发锁竞争。文章强调,这些特性使它在生产数据库上构建和维护极不友好,尤其不适合实时插入场景。

HNSW

从零构建键值数据库

本文中LSM Tree通过内存有序列表(memtable)与磁盘排序字符串表(SST)结合,实现追加写入的键值存储。更新与删除仅追加新记录,定期对磁盘文件进行压缩以控制大小并消除重复。该结构在文章中被用来解决文件无限增长与查询缓慢问题,已在生产环境验证其性能。

LSM Tree

从零构建键值数据库

本文将 SSTable 定义为内存排序列表刷新后写入磁盘的有序字符串表文件,作为不可变的持久化存储单元。SSTable 通过定期合并与压缩清除重复和删除标记,控制文件大小。它与 memtable 共同构成 LSM 树的核心持久化层,支持大规模键值存储。

SSTable

为什么反对 pgvector

本文提到,在 pgvector 中实现混合搜索(结合向量相似度与全文搜索)时,需要自行决定两种评分系统的权重、归一化分数,并可能实现 Reciprocal Rank Fusion 等融合方法。文章指出这些步骤并非不可能,但需要额外工程工作,而专用向量数据库通常已内置支持。

RRF

从零构建键值数据库

本文核心内容大量参考此书第三章“Data Structures that Power Your Database”。作者建议读者阅读原书,以深入理解键值数据库所用数据结构的设计思路。

Designing Data-Intensive Applications

从零构建键值数据库

本文特别致谢Martin Kleppmann,其著作第三章为本指南的主要参考来源。文章基于该书关于数据库底层数据结构的讲解,逐步推导键值存储的实现方式。

Martin Kleppmann

为什么反对 pgvector

Simon Willison 在本文中被提及,他分享了对这篇文章的看法。文章在开头链接了他的评论页面,表明该文引发了行业讨论,但未进一步展开其具体观点。

Simon Willison

从零构建键值数据库

文章提到MySQL采用B-Tree结构,与LSM Tree形成对比。它作为关系型数据库的例子,说明B-Tree更适合其事务与查询需求,而非本文重点的追加式键值存储方式。

MySQL

为什么反对 pgvector

PostgreSQL 是 pgvector 运行的基础数据库,支持事务一致性和元数据管理。文章强调其查询规划器未针对向量相似搜索优化,导致多条件过滤时执行计划经常 suboptimal,ANALYZE 也难以捕捉向量分布特征。索引重建时还会引发长时间内存高峰,影响正常查询。整体而言,作者认为在 PostgreSQL 中实现生产级向量搜索需要大量额外工程投入。

PostgreSQL

为什么反对 pgvector

Vector Database 指 Pinecone、Weaviate、Turbopuffer 等专用向量数据库。它们内置自适应过滤策略、混合搜索和实时索引能力,能自动处理选择性过滤和召回率平衡。文章对比后认为,这些系统在查询规划和扩展性上明显优于 pgvector,对多数中小团队反而更简单且成本更低。

Vector Database

从零构建键值数据库

本文中的 Sparse Index 仅为排序数据存储部分键的偏移量,查找时可从相邻已索引键的位置开始顺序扫描。它通过调整索引密度在内存占用与查找速度间权衡,密度越高速度越快但内存消耗越大。该设计仅在数据保持有序的前提下有效。

Sparse Index

为什么反对 pgvector

Timescale 发布的 pgvectorscale 扩展,旨在缓解 pgvector 生产痛点。它引入 StreamingDiskANN 搜索后端以降低内存占用,并改进增量索引构建与过滤性能。文章认为这实际承认原生 pgvector 不足以应对生产场景,但该扩展仍较新,且会增加依赖管理成本。

pgvectorscale

为什么反对 pgvector

本文将 Qdrant 列为与 Pinecone、Weaviate 并列的专用向量数据库示例,指出其存在并 thriving 的原因在于能应对向量搜索在规模化场景下的独特挑战。文章强调,pgvector 在生产中面临索引重建内存占用高、实时插入导致锁竞争、过滤查询规划 suboptimal 等问题,而 Qdrant 等工具则内置智能查询规划、实时索引和混合搜索能力。作者认为,对于多数团队而言,选择 Qdrant 这类专用方案比在 Postgres 上自行处理 pgvector 的运营复杂性更合理且可能更省成本。

Qdrant

从零构建键值数据库

文章中PostgreSQL作为关系型数据库的代表,使用B-Tree而非LSM Tree存储数据。这与本文介绍的内存列表加磁盘SST的键值方案不同,体现了不同数据库对存储结构的取舍。

PostgreSQL

从零构建键值数据库

本文以键值数据库为主题,演示如何从零开始用文件实现按键存取值的功能。它像JavaScript对象一样支持set和get操作,并通过追加写入、索引和分段机制解决持久化与查找效率问题。整个构建过程围绕该数据库展开,最终形成LSM树结构。

Key-Value Database

为什么反对 pgvector

文章明确指出 AWS RDS 不支持 pgvectorscale 扩展。若用户使用 RDS 托管 Postgres,则无法获得 StreamingDiskANN 等改进,只能继续面对原生 pgvector 的内存占用高、索引重建困难等问题,或自行管理 Postgres 实例。

AWS RDS

为什么反对 pgvector

文章说明后置过滤是先执行向量相似度搜索再应用元数据过滤,适用于宽松过滤条件。但当LIMIT值较小时,易因过滤掉多数结果而遗漏更优匹配,需通过oversampling如LIMIT 100来缓解。pgvector在此场景下无法动态调整策略,用户需自行猜测合适采样倍数并承受额外距离计算开销。

后置过滤

为什么反对 pgvector

pgvector 是 PostgreSQL 的向量扩展,用于在数据库中存储和搜索嵌入向量。它提供 IVFFlat 和 HNSW 两种索引,演示环境下安装和简单查询都很方便。但文章指出,其在生产中面临索引构建内存占用高、实时插入导致搜索质量下降、过滤查询需手动处理等严重问题,不适合高吞吐实时场景。作者认为 pgvector 更适合有数据库专家且接受运维复杂性的团队。

pgvector

从零构建键值数据库

文章指出关系型数据库采用B-Tree而非LSM Tree来组织数据,与本文构建的追加写入、排序字符串表机制形成对比。B-Tree被描述为另一种完全不同的存储结构,适用于PostgreSQL和MySQL等系统。

B-Tree

B 站游戏大模型翻译实践

混合检索是RAG术语检索模块的核心实现方式,包含查询通用术语库、场景相关术语动态加权以及IP关键术语精确匹配三部分。针对技能描述、剧情对白等不同文本类型调整权重,确保专有名词翻译一致性,是保障游戏本地化术语统一的关键技术组件。

混合检索

GPT-5 API 新参数

文章通过独立Lark语法为PostgreSQL定义LIMIT语义的CFG规则,指导GPT-5生成符合该方言的查询。示例中模型输出“SELECT ... ORDER BY ... LIMIT 5”的语句,与MS SQL的TOP写法形成对照,展示多方言约束能力。

PostgreSQL

GPT-5 API 新参数

本文CFG示例中为Microsoft SQL Server定义专用Lark语法,强制模型输出使用“SELECT TOP N”语法的查询。示例提示词要求生成符合该方言的订单查询,最终产生“SELECT TOP 5 ... ORDER BY ...”的合法语句,与PostgreSQL形成对比。

Microsoft SQL Server

Ghost 6.0

ClickHouse 是 Ghost Analytics 底层采用的开源数据库,通过 Tinybird 集成实现大规模事件数据的存储、检索和过滤。它支持实时洞察和受众细分分析,是 Ghost 6.0 分析功能能够规模化运行的关键技术基础。在 Ghost(Pro) 上所有数据均存储于欧盟地区。

ClickHouse

Ghost 6.0

Ghost 6.0 将 MySQL8 列为官方生产栈的核心组件,与 Ubuntu 24、Node 22 搭配使用。文章强调这是经过验证的稳定组合,适合自托管场景。虽然支持其他数据库,但官方仅详细测试和文档化 MySQL8,以降低维护复杂度。

MySQL

RAG 但是只需使用图像

文章在相关博文标题中提及 MongoDB,指出 Morphik 在生产环境中使用它来支撑多租户知识库,使数据模型更简洁且查询更快。该内容与主文章讨论的视觉文档检索 RAG 系统相关,属于 Morphik 整体技术栈的一部分。

MongoDB

RAG 但是只需使用图像

本文将Turbopuffer作为专为多向量场景优化的向量数据库,与MUVERA编码方案结合使用。它支持高效的patch嵌入检索,使视觉文档RAG系统在保持95.56%准确率的同时达到毫秒级响应,解决了传统多向量方案的性能瓶颈。

Turbopuffer

在 OpenAI 工作是什么感受

本文中 Azure Cosmos DB 被作者视为 OpenAI 可靠的文档存储服务,是仅有的三项可信 Azure 服务之一。作者指出其在实际生产中被采用,但整体 Azure 生态仍缺少 DynamoDB 等成熟替代品。这反映了 OpenAI 在文档数据库选型上的有限选项。

Azure Cosmos DB

在 OpenAI 工作是什么感受

文章提到 Amazon Aurora 是 OpenAI Azure 环境中没有对应的高性能关系数据库。作者对比后指出缺少 Aurora 这样的云原生数据库,导致团队更倾向内部实现或接受有限 IAM 与扩展能力。这反映 OpenAI 在规模化后对云服务功能的实际需求差距。

Amazon Aurora

在 OpenAI 工作是什么感受

本文中 Google Cloud Spanner 被列为 Azure 缺乏真正等价物的服务之一。作者指出 OpenAI 全部运行在 Azure 上,却没有类似 Spanner 的分布式关系型数据库可用,导致基础设施更依赖自建方案或接受功能限制。这反映出 OpenAI 在快速扩展时面临的云服务缺口,以及倾向内部实现的偏好。

Google Cloud Spanner

在 OpenAI 工作是什么感受

本文描述 OpenAI 内部重新实现了 TAO,这是 Meta 的图数据库服务。作者指出由于大量 Meta 人才流入,OpenAI 基础设施出现多个类似 Meta 的组件,包括 TAO 重实现及边缘身份认证整合。这体现了 OpenAI 代码库中受早期 Meta 影响的图数据与身份管理实践。

TAO

在 OpenAI 工作是什么感受

本文在讨论 Azure 局限时提及 Amazon DynamoDB,指出 Azure 缺少与之真正等效的托管 NoSQL 服务。作者认为这导致 OpenAI 更倾向于自研或使用 CosmosDB 等替代方案,影响了基础设施设计选择。该对比凸显了 Azure 在 OpenAI 技术栈中的短板。

Amazon DynamoDB

在 OpenAI 工作是什么感受

本文提到 Google Cloud Bigtable 是 Azure 没有对应服务的例子之一。OpenAI 使用 Azure 的 CosmosDB 和 BlobStore 等有限选项,但缺少 Bigtable 这样的大规模 NoSQL 宽表能力,作者认为这使得按自动扩展单元思考的场景较少。这体现了 OpenAI 基础设施对 Google Cloud 高级特性的依赖缺口。

Google Cloud Bigtable

在 OpenAI 工作是什么感受

文章指出 Google BigQuery 是 OpenAI 当前 Azure 环境中缺少的等价服务。作者对比 Azure 现有存储后强调,没有类似 BigQuery 的分析型数据仓库,导致数据处理和大规模查询能力受限。这与 OpenAI 内部强调自研和快速迭代的基础设施策略直接相关。

Google BigQuery

深入挖掘 Commits 中的敏感信息

本文指出 GH Archive 数据以 Google BigQuery 公共数据集形式提供,作者与 Truffle Security 合作开发的 force-push-scanner 工具直接查询该数据集,筛选零提交的 PushEvent。借助 BigQuery 可高效遍历自 2020 年以来的全部 GitHub 公开活动记录,而无需逐个下载 JSON 归档文件。该方案显著提升了对全 GitHub dangling commit 的 secrets 扫描规模与速度。

Google BigQuery

深入挖掘 Commits 中的敏感信息

本文通过 secrets triage 平台统计发现,MongoDB 凭证在零提交事件中泄露数量最多,主要来自学生和初级开发者的非关键 side-project。相比之下,GitHub PAT 和 AWS 凭证虽然数量较少,但价值更高,产生了大部分 bug bounty 收入。作者据此建议重点关注 .env 等配置文件中的高价值 secrets。

MongoDB

在监狱里远程工作

Project Limbo 是 Turso 发起的 SQLite 从零重写项目,Preston 在 Hacker News 上发现后迅速成为主要贡献者。他每天在工作之余花费数十小时研究相关代码与论文,最终因此获得 Turso 的全职 offer。文章将其描述为 Preston 从监狱走向专业数据库工程的关键桥梁。

Project Limbo

在监狱里远程工作

Turso 是 Preston Thorpe 最近加入的数据库公司,负责 SQLite 的现代化重写工作。公司通过 Discord 主动联系 Preston,认可其在开源贡献中的表现,最终提供全职职位。文章强调 Turso 的技术团队背景以及对公平雇佣政策的支持。

Turso

在监狱里远程工作

SQLite 是 Turso 正在从零重写的经典关系型数据库,本文称其为 Project Limbo 的核心目标。Preston 为深入参与该项目,花费大量时间阅读 SQLite 源码、学术论文和数据库课程。文章将此项目视为 Preston 职业转型的关键切入点。

SQLite

在监狱里远程工作

本文指出作者在研究Limbo时深入阅读SQLite源码、数据库内部论文,并学习Andy Pavlo的CMU讲座。这些学习直接支持作者从零开始参与数据库存储引擎开发,成为其从监狱转向专业数据库工程的关键知识来源。

Andy Pavlo

在监狱里远程工作

本文中Pekka Enberg与Glauber Costa共同接受访谈,分享Linux内核经验及多租户SQLite理念。作者在狱中通过这些访谈了解Turso项目,并将Pekka等内核维护者视为长期仰慕的对象,影响其参与Limbo开发的动力。

Pekka Enberg

从零开始的向量搜索引擎

文中引用一篇博客讨论如何将SQLite编译为Wasm并托管在GitHub Pages上以支持客户端查询,但作者为保持从零构建,未采用该方案,转而使用JSON文件和HTTP Range请求。

SQLite

三行代码判断是否闰年

本文引用其与合作者关于常数取模优化的论文Faster remainder by direct computation,用于解释把y%25转化为乘法比较的技巧,并指出该方法在编译器中的应用历史。

Daniel Lemire

MCP 大问题

本文指出supabase-mcp是AI IDE中最流行的MCP服务器之一,用于调试和运行生产数据查询,同时演示了攻击者如何利用其查询结果拼接特性,通过插入转义文本实现远程代码执行或提示注入,强调该集成带来的第四方数据信任风险。

Supabase

Stack Overflow 的衰落

SQL 既是本文数据提取所使用的查询语言,也是一个受影响较大的标签。文中分析显示,SQL 相关问题从 2022 年 11 月到 2024 年 11 月下降幅度显著,作者推测 AI 生成答案质量较高,导致开发者减少在平台提问。

SQL

Supabase 官方 MCP

PostgreSQL 是 Supabase 数据库引擎,本文 MCP 服务器提供 list_tables、execute_sql、apply_migration 等工具直接操作它。支持只读 Postgres 用户模式限制权限,同时可列出扩展和迁移记录。文章将其作为核心数据交互对象,并建议配合分支功能进行安全测试。

PostgreSQL

Supabase 官方 MCP

本文中 execute_sql 是 Database 工具组的核心功能,允许 AI 通过 MCP 执行任意 SQL 查询。配置 read_only=true 参数后,所有查询将以只读 Postgres 用户身份运行,以降低风险。文章在 Prompt Injection 示例中展示 SQL 可能被恶意指令滥用,因此建议结合手动审核和项目范围限制使用该工具。

SQL

Supabase 官方 MCP

本文中的 Supabase 指提供 MCP 服务器的平台,通过该服务器可将 AI 工具连接到其项目,使 AI 助手能代表用户查询和操作数据。服务器默认启用数据库、边缘函数、调试等多个工具组,支持按项目范围或只读模式配置以降低风险,还提供账户管理和分支管理功能。

Supabase

The DuckDB Local UI

本文右侧“近期文章”栏目列出了 LanceDB 团队与 Guillermo Sanchez 合作撰写的文章,主题是测试 DuckDB 对 Lance Lakehouse 格式的支持,与本篇 UI 发布形成相关内容推荐。

LanceDB

The DuckDB Local UI

本文核心主题是 DuckDB Local UI,作为 ui 扩展的一部分发布,提供基于交互式笔记本的 Web 界面。它支持数据库浏览、表摘要、SQL 编辑与结果筛选,并通过 Column Explorer 进行列级数据洞察。UI 采用本地 HTTP 服务器和二进制结果传输,实现低延迟体验。

DuckDB Local UI

The DuckDB Local UI

本文介绍 DuckDB 作为核心数据库项目,新增本地 Web UI 功能以简化交互式查询。从 v1.2.1 起,用户可通过 CLI 的 -ui 参数或 SQL 命令启动界面,替代传统命令行工具的不足。UI 完全本地运行,数据不离开用户电脑,同时保留对文件系统和内存的完整访问能力。

DuckDB

The DuckDB Local UI

在 DuckDB Local UI 中,SQL 是编写查询的主要方式,笔记本单元格支持语法高亮和自动补全。用户可执行整个单元格或选中部分,并对结果进行排序、筛选与二次转换。UI 仍完全依赖 DuckDB 的原生 SQL 引擎执行所有操作。

SQL

The DuckDB Local UI

Gábor Szárnyas 是本文共同作者,与 Jeff Raymakers 合作完成了 DuckDB UI 的发布介绍,涵盖了 UI 的笔记本、列浏览器等功能设计以及开源扩展的实现细节。

Gábor Szárnyas

The DuckDB Local UI

DuckDB Labs 与 MotherDuck 共同协作完成 DuckDB Local UI 的开发,并将其作为官方扩展发布。文章提及该合作关系,强调 UI 的设计理念与 DuckDB 保持一致:简单、快速、功能丰富且本地优先。

DuckDB Labs

The DuckDB Local UI

Jeff Raymakers 是本文作者之一,与 Gábor Szárnyas 共同撰写了这篇 DuckDB 本地 UI 发布公告,详细说明了 UI 的启动方式、核心功能以及与 MotherDuck 的协作背景。

Jeff Raymakers

The DuckDB Local UI

MotherDuck 与 DuckDB Labs 合作开发并发布该本地 UI 扩展,同时提供可选的云端数据仓库集成。用户需主动登录 MotherDuck 才能使用其持久化和团队共享功能。文章强调 UI 默认仅本地运行,MotherDuck 连接为显式 opt-in 模式。

MotherDuck

RAG 指南 - Prompt Engineering Guide

本文在Modular RAG与Advanced RAG预检索阶段提到混合检索(hybrid search),结合关键词检索与语义检索;适用于不同查询类型,能同时获取精确匹配与上下文丰富的文档,提升召回与精度。

混合检索

RAG 指南 - Prompt Engineering Guide

本文描述RAG流程中先对文档分块并生成嵌入向量,再索引到向量数据库(vector store);推理时将查询同样嵌入,通过与库中向量比较获取相关文档,作为生成上下文。

Vector Database

RAG 指南 - Prompt Engineering Guide

本文在RAG工具部分提到Weaviate提供的Verba工具,可用于构建个人助理类RAG应用,属于支持检索增强生成的向量数据库与应用层解决方案之一。

Weaviate

Supabase 设计状况

本文中 SQL 指 Supabase 仪表盘正转向 SQL-first 的体验,设计团队以此支持 Postgres 开发者学习和使用 SQL。设计工作围绕这一方向展开,帮助产品团队快速验证与迭代相关功能。

SQL

Supabase 设计状况

Supabase 产品设计原则之一是面向 Postgres 开发者优化仪表盘体验,正逐步转向 SQL 优先界面,帮助用户更直接学习与使用 SQL,同时通过 kaizen 与整合机制保持迭代速度。

PostgreSQL

Supabase 设计状况

Supabase 的设计团队成立三年后才明确自身定位,目前保持三人规模,强调以敏捷开发思维进行日常小步迭代与长期里程碑并行推进。团队通过每日产出设计物(如 Figma 原型、代码原型)帮助工程团队快速达成共识,避免阻塞。

Supabase

Rewind 创始人讲述他的 SwiftUI 开发生涯

Stocketa 最初使用 Core Data 进行数据持久化,后来迁移到 Firebase 作为数据库方案,支持股票卡片等核心数据的存储与同步。

Firebase

Vercel 背后成本对比

Vercel Postgres基于Neon构建,免费计算时间比Neon少69%,存储空间少50%。付费计算和传输费用存在少量加价,文章给出具体小时费率和GB单价对比。

Vercel Postgres

Vercel 背后成本对比

Upstash是Vercel KV的底层服务提供商,文章对比显示直接使用Upstash在请求和存储费用上更低,例如付费请求单价低约75%。

Upstash

Vercel 背后成本对比

Vercel KV基于Upstash构建,免费计划每日请求上限1万,付费请求加价75%。其全球复制和存储定价也高于直接使用Upstash,文章列出具体差价数据。

Vercel KV

Vercel 背后成本对比

本文将Neon定位为Vercel Postgres底层服务提供商,并列出其计费细节以对比Vercel加价。Neon免费计算时长达192小时/月(比Vercel多69%),免费存储0.5GB(多50%),付费计算时长单价0.102美元/小时;写入数据与传输流量均为0.096美元/GB,存储单价与Vercel一致为0.12美元/GB/月。文章通过这些数据指出Vercel Postgres在计算与存储上的具体溢价情况。

Neon

远离 UUID?

本文讨论随机UUID作为会话cookie或访问令牌的替代方案。它是128位值,格式为36个十六进制字符加连字符,实际随机位仅122位。文章指出其熵值不足以满足高安全要求,容易被大规模猜测攻击破解。

UUID

Facebook 关闭时事通讯平台 Bulletin

SQL在本页被列为可能触发Cloudflare拦截的动作之一,用户提交SQL命令可能导致被阻止访问niemanlab.org,需联系站长说明具体操作以解除限制。

SQL

WordPress WebAssembly Demo:实现客户端无服务器运行

本文指出 MySQL 无法以 WASM 形式运行,而 SQLite 可以运行。WordPress 通过 wp-db-sqlite 插件支持 SQLite,因此在 WebAssembly 环境中使用 SQLite 替代 MySQL 作为数据库。SQLite 使无服务器的浏览器端 WordPress 成为可能。

SQLite

iOS 备忘录的 URL Scheme

本文中 UUID 是 Apple Notes 隐藏 URL scheme(mobilenotes://showNote?identifier=UUID)用来定位并直接打开特定笔记的唯一标识符。作者指出 iOS 16 的 Shortcuts Content Graph 会以小写形式显示 UUID,必须手动转为大写才能正常工作。获取 UUID 的唯一方法是结合 Find Notes 与 Show Content Graph 操作,再手动复制。

UUID

WordPress WebAssembly Demo:实现客户端无服务器运行

本文指出 MySQL 目前无法以 WebAssembly 形式运行,因此项目改用 SQLite 及 wp-db-sqlite 插件来替代。WordPress 数据被打包成约 46MB 的文件后挂载到 PHP 的虚拟文件系统中,从而在浏览器内完成安装与运行。作者强调这一替换是实现无服务器 WordPress 的关键技术妥协。

MySQL

10 条 DALL·E 2 使用经验

文中提及使用 Redpanda 进行流分析的博客文章,作为需要配图的技术主题之一,作者用 DALL·E 2 为其生成了更贴合内容的缩略图。

Redpanda

Httpie 误操作丢失 GitHub 5.4万星标

文章在经验教训中提出数据库设计应采用软删除机制,因为用户难免犯错;对于硬删除操作,系统应加入延迟执行环节,给用户更多纠正机会。作者认为这种方式能有效防止像 GitHub 星标永久级联删除这类不可逆损失的发生。

软删除

Moxie Marlinspike 对 Web3 的初印象

文章提到 Rainbow 钱包在构建社交图谱、展示等功能时,选择将这些数据存储在 Firebase 而非区块链上。这体现了作者观点:即使在 web3 项目中,开发者也倾向于使用中心化服务来实现快速迭代和功能扩展,而非完全依赖缓慢演进的分布式协议。

Firebase

Web3 初印象与质疑

Rainbow 钱包选择在 Firebase 而非区块链上构建社交图谱和展示等功能。作者用此说明即使自称去中心化的应用,在追求性能与功能时仍会转向中心化后端。文章以此强调 web3 实际开发中基础设施的中心化倾向。

Firebase

新闻媒体流量与内容质量的边界

本文将提交SQL命令列为可能触发Cloudflare拦截的具体行为之一。页面说明此类操作或异常数据输入会被安全系统视为潜在攻击而直接阻断访问。

SQL

Figma 研究笔记:Product-Led Growth 的误区与思考

文章以PingCAP为例,说明开源PLG公司早期优先服务头部用户而非盲目扩大社区。作者指出,PingCAP与美国成功开源项目类似,都先打磨Uber、Airbnb等标杆客户,再由这些用户带动社区与商业用户增长。

PingCAP