---
title: SQLite：为什么 SQLite 是用 C 语言编写的？C 是最好的，没有比 C 更快的语言 
date: 2025-10-19T10:13:46Z
modified: 2025-10-19T10:17:34Z
permalink: "https://www.appinn.com/sqlite-whyc/"
type: post
status: publish
excerpt: ""
categories:
  - 每日发现
tags:
  - 每日发现
  - SQLite
featured_image: "https://www.appinn.com/wp-content/uploads/2025/10/Copy-of-appinn-homework-2025-10-19T180015.629.jpg"
author: 青小蛙
timestamp: 2025-10-19T10:17:34Z
---

在 SQLite 官网有一篇名为《[为什么 SQLite 是用 C 语言编写的](https://www.sqlite.org/whyc.html)》的文章，开头就用了两句非常简短但有力的话：

1. C 是最好的
2. 没有比 C 更快的语言

![](https://www.appinn.com/wp-content/uploads/2025/10/Copy-of-appinn-homework-2025-10-19T180015.629.jpg)

来证明这个标题：为什么 SQLite 是用 C 语言编写的

## 性能

就性能来说，像 SQLite 这样频繁使用的底层库需要足够快。（SQLite 确实很快），C 语言是编写快速代码的绝佳语言，其他编程语言有时会声称“和 C 一样快”。但没有其他语言声称在通用编程方面比 C 更快，因为实际上没有比 C 更快的语言。

## 兼容性

就兼容性来说，几乎所有系统都具有调用 C 编写的库的能力。

## 低依赖性

就低依赖性来说：用 C 编写的库不会依赖很多运行时，而其他“现代”语言通常需要加载数千个接口的数兆字节运行时。

## 稳定性

C 是一种“老、稳、无惊喜”的语言。对一个追求长期稳定的项目来说，这比花哨的新语法更重要。

## 所以，SQLite 是用 C 语言编写的

---

而在另外两个问题里：

## 一、为什么 SQLite 不用面向对象语言（C++、Java）？

### 兼容性

C 写的库几乎能被所有语言调用，而 C++、Java 只能被相同语言用。

面向对象是一种思想，不一定要用专门的语言实现。

### 性能与简洁

过程式的 C 代码常常更快、更简单。

### 历史原因

当年（约 2000 年）C++ 编译器混乱、Java 不成熟，C 是最稳的选择。

## 二、为什么不用“安全语言”（Rust、Go）？

这些语言出现太晚，SQLite 已经成型。重写可能带来更多 bug，还会变慢。

安全语言多加了运行时检查，会影响测试覆盖和性能。它们在内存不足时会直接崩溃，而 SQLite 需要能平稳恢复。

## 三、是否会用 Rust 重写？

有可能，但前提是：

- Rust 得更稳定、能通用于所有语言；
- 能在嵌入式设备上运行；
- 能做 100% 分支测试；
- 能优雅处理内存不足；
- 性能不比 C 差。

---

**听说搜狐一直在用 AI 抄袭我们的内容，点名声讨第八天。**

---

原文：https://www.appinn.com/sqlite-whyc/

## 关注我们

- 微博：[https://weibo.com/appinncom](https://weibo.com/appinncom)
- B站：[https://space.bilibili.com/10979326](https://space.bilibili.com/10979326)
- 小红书：[https://kutt.appinn.com/6QwshF](https://kutt.appinn.com/6QwshF)
- Facebook：[https://www.facebook.com/appinncom/](https://www.facebook.com/appinncom/)
- BlueSky：[https://bsky.app/profile/appinn.bsky.social](https://bsky.app/profile/appinn.bsky.social)
- X：[https://x.com/appinn](https://x.com/appinn)
- 微信公众号：搜索「小众软件」
- TG频道：@appinnfeed

想要推荐自己的应用：[https://meta.appinn.net/c/faxian/10](https://meta.appinn.net/c/faxian/10)

爱发电：[https://afdian.com/a/qingxwa](https://afdian.com/a/qingxwa) （打赏我们，让我们更好的创作）

## Topics

**分类目录:** [每日发现](https://www.appinn.com/category/faxian/?output_format=md)

**标签:** [SQLite](https://www.appinn.com/tag/sqlite/?output_format=md)