Laurenz Albe <laurenz.albe@xxxxxxxxxxx> writes: > I think that the values of those parameters are more set by experience and tradition than > by measurable physical evidence. In a way, it just happens to work (mostly). > For example, who says that on a spinning disk, random I/O is four times as slow as > sequential I/O? Very likely, you have to factor in that part of the I/O requests are > satisfied from the kernel page cache. The 4.0 value *is* based on some real evidence --- many years ago, I put in a lot of machine time to get an estimate of that for non-cached fetches on the hardware I was using at the time. If somebody did that over again today, they'd likely get a somewhat different value, even assuming they were still using spinning-rust storage. But it doesn't matter too much. A value around that is probably fine for rotating storage, while if you are using SSD it's likely better to use something around 1.0, and beyond that any inaccuracies in the cost constants are usually swamped by imperfections of the cost models and other data. For instance, it's not that useful to sweat about what the right value is for cpu_operator_cost when we've never spent any serious effort on assigning plausible procost factors to different functions. (Worse, the whole notion that a given function has a fixed cost independent of its input data is sadly inadequate.) regards, tom lane