【发布时间】:2017-12-18 14:55:34
【问题描述】:
给定一个 SQL 中的实时表,其中包含一些重要的列/条目,并且有一个或多个应用程序主动查询它,在该表的某些列上引入新索引会产生什么影响? 什么优先?为查询提供服务,还是构建索引? 换句话说,查询应用程序是否会将设置索引视为延迟获得响应?
【问题讨论】:
给定一个 SQL 中的实时表,其中包含一些重要的列/条目,并且有一个或多个应用程序主动查询它,在该表的某些列上引入新索引会产生什么影响? 什么优先?为查询提供服务,还是构建索引? 换句话说,查询应用程序是否会将设置索引视为延迟获得响应?
【问题讨论】:
在进行索引时可以使用数据库,但我们几乎不可能说它对性能的影响。优化器的很多方面对于没有自己研究过的人来说都是神奇的,并且答案可能会根据您使用的 RDMS 发生很大变化。最重要的是,您自己的硬件将在答案中发挥重要作用。
话虽如此,如果您主要是从表格中读取数据,那么如果您的系统具有同时处理这两个任务的 IO/CPU 能力,那么您很可能不会看到性能受到重大影响。但是,插入速度会大大减慢。
这种影响是否存在问题将取决于您当前的系统负载、表的大小以及您要索引的具体内容。一般来说,如果您有一台不错的服务器、低负载以及只有几百万行或更少的表,我根本不会期望看到性能受到影响。
【讨论】: