I can't find any info regarding my question. This is more theoretical question. For example, i have table keywords.
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 ;
My server has 1GB of free RAM memory. My table has millions of rows and size of my custom_idx is more than 1GB. Index can't fit into RAM memory. What would mysql do ? Is only part of this index will be stored in the memory ? Will this break BTREE/Clustered index performance dramatically ?
Also, if size of my index can't fit into innodb_buffer_pool_size limits, what would happen ?
Is replication is the answer to enormous InnoDB databases where indexes can't fit into RAM memory ?
I need to keep all my indexes in RAM ? What if my db size is more than 500gb?