MySql中的查询时间是线性的吗?

MySql中的查询时间是线性的吗?,mysql,sql,Mysql,Sql,如果我有一个有100行的表(每行的大小或多或少是恒定的),并且一个SELECT WHERE 1=1查询平均需要0.004秒才能完成,那么可以假设使用相同的SELECT WHERE 1=1但有1M行将需要1秒 totalTime = 1.000.000*0.004/100 不,这是不好的假设。从硬件到数据库结构,再到您使用的MySQL版本,有许多变量都会影响查询时间如何随记录的增加而增加。不,假设这样做是不正确的。从硬件到数据库结构,再到您使用的MySQL版本,有许多变量都会影响查询时间如何随记

如果我有一个有100行的表(每行的大小或多或少是恒定的),并且一个SELECT WHERE 1=1查询平均需要0.004秒才能完成,那么可以假设使用相同的SELECT WHERE 1=1但有1M行将需要1秒

totalTime = 1.000.000*0.004/100

不,这是不好的假设。从硬件到数据库结构,再到您使用的MySQL版本,有许多变量都会影响查询时间如何随记录的增加而增加。

不,假设这样做是不正确的。从硬件到数据库结构,再到您使用的MySQL版本,有许多变量都会影响查询时间如何随记录的增加而增加。

您想实现什么?看来,
BENCHMARK
会对你有用。@AlmaDoMundo只是理论上的好奇一般来说,假设计算机时间是线性的是不安全的。一个小的查询可能会将所有数据保存在内存中,而一个大的查询可能需要分页,这将导致性能曲线出现拐点。@DomingoSL-不,它不是完全线性的。记住,每次执行都有自己的开销(网络是其中最糟糕的一个)。当然,不要忘记,一旦建立了查询计划,下一个查询将使用它(从缓存中),并且时间将减少。首先要问,如果我重复运行同一个查询,是否总是需要0.004秒才能完成,不,显然不是。然后考虑平行效应的影响。当需要更多的结果时,并行处理的机会就更多了。你想实现什么?看来,
BENCHMARK
会对你有用。@AlmaDoMundo只是理论上的好奇一般来说,假设计算机时间是线性的是不安全的。一个小的查询可能会将所有数据保存在内存中,而一个大的查询可能需要分页,这将导致性能曲线出现拐点。@DomingoSL-不,它不是完全线性的。记住,每次执行都有自己的开销(网络是其中最糟糕的一个)。当然,不要忘记,一旦建立了查询计划,下一个查询将使用它(从缓存中),并且时间将减少。首先要问,如果我重复运行同一个查询,是否总是需要0.004秒才能完成,不,显然不是。然后考虑平行效应的影响。由于需要更多的结果,因此有更多的机会进行并行处理。