您如何计算在大型 Postgresql 表上创建索引的时间?
Posted
技术标签:
【中文标题】您如何计算在大型 Postgresql 表上创建索引的时间?【英文标题】:How do you calculate the time to create an index on a large Postgresql table? 【发布时间】:2016-12-24 12:16:03 【问题描述】:我有一个包含 2600 万行的 Postgres 表,我想添加一个索引布尔列。
在生产环境中尝试这种类型的操作之前,有没有办法计算出这种操作需要多长时间?
【问题讨论】:
为什么要索引布尔列?这不会显着提高性能,因为布尔值只有两个选项是真/假,而唯一的东西可以通过索引来改进。 我想索引布尔列只是因为我认为它会提高性能。您是否有任何资源或链接说 (1) 布尔列上的索引不会提高性能,或者 (2) 描述如何知道索引是否有帮助? 这适用于 mysql,但同样的想法也适用。通过索引布尔列,您将发现查询的速度几乎没有提高。 ***.com/a/1845014/1729859 还有***.com/a/10524734/1729859 嗨,Carolyn,您最后是否承担了这个索引的创建工作?如果有,需要多长时间? @ScaryWombat 如果我没记错的话,我想运行它只需要一两分钟。不幸的是,我仍然没有找到一个好的方法来提前估计那种事情¯_(ツ)_/¯ 【参考方案1】:没有办法计算索引时间,因为它取决于许多因素(硬件、软件、配置、负载等)
好消息是你可以CREATE INDEX CONCURRENTLY
,这需要更长的时间但不会锁表。因此该操作除了服务器负载较高之外没有任何副作用。
对于一些警告,check the documentation。
【讨论】:
谢谢!很高兴知道。以上是关于您如何计算在大型 Postgresql 表上创建索引的时间?的主要内容,如果未能解决你的问题,请参考以下文章