Как гласит название: можно ли создать и использовать индекс Postgres, который больше, когда создан, чем значение ОЗУ?Могу ли я создать индекс Postgres, который больше, чем ОЗУ?
Очевидно, что это не ideal, потому что даже если это возможно, это будет намного быстрее, если индекс может быть в ОЗУ: но меня интересует, возможно ли это вообще.
Я задаю этот вопрос, потому что мне хотелось бы получить приблизительное представление о том, какой размер сервера мне нужен для конкретного проекта.
Я просмотрел Postgres docs on creating an index, но я не вижу ответа там. Я подозреваю, что это слишком простой вопрос, даже если он рассматривается в документах, и извинения, если это глупый вопрос :-(
Большинство СУБД могут создавать индексы, размер которых превышает объем оперативной памяти, если индекс будет в конечном счете сохранен на диске. Если у вас есть база данных в памяти, вы не можете сделать это (обычно). Кроме того, вы можете быть в порядке. (Подобные мысли также относятся к таблицам, Postgres не ограничивает ваши таблицы размером памяти.) –
BTW: размер сервера: у меня есть ~ 10 ГБ (> 3M строк в «основной» таблице). Postgres DB работает на малине Pi Mk1, которая имеет только 512 МБ ОЗУ, из которых только ~ половина пригодна для использования. Она даже не будет работать * с вами t indexes ... – joop
Я не думаю, что кто-либо когда-либо думал, что индексы могут быть больше, чем ОЗУ, это просто предполагается. Как никогда не сказано, что таблицы могут быть больше, чем ОЗУ. –