我有一张桌子。我只需要运行一种类型的查询:在第 1 列中查找给定的唯一值,然后获取前 3 列。
现在,如果我在表中添加额外的几列以进行基本的“数据存储”,会对速度产生多大影响。我知道我应该使用一个单独的表,但假设我仅限于只有 1 个表,所以唯一的方法是在最后添加一些列。
那么,如果我添加一些列,例如最后添加 10 个列,每个列 30 个 varchar,这会减慢第一句中给出的任何查询吗?如果是这样,与没有额外冗余但存在的列相比,您认为影响有多大?
是的,额外的数据会减慢查询速度,因为这意味着页面中可以容纳的行数更少,这意味着需要更多的磁盘访问来读取一定数量的行,并且可以在内存中缓存的行数更少。
减速的确切因素很难预测。它可能可以忽略不计,但如果您接近能够将整个表缓存在内存中与否之间的界限,一些额外的列可能会对执行速度产生很大的影响。从内存中的缓存或从磁盘中获取行所需的时间差异有几个数量级。
如果您添加一个覆盖指数 http://peter-zaitsev.livejournal.com/6949.html额外的列的影响应该较小,因为查询可以使用相对较窄的索引,而无需引用较宽的主表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)