数据库设计(大表)

时间:2011-12-17 11:00:07

标签: mysql

什么是大表(即Google DataBase设计),我有这样的要求,但我不知道如何设计它。

在Big Table中,如何维护它们之间的关系?

2 个答案:

答案 0 :(得分:0)

使用与维护关系的innodb存储引擎创建所有表

根据要求

选择表格字段

答案 1 :(得分:-1)

谷歌发布的Big table的论文可能很难阅读。希望我的回答可以帮助你开始理解。

过去,RDBMS按行存储数据,一行记录一行,1,2,3,4,5 .....

然后,如果你想找到记录5,没关系,数据库将在B +树(或类似的东西)中寻找记录5的地址,为你加载它。

但是,噩梦就是当你想获得有列" user = Michael"的记录时,数据库无法查找每条记录以查看用户是否是" Michael&#34 ;

Big Table有不同的存储数据的方式。它通过倒置表存储所有列。当我们想要查找满足" user = Michael"的所有记录时,它通过B +树或散列表将其作为密钥来获取,并获取存储所有记录列表的倒置表的地址令人满意。

可能一个好的起点是Lucene,一个开源的全文搜索引擎,完全实现大表原则。

请注意,倒置表不是RDBMS中基于列的存储。他们是不同的,请记住这一点。