2015-03-06 6 views
1

Как гласит название: можно ли создать и использовать индекс Postgres, который больше, когда создан, чем значение ОЗУ?Могу ли я создать индекс Postgres, который больше, чем ОЗУ?

Очевидно, что это не ideal, потому что даже если это возможно, это будет намного быстрее, если индекс может быть в ОЗУ: но меня интересует, возможно ли это вообще.

Я задаю этот вопрос, потому что мне хотелось бы получить приблизительное представление о том, какой размер сервера мне нужен для конкретного проекта.

Я просмотрел Postgres docs on creating an index, но я не вижу ответа там. Я подозреваю, что это слишком простой вопрос, даже если он рассматривается в документах, и извинения, если это глупый вопрос :-(

+1

Большинство СУБД могут создавать индексы, размер которых превышает объем оперативной памяти, если индекс будет в конечном счете сохранен на диске. Если у вас есть база данных в памяти, вы не можете сделать это (обычно). Кроме того, вы можете быть в порядке. (Подобные мысли также относятся к таблицам, Postgres не ограничивает ваши таблицы размером памяти.) –

+0

BTW: размер сервера: у меня есть ~ 10 ГБ (> 3M строк в «основной» таблице). Postgres DB работает на малине Pi Mk1, которая имеет только 512 МБ ОЗУ, из которых только ~ половина пригодна для использования. Она даже не будет работать * с вами t indexes ... – joop

+1

Я не думаю, что кто-либо когда-либо думал, что индексы могут быть больше, чем ОЗУ, это просто предполагается. Как никогда не сказано, что таблицы могут быть больше, чем ОЗУ. –

ответ

2

Да, вы можете. Рам не является пределом. Диск будет использоваться для сортировки данных и индекса

Смежные вопросы