1

我有 2 个表,相同的结构,相同的行,相同的数据,但第一个有更多的列(字段)。

例如:

我从它们中选择相同的 3 个字段(从 mytable1 中选择 a、b、c,然后从 mytable2 中选择 a、b、c)

我试图对 100,000 条记录(每个表)运行这些查询,但最后我得到了相同的执行时间(0.0006 秒)你知道列数(以及最后一张表的大小)吗比另一个大)与查询执行时间有关吗?

4

4 回答 4

1

从逻辑上讲,它会影响执行时间,如果具有更多列的表上的数据更大,您可能会看到差异。前任。表1:500mb,表2:40mb。性能下降,特别是如果数据集索引不再适合内存。然后磁盘性能介入。

于 2012-09-17T15:32:34.290 回答
1

国际海事组织。仅选择正确的列会影响交付时间(从数据库服务器到应用程序服务器)并影响内存,因为应该存储和传输更多数据。

于 2012-09-17T15:36:03.030 回答
1

在您的示例中,您从表中选择相同的三列。有几种方法我可以想到有额外的列(但不选择它们)会产生很小/没有影响:

  1. 如果您选择的所有列都在索引中,MySQL 就不必从磁盘读取底层行。
  2. 如果新列是 VARCHAR,我相信页面大小将基本保持不变(因为 VARCHAR 确实是指针)。
  3. 如果新列很小(例如,TINYINT 只有 1 个字节)。

一般来说,更窄的表会给你更好的性能。

如果您想尝试一个示例,请加入一些大的 CHAR(不是 VARCHAR),然后在测试查询中选择这些列。我预计情况会更糟。

希望有帮助。

于 2012-09-17T15:42:06.470 回答
1

它会影响执行时间,但我认为列/行大小的线性增加会产生边际效应。由于 MySQL 仍然必须处理/显示额外的数据,所以它不可能有零效应。

关键点(在我看来)是只选择您需要选择的列和行。

于 2012-09-17T15:29:53.560 回答