How to gracefully keep my specific index in memory ?

Started by James(王旭)over 6 years ago3 messagesgeneral
Jump to latest
#1James(王旭)
wangxu@gu360.com

Hello:

As the title,How to keep a specific index in memory gracefully?

After some statistical query, I can determine that not all indexes can be fit into memory, but one of the most frequently used indexes(say idx_xyz) can be definitely fit into memory(specifically ,[the size of idx_xyz]=20% x [memory size]).

I know there's pgprewarm, but I feel with pgprewarm I can't keep things under control, e.g. no realtime monitor, being squeezed out of memory ,.etc.

Is it possible that I can simply do something like "select idx_xyz into xxx" and keep the specific index in memory forever?

Best regards,
James

#2Laurenz Albe
laurenz.albe@cybertec.at
In reply to: James(王旭) (#1)
Re: How to gracefully keep my specific index in memory ?

James(王旭) wrote:

As the title,How to keep a specific index in memory gracefully?

After some statistical query, I can determine that not all indexes can be fit into memory,
but one of the most frequently used indexes(say idx_xyz) can be definitely fit into
memory(specifically ,[the size of idx_xyz]=20% x [memory size]).

I know there's pgprewarm, but I feel with pgprewarm I can't keep things under control, e.g. no realtime monitor, being squeezed out of memory ,.etc.

Is it possible that I can simply do something like "select idx_xyz into xxx" and keep the specific index in memory forever?

If the indexes are frequently used, they should remain cached anyway.

Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com

#3James(王旭)
wangxu@gu360.com
In reply to: Laurenz Albe (#2)
Re: How to gracefully keep my specific index in memory ?

Thanks Laurenz Albe for reply.

Unfortunately this index is only frequently used during a certain period of time(such as 9:30am - 12:00am) .I usually encounter slow load of this index during some other time.
Then it seems to me the only answer for this case would be the pgprewarm and pg_cron ?

------------------ Original ------------------
From: "Laurenz Albe"<laurenz.albe@cybertec.at>;
Date: Mon, Aug 12, 2019 08:24 PM
To: "James(王旭)"<wangxu@gu360.com>; "pgsql-general"<pgsql-general@postgresql.org>;

Subject: Re: How to gracefully keep my specific index in memory ?

James(王旭) wrote:

As the title,How to keep a specific index in memory gracefully?

After some statistical query, I can determine that not all indexes can be fit into memory,
but one of the most frequently used indexes(say idx_xyz) can be definitely fit into
memory(specifically ,[the size of idx_xyz]=20% x [memory size]).

I know there's pgprewarm, but I feel with pgprewarm I can't keep things under control, e.g. no realtime monitor, being squeezed out of memory ,.etc.

Is it possible that I can simply do something like "select idx_xyz into xxx" and keep the specific index in memory forever?

If the indexes are frequently used, they should remain cached anyway.

Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com