运维开发网

“列添加”(模式修改)是NoSQL(mongodb)数据库相对于像MySQL这样的RDBMS的关键优势

运维开发网 https://www.qedev.com 2020-03-18 15:36 出处:网络 作者:运维开发网整理
我最近参加了由Nogen / MongoDB上的10gen赞助的技术讲座.我不是DBA超级大师或其他任何人,而且演讲者提出了一个有趣的观点,旨在说明使用NoSQL数据库的优势之一. 这个例子是这样的: Craigslist正在使用MySQL.他们有一张巨大的桌子,里面有数百万甚至数亿的记录.他们需要通过向其添加列来修改此表的架构.由于此表中有如此多的记录,实际添加该列需要3个月 他进一步说,使用N
我最近参加了由Nogen / MongoDB上的10gen赞助的技术讲座.我不是DBA超级大师或其他任何人,而且演讲者提出了一个有趣的观点,旨在说明使用NoSQL数据库的优势之一.

这个例子是这样的:

Craigslist正在使用MySQL.他们有一张巨大的桌子,里面有数百万甚至数亿的记录.他们需要通过向其添加列来修改此表的架构.由于此表中有如此多的记录,实际添加该列需要3个月

他进一步说,使用NoSQL数据库,您不必执行任何操作 – 只需将对象保存到具有您要记录的额外属性的集合中.

我明白了,也许用RDBMS引擎修改一个庞大的数据集需要一段时间.但这真的是RDBMS的一个巨大缺点吗?这夸张了吗?可以加快这样的行动吗?

我对这3个月的时间框架持高度怀疑态度.我以前曾使用过数以亿计的行处理MySQL表,甚至在几年前的硬件上,添加一列可能最多需要几天,而不是几个月.当然,这取决于每行中包含的数据量,但我仍然持怀疑态度.

当然只是使用ALTER TABLE扩展表可能不是最好的方法…从旧的表创建新表通常要快得多(CREATE TABLE [新表] LIKE [旧表]),改变在空表上的schema,将旧表中的所有行复制到新表中,(INSERT INTO [new table] SELECT [fields] FROM [old table]),然后将new重命名为old.

0

精彩评论

暂无评论...
验证码 换一张
取 消