首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库分片和分区的资源

数据库分片和分区的资源
EN

Stack Overflow用户
提问于 2008-11-15 02:34:16
回答 4查看 3.5K关注 0票数 8

我正在使用一个遇到可伸缩性问题的数据库模式。模式中的一个表已经增长到大约1000万行,我正在探索分片和分区选项,以允许该模式扩展到更大的数据集(例如,10亿到1000亿行)。我们的应用程序还必须能够部署到多个数据库产品上,包括但不限于甲骨文、MS SQL Server和MySQL。

一般来说,这是一个很大的问题,我想了解一下可用的选项。数据库分片和分区策略有哪些资源(书籍、白皮书、网站)?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-04-05 23:52:40

我同意其他答案,即您应该在求助于分片之前查看您的模式和索引。1000万行完全在任何主要数据库引擎的能力范围内。

但是,如果你想要一些学习分片主题的资源,那么可以试试这些:

  • Scalability Best Practices: Lessons from eBay
  • Randy Shoup on eBay's Architectural Principles - Video and Presentation
  • High Scalability Site
  • Mr. Moore gets to punt on sharding (when not to do it)
票数 10
EN

Stack Overflow用户

发布于 2008-11-16 16:51:49

我同意Mike Woodhouse的观点,即当前的大小不应该是问题-提问者也同意这一点。

大多数商业DBMS在一个或多个名称下的一些或另一个中提供了对碎片表的支持。关键问题之一是,是否有一种合理的方法将数据拆分成片段。一种常见的方法是基于日期,因此,2008年11月的所有值都放在一个片段中,2008年10月的值放在另一个片段中,依此类推。当涉及到删除旧数据时,这具有优势。您可能会删除包含2001年10月的数据的片段(数据保留7年),而不会影响其他片段。这种碎片还有助于“碎片消除”;如果查询显然不需要从给定的碎片中读取数据,那么它将被保留为未读,这可以为您带来巨大的性能优势。(例如,如果优化器知道查询针对的是2008年10月的日期,它将忽略除包含2008年10月数据的片段以外的所有片段。)

还有其他碎片技术-循环调度将负载分布在多个磁盘上,但这意味着您无法从碎片消除中受益。

票数 2
EN

Stack Overflow用户

发布于 2008-11-15 11:54:23

从DBMS的角度来看,1000万行并不算大,在开始规划包含分片或分区的数据物理分布之前,我会先看一下索引和查询计划,在表增长了几个数量级之前,这并不是必须的。

当然,都是我的错。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/292039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档