首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表分区的缺点(例如Server)

问表分区的缺点(例如Server)
EN

Stack Overflow用户
提问于 2018-02-27 16:52:20
回答 2查看 11.7K关注 0票数 4

我从来没有划分过一个表,但是从我所读到的资料来看,它在查询和归档数据方面有很多优势。

它比创建索引更好吗?有什么缺点吗?用于分区的时间是唯一的成本吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-27 19:14:17

背景:

如果大多数操作发生在内存中,则数据库查询的延迟将很低。数据库会尽最大努力自动完成这一任务。它们还提供调优选项,以确保缓冲区缓存/缓冲池和其他选项可以正确设置。

为什么要划分表?

随着我们不断向表中添加行,主键索引和表上任何其他索引的大小也会增加。一旦它们增长到整个索引不适合配置的缓冲区大小(存储频繁访问的页面的位置),数据库引擎将不得不从磁盘中获取索引页,从而减缓查询的速度。

它不优于或低于指标,这是一种不同的技术。

在进入分区路由之前,

  • 检查查询的解释计划(如果有特定的访问模式),并对其进行调优,以确保使用了正确的索引并限制了磁盘操作。
  • 检查表和索引的大小以及它与配置的数据库内存(缓冲池)的关系。
  • 检查表是否可以碎片化。所有数据库都提供这样做的命令(MySQL调用它优化,PostgreSQL称它为真空)
  • 检查您是否可以添加内存到服务器,RAM是便宜的。

分区的优点

  • 较小的表,较小的索引,较低的查询延迟。

Disadvantages

  • 由于应用程序需要更改才能写入正确的分区,因此具有侵入性。如果分区的数量增长了,那么分区的问题也是一样的.AFAIK完全重新分区将需要增加分区计数。当然是一项非琐碎的活动。
票数 4
EN

Stack Overflow用户

发布于 2018-02-27 21:24:42

对表进行分区有两个原因--如果表非常大,或者需要快速添加或删除数据片段。

在不同的大型审计表上,您可能会发现将表划分为每月分区是有用的。这样,当您搜索给定月份的行时,Server只需查看与该月份关联的分区。在执行选择时,可以将分区视为典型的表--不需要特殊的语法。

如果在一个新的月份开始时,您可能想要删除最老的一个月的数据并添加最新的月份,那么删除一个分区并添加一个分区是一个简单的操作。Server不需要重新构建整个表上的索引-它只是在内部删除和添加分区作为元操作,通常需要几秒钟。

这样做的SQL并不难,您可以安排备份各个分区。但是,Server中的分区仅在企业版上可用,并且已分区表不能还原到其他版本的Server。

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

https://stackoverflow.com/questions/49013911

复制
相关文章

相似问题

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