GreatSQL社区

搜索

[已解决] MYSQL如何把某个表固定在内存里?

397 6 2022-12-2 14:50
比如说 目前系统保留6个月的数据,
同样的SQL访问近1个月的数据只500毫秒

访问几个月前的数据的时候 非常慢, 达到3秒. 有时候系统慢的时候达到24秒.


目前系统16GB内存  73%内存使用率.
如果有办法把6个月的数据都保留在内存里, 那么我可以申请购买内存,加大到64GB

或者说如果内存自动扩大到64GB, 那个LRU链表 对OLD数据是否保留时间更长些?
全部回复(6)
yejr 2022-12-2 15:51:32
是的,只要innodb buffer pool足够,也就是还有足够的 Innodb_buffer_pool_pages_free,
那就不会根据LRU原则把热数据清理出去。

所以,要先评估下你的热点数据量,以及ibp大小是否足够装下这些数据。

变通的办法就是时不时访问这个表数据,就可以让它们尽量保存在ibp中了。
空空如也 2022-12-3 10:41:03
yejr 发表于 2022-12-2 15:51
是的,只要innodb buffer pool足够,也就是还有足够的 Innodb_buffer_pool_pages_free,
那就不会根据LRU原 ...

greatsql以后会开发内存表的计划吗
InnerCodeDBA 2022-12-3 12:35:12
yejr 发表于 2022-12-2 15:51
是的,只要innodb buffer pool足够,也就是还有足够的 Innodb_buffer_pool_pages_free,
那就不会根据LRU原 ...

大约4GB 6个月
InnerCodeDBA 2022-12-3 12:35:57
空空如也 发表于 2022-12-3 10:41
greatsql以后会开发内存表的计划吗

你的意思说 只要内存足够大, 还有FREE 页 那么过去几个月的数据基本不会被清理出内存是吗?
yejr 2022-12-3 13:37:02
InnerCodeDBA 发表于 2022-12-3 12:35
你的意思说 只要内存足够大, 还有FREE 页 那么过去几个月的数据基本不会被清理出内存是吗? ...

对,只要free page足够,就没必要把旧数据驱逐出去
yejr 2022-12-3 13:37:17
空空如也 发表于 2022-12-3 10:41
greatsql以后会开发内存表的计划吗

MySQL自带memory引擎
InnerCodeDBA

7

主题

0

博客

36

贡献

新手上路

Rank: 1

积分
47

2022年度求知人物2022年度活跃用户

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-3-29 13:48 , Processed in 0.016552 second(s), 13 queries , Redis On.
快速回复 返回顶部 返回列表