我找不到任何关于我的问题的信息。这是一个更理论的问题。例如,我有表关键字。
CREATE TABLE IF NOT EXISTS `keywords` (
`kid` int(11) unsigned NOT NULL AUTO_INCREMENT,
`language_id` int(11) NOT NULL,
`keyword` varchar(120) NOT NULL,
PRIMARY KEY (`kid`),
UNIQUE KEY `custom_idx` (`language_id`,`keyword`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
我的服务器有 1GB 的可用 RAM 内存。我的表有数百万行,我的custom_idx大小超过 1GB。索引无法装入 RAM 内存。mysql会做什么?是不是只有这个索引的一部分会存储在内存中?这会极大地破坏 BTREE/聚集索引的性能吗?
另外,如果我的索引大小不能适应innodb_buffer_pool_size限制,会发生什么?
复制是索引无法放入 RAM 内存的巨大 InnoDB 数据库的答案吗?