【LevelDB 和 Sqlite】

关于 LevelDB的小总结:

LevelDB 和 SQLite 是两种不同类型的数据库:

1. LevelDB:

  • 特点:
  • NoSQL 数据库
  • 键值(Key-Value)存储
  • 由 Google 开发
  • 数据按键排序存储
  • 支持批量操作
  • 简单的 Get/Put/Delete 接口

示例操作:

key1 -> value1

key2 -> value2

2. SQLite:

特点:

  • 关系型数据库(SQL)
  • 表格结构存储
  • 支持 SQL 查询
  • 支持事务
  • 支持外键和索引

示例表:

CREATE TABLE users (

id INTEGER PRIMARY KEY,

name TEXT,

age INTEGER

);

3. 为什么 Chrome 选择 LevelDB:

性能好

简单高效

适合键值存储

内存占用小

适合浏览器环境

复制代码
IndexedDB 的实现:
	Chrome: LevelDB
	Firefox: SQLite
	Safari: SQLite

所以 Chrome 选择 LevelDB 是因为它:

  • 更适合存储 Web 数据

  • 性能更好

  • 资源占用更少

  • 更简单的数据模型

    Chrome 确实在早期使用的是 SQLite。
    这个改变发生在 2011 年左右。
    具体历史:
    Chrome 数据存储演变

    ├── 2008-2011: SQLite
    │ └── 用于所有本地存储(历史记录、书签等)

    ├── 2011: 开始转向 LevelDB
    │ ├── Google 发布 LevelDB
    │ └── Chrome 逐步采用

    └── 现在: LevelDB
    ├── IndexedDB 后端存储
    ├── 历史记录
    └── 其他浏览器数据

    但注意:
    Chrome OS 仍然使用 SQLite 用于某些功能
    某些特定功能可能仍在使用 SQLite
    这个转换是渐进的过程
    Chrome OS 使用 SQLite 的主要场景包括:

    1. 系统功能:
    • 系统设置数据库
    • 用户账户信息
    • 系统日志
    • 系统更新记录
      2.Android 应用支持:
      Chrome OS
      └── Android 子系统
      └── SQLite (Android 原生支持)
      ├── 应用数据
      ├── 内容提供者(Content Providers)
      └── 应用设置

    3.特定应用场景:

    • 文件系统元数据
    • 搜索索引
    • 本地媒体库
    • 系统备份数据
    1. 选择 SQLite 的原因:
    • 需要复杂查询能力
    • 需要事务支持
    • 需要关系型数据结构
    • 与 Android 生态系统兼容

    而浏览器相关的功能(如 IndexedDB)仍使用 LevelDB:
    Chrome OS
    ├── 系统层 (SQLite)
    │ └── 系统功能和设置

    └── 浏览器层 (LevelDB)
    └── Web 存储和缓存

    Chrome/Chrome OS 存储引擎使用情况

    ├── SQLite 使用场景
    │ ├── Chrome OS 系统层
    │ │ ├── 系统设置
    │ │ ├── 用户账户管理
    │ │ ├── 系统日志
    │ │ └── 系统更新记录
    │ │
    │ ├── Android 应用支持
    │ │ ├── Android 应用数据
    │ │ └── Content Providers
    │ │
    │ └── 其他特定功能
    │ ├── 文件系统元数据
    │ └── 本地媒体库索引

    └── LevelDB 使用场景
    ├── 浏览器核心功能
    │ ├── IndexedDB 存储
    │ ├── 浏览历史
    │ ├── Cookie 存储
    │ └── 书签数据

    ├── Web 应用数据
    │ ├── Service Worker 缓存
    │ ├── Web Storage
    │ └── Application Cache

    └── 扩展相关
    ├── 扩展数据存储
    ├── 扩展设置
    └── 扩展状态

夜深啦,晚安 😴,🍀

相关推荐
L.S.V.1 分钟前
MYSQL(三)--服务器启动参数与配置
服务器·数据库·mysql
有时间要学习12 分钟前
MySQL——视图 && 用户管理 && 语言访问
数据库·mysql
趁你还年轻_1 小时前
Redis大量key集中过期怎么办
数据库·redis·缓存
GUIQU.1 小时前
【Oracle】视图
数据库·oracle
南棱笑笑生1 小时前
20250605在微星X99主板中配置WIN10和ubuntu22.04.6双系统启动的引导设置
数据库
Leo.yuan1 小时前
实时数据仓库是什么?数据仓库设计怎么做?
大数据·数据库·数据仓库·数据分析·spark
艾露z1 小时前
深度解析Mysql中MVCC的工作机制
java·数据库·后端·mysql
gs801402 小时前
[闭源saas选项]Pinecone:为向量数据库而生的实时语义搜索引擎
数据库·搜索引擎
大熊猫侯佩2 小时前
使用令牌(Token)进一步优化 SwiftData 2.0 中历史记录追踪(History Trace)的使用
数据库·swift·apple