首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >日期聚集索引会加速具有日期范围的查询吗?( Server)

日期聚集索引会加速具有日期范围的查询吗?( Server)
EN

Database Administration用户
提问于 2017-10-31 19:26:03
回答 1查看 1.3K关注 0票数 1

我并不是指数方面的专家--我现在正试着用我的方式完成一些材料。

不管怎么说,假设我有一张桌子,上面有超过3年的700万张记录。然而,最常见的查询将使用整数字段(unix纪元时间),比如最后3个月。

这个3个月的查询通常需要18秒--但是很多其他的查询可能都建立在它之上,所以我试图加快它的速度。我在unix_epoch_time int字段上创建了一个聚集索引,该索引最终将位于“where”语句筛选器中。

然而,这似乎根本没有加快查询时间。这是否意味着这个聚集索引是一种虚假的浪费?或者大约占查询时间的1%?我以为会快得多。

EN

回答 1

Database Administration用户

发布于 2017-12-01 11:47:54

您会问聚集索引是否是一种浪费:理想情况下,聚集索引是唯一的、相对较小的,并且一旦创建(请参阅https://www.red-gate.com/simple-talk/sql/learn-sql-server/effective-clustered-indexes/ ),您的整数字段肯定很小,但我猜它并不是唯一的,尽管不可能从问题中判断出来。

要回答这个问题,您可以使用一个标识(1,1)作为聚集索引键,然后使用Unix时间字段创建一个非聚集索引。为了使查询更快,您可以在非聚集索引中包括常用的列,如果查询被索引所覆盖,它们甚至不需要访问主表。

另外,如果您最后3个月的数据可以根据特定的日期范围定义,您甚至可以构建一个筛选索引,以限制索引的大小并加快搜索速度。根据使用1m+行表的经验,如果您控制索引,那么您应该能够在不到一秒钟的时间内满足大多数查询。

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

https://dba.stackexchange.com/questions/189792

复制
相关文章

相似问题

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