复制品

我对Google的Bigtable了解不多,但我想知道Google的Bigtable和MySQL这样的关系数据库有什么不同.这两种方式的局限性是什么?

推荐答案

Bigtable是谷歌为处理该公司经常处理的海量信息而发明的.Bigtable数据集可以增长到巨大的大小(许多PB),存储分布在大量服务器上.使用Bigtable的系统包括谷歌的网络索引和谷歌地球等项目.

根据关于这个主题的Google whitepaper条报道:

Bigtable是稀疏的、分布式的、持久的多维排序映射.映射由行键、列键和时间戳索引;映射中的每个值都是一个未解释的字节array.

Bigtable和MySQL的内部机制如此不同,以至于难以进行比较,预期目标也没有太多重叠.但是你可以把Bigtable想象成一个单表数据库.例如,想象一下,如果你试图用MySQL数据库实现谷歌的整个网络搜索系统,你会遇到什么困难——Bigtable就是围绕解决这些问题而建立的.

可以使用一种名为GQL("gee-kwal")的语言从AppEngine等服务查询Bigtable数据集,GQL是一种基于SQL子集的语言.GQL中明显缺少任何类型的JOIN命令.由于Bigtable数据库的分布式特性,在两个表之间执行连接效率非常低.相反,程序员必须在他的应用程序中实现这样的逻辑,或者将他的应用程序设计成不需要它.

Database相关问答推荐

Power BI中的计数

芭蕾舞女演员坚持 1:N 关系

postgres 索引扫描的启动成本(postgresql 书的内部 struct )

数据库 struct 建议

PostgreSQL 是否对只读事务进行了一些性能优化

对百万行表,MySQL 的 LIKE 查询的性能怎样?

每个请求可以多次查询 MongoDB 吗?

如何在构建时创建填充的 MySQL Docker 映像

使用 PHPUnit 进行数据库测试的最佳实践

我需要在这个 Django 模型中添加一个 db_index 吗?

恢复数据库备份时出错

锁定机制(悲观/乐观)如何与数据库事务隔离级别相关?

mysql,dump,数据库restore恢复

将 Android Room 数据库与 Firebase 实时数据库相关联

friendship数据库模式

我如何做大于/小于使用 MongoDB?

在将字符串插入数据库期间单引号转义

关系未更新的 NSFetchedResultsController

在 SQLite 表中使用文本作为主键不好?

为什么负 id 或零被认为是不好的做法?