MYSQL如何把某个表固定在内存里?
比如说 目前系统保留6个月的数据,同样的SQL访问近1个月的数据只500毫秒
访问几个月前的数据的时候 非常慢, 达到3秒. 有时候系统慢的时候达到24秒.
目前系统16GB内存73%内存使用率.
如果有办法把6个月的数据都保留在内存里, 那么我可以申请购买内存,加大到64GB
或者说如果内存自动扩大到64GB, 那个LRU链表 对OLD数据是否保留时间更长些?
是的,只要innodb buffer pool足够,也就是还有足够的 Innodb_buffer_pool_pages_free,
那就不会根据LRU原则把热数据清理出去。
所以,要先评估下你的热点数据量,以及ibp大小是否足够装下这些数据。
变通的办法就是时不时访问这个表数据,就可以让它们尽量保存在ibp中了。 yejr 发表于 2022-12-2 15:51
是的,只要innodb buffer pool足够,也就是还有足够的 Innodb_buffer_pool_pages_free,
那就不会根据LRU原 ...
greatsql以后会开发内存表的计划吗 yejr 发表于 2022-12-2 15:51
是的,只要innodb buffer pool足够,也就是还有足够的 Innodb_buffer_pool_pages_free,
那就不会根据LRU原 ...
大约4GB 6个月 空空如也 发表于 2022-12-3 10:41
greatsql以后会开发内存表的计划吗
你的意思说 只要内存足够大, 还有FREE 页 那么过去几个月的数据基本不会被清理出内存是吗? InnerCodeDBA 发表于 2022-12-3 12:35
你的意思说 只要内存足够大, 还有FREE 页 那么过去几个月的数据基本不会被清理出内存是吗? ...
对,只要free page足够,就没必要把旧数据驱逐出去 空空如也 发表于 2022-12-3 10:41
greatsql以后会开发内存表的计划吗
MySQL自带memory引擎
页:
[1]