在我的工作中,我经常被告知我不应该进行表扫描,因为它可能会对数据库和使用数据库的应用程序产生负面影响。他们所说的“负面影响”到底是什么意思?我能想到的一个负面影响是表扫描会占用大量磁盘时间,从而阻止其他请求使用磁盘。
有没有办法在没有任何负面影响的情况下进行表扫描?有时我需要为一次性检查做一次表扫描(对于例行的事情,我当然会做一个索引)。
在我的工作中,我经常被告知我不应该进行表扫描,因为它可能会对数据库和使用数据库的应用程序产生负面影响。他们所说的“负面影响”到底是什么意思?我能想到的一个负面影响是表扫描会占用大量磁盘时间,从而阻止其他请求使用磁盘。
有没有办法在没有任何负面影响的情况下进行表扫描?有时我需要为一次性检查做一次表扫描(对于例行的事情,我当然会做一个索引)。
表扫描本身并不邪恶,它取决于查询应该做什么。如果表的很大一部分要么返回给应用程序,要么用于某个聚合(如 sum),那么执行表扫描可能是最有效的。
另一方面,如果要使用表的一小部分,则通过索引查找行效率更高。
正如您提到的,扫描使用磁盘资源。另一个影响是可能必须刷新内存中的缓存数据以为扫描腾出空间。即,由于不必要的扫描,应用程序可能不得不从磁盘而不是内存中读取数据。
任务:我给一本书,请你列出该页上出现“朝鲜蓟”一词的页码。
你怎么能做到这一点?你将不得不阅读整本书。
当您阅读那本书时,您不能为其他任何人阅读任何其他书籍(至少不容易)。
如果这本书是关于园艺的,那么你可能会在后面有一个索引,列出特定的蔬菜和提到它们的页面。 这将使您的任务更容易。
在数据库世界中: