是否可以在主设备上为只读从设备设置不同的索引?基本上,考虑到两个系统的不同要求,这似乎是有道理的,但我想确保它能够工作而不会造成任何问题。
答案 0 :(得分:15)
我相信。复制工作后,您可以删除从属服务器上的索引并创建所需的索引,并且应该这样做。由于MySQL复制语句而不是数据(至少在默认情况下是这样),只要插入或更新或从表中选择所需的SQL不需要更改,就不应该注意。
现在明显存在缺点。如果您创建了一个不在主服务器上的唯一密钥,则可能会在主服务器上插入无法插入从服务器的数据。如果完成了使用索引的更新,它可能会在主服务器上快速运行,但会在从服务器上进行表扫描(因为您没有任何方便的索引)。
如果在主服务器上发生任何DDL更改(例如更改索引)将传递给从服务器,并且也会在那里创建新索引,即使您不希望它。 / p>
答案 1 :(得分:15)
当然可以。我一直这样做。我遇到的问题:
FORCE/USE/IGNORE INDEX
中的SELECTS
引用索引会出错ALTER
个参数中引用索引可能会破坏复制UNIQUE
索引,那么任何INSERT... ON DUPLICATE KEY
,INSERT IGNORE
或REPLACE
个参数都将引起极端数据漂移/分歧答案 2 :(得分:2)
当然,我认为将InnoDB表复制到slave上的MyISAM表以便能够添加全文索引是一种常见的做法。