我们有一个MySQL DB(OLD_DATA),其中许多分区表大小超过100GB。为了提高服务器性能,我们考虑创建并行数据库(NEW_DATA)并开始在NEW_DATA中收集新数据。
数据库是MyISAM,服务器有96GB RAM。
此后将无法访问OLD_DATA。
这种方法是否有助于提高RAM和CPU使用率方面的服务器性能? 来自OLD_DATA的数据是否会加载到内存中?
答案 0 :(得分:0)
请提供SHOW CREATE TABLE
。如果是,正如您所暗示的那样,PARTITIONed,那么我们需要将其纳入分析中。
一般来说,如果" old"不再以任何方式访问行,它们不会受到伤害,也不需要执行您所做的操作。请详细说明您认为的问题"慢",最好是提供EXPLAIN SELECT
。
MyISAM在" key_buffer"中缓存索引块;指数有多大? key_buffer_size
设置为什么?数据块由操作系统缓存。
这是非常正常的'系统的数据集是RAM的许多倍。性能取决于工作集'数据集的数据以及您查询数据的积极程度。你暗示过" old"行不被使用,因此不属于'工作集'。
另一方面,如果您有"表扫描",则整个表是工作集的一部分。我们很可能会建议如何更好地改变这些查询。