У меня есть таблица в PostgreSQL, которую мне нужно прочитать в память. Это очень маленькая таблица, всего три столбца и 200 строк, и я просто делаю select col1, col2, col3 from my_table
для всего этого.
На компьютере разработчика это очень быстро (менее 1 мс), даже если этот компьютер является VirtualBox внутри Mac OS FileVault.
Но на рабочем сервере это постоянно занимает 600 мс. Производственный сервер может иметь более низкие спецификации, и версия базы данных тоже старше (7.3.x), но я думаю, что это само по себе не может объяснить огромную разницу.
В обоих случаях я запускаю explain analyze
на самом сервере базы данных, поэтому это не может быть связано с нагрузкой на сеть. План выполнения запроса в обоих случаях представляет собой простое последовательное полное сканирование таблицы. В то время на производственной машине больше ничего не происходило, поэтому и споры тоже отсутствуют.
Как узнать, почему это так медленно, и что я могу с этим поделать?