在同一个表上创建大量索引正常吗?

问题描述 投票:0回答:1

我有一个经常使用的表,名为

users
,它有 41 列,并且在其上执行了几种不同的查询模型。

为了保持高性能,我在其上创建了大约 16 个索引(具有不同类型,singlecomposite)。我只想知道,这是正常现象吗?例如在大型商业项目中可以接受吗?

我知道创建索引会导致更好的读取速度和更慢的写入速度。但我想知道这个比例。我的意思是创建索引时写入会慢多少?

sql mysql performance indexing
1个回答
0
投票

考虑到您的表有 41 列和各种查询模型,创建 16 个索引(不同类型,单一索引和复合索引)并不算异常。尤其是如果这些索引是为了满足多样化的查询需求而定制的,那么它们是必要的。

在大型商业项目中,通常使用多个索引来优化性能。但是,重要的是要确保每个索引都有特定的用途并避免创建不必要的索引。定期检查和管理索引至关重要,因为它们会影响性能。

写入操作的减慢取决于所创建索引的类型和配置。通常,添加索引会给写入操作带来额外的开销,因为索引数据结构也需要更新。然而,这种放缓可以通过读取操作的性能改进来抵消。特别是在大型数据集中,索引提供的读取速度优势可能比写入操作的潜在减慢更为显着。

总之,根据表和查询模型的需求,使用 16 个索引可能是一个合理的选择。然而,定期监控索引的影响并删除任何不必要的索引非常重要。

© www.soinside.com 2019 - 2024. All rights reserved.