列数会影响MYSQL速度吗?

Dav*_*801 7 mysql

我有一张桌子.我只需要运行一种类型的查询:在第1列中找到给定的唯一,然后说出前3列.

现在,如果我在表中添加额外的几列以进行基本"数据存储",它会对速度产生多大影响.我知道我应该使用saparate表,但我们假设我只受限于只有一个表,所以唯一的方法是在最后添加一些列.

所以,如果我添加一些列,最后说10个,每个30个varchar,这会减慢第一句中给出的任何查询吗?如果是这样的话,你认为与没有额外的还原剂现在的列相比有多少因素?

Mar*_*ers 5

是的,额外的数据可能会减慢查询速度,因为这意味着可以在页面中放入更少的行,这意味着可以在内存中缓存更多磁盘访问以读取一定数量的行和更少的行.

减速的确切因素很难预测.它可以忽略不计,但是如果你接近能够在内存中缓存整个表的边界,那么额外的一些列可能会对执行速度产生很大的影响.从内存或磁盘中的缓存中获取行所花费的时间差异是几个数量级.

如果添加覆盖索引,则额外的列应该具有较小的影响,因为查询可以使用相对较窄的索引而无需引用更宽的主表.