gpt4 book ai didi

sql - 如何更快地创建索引

转载 作者:IT王子 更新时间:2023-10-29 06:26:48 25 4
gpt4 key购买 nike

我有一个大约 60GB 的表,我正在尝试创建索引,而且它非常慢(将近一天,而且还在运行!)

我看到大部分时间都在磁盘 I/O(4MB/s) 上,它并没有那么多地使用内存或 cpu

我试过:运行“pragma cache_zise = 10000”和“pragma page_zise=4000”(在我创建表格之后),它仍然没有帮助。

如何让“创建索引”在合理的时间内运行?

最佳答案

在数据库表上创建索引是一次性操作,它可能会很昂贵,具体取决于许多因素,包括索引中包含的字段数量和类型、要建立索引的数据表的大小,运行数据库的机器的硬件,甚至可能更多。

为了在加快速度方面给出一个合理的答案,我们需要知道表的架构、您正在创建的索引的定义,您是否有理由确定您的索引中是否包括数据实际的唯一性独特的,你的服务器的硬件规范是多少,你的磁盘速度是多少,磁盘上有多少可用空间,你使用的是 raid 阵列,什么级别的 raid,你有多少 ram 以及利用率是多少。等等……

话虽如此,这可能会更快,但我还没有测试过。

为要索引的表制作一个结构上重复的表。将索引添加到新的空表中。将旧表中的数据以 block 的形式复制到新表中。删除旧表。

我的理论是,在添加数据时对其进行索引比挖掘已经存在的数据并在事后添加索引成本更低。

关于sql - 如何更快地创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6808138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com