Skip to content

slave_rows_search_algorithms

xiaoboluo768 edited this page Jun 14, 2020 · 2 revisions
  • 在基于行的主备复制中,此选项控制如何搜索匹配行,即,使用主键或唯一键,某个其他key或无key的搜索是否可以使用散列算法匹配行
    • 在列表中指定算法的顺序与SELECT或SHOW VARIABLES语句实际使用中用到的算法的顺序无关。默认值是TABLE_SCAN,INDEX_SCAN,这意味着可以使用索引的所有搜索就用索引,而没有任何索引的搜索使用表扫描。
    • 指定INDEX_SCAN,TABLE_SCAN,HASH_SCAN与指定INDEX_SCAN,HASH_SCAN具有相同的效果。表示对无法使用主键或唯一键的搜索使用散列,如果要对所有无法使用索引搜索的强制使用散列扫描,请将其设置为TABLE_SCAN,HASH_SCAN
    • 注意:如果行事件足够大,则INDEX_SCAN,HASH_SCAN组合值可以提高复制性能。行事件的大小使用可以--binlog-row-event-max-size进行配置。例如,假设删除25,000行的DELETE语句生成大的Delete_row_event事件。在这种情况下,如果将slave_rows_search_algorithms设置为INDEX_SCAN,HASH_SCAN组合,则可以提升性能。但是,如果有25,000个DELETE语句,并且每个语句是单独的事件,则将slave_rows_search_algorithms设置为INDEX_SCAN,HASH_SCAN组合并不会有性能提升
    • 全局变量,动态变量,集合类型,默认值为TABLE_SCAN,INDEX_SCAN。中文参考链接:https://yq.aliyun.com/articles/41058
    • 此选项以列表INDEX_SCAN,TABLE_SCAN,HASH_SCAN的任意2个(或可能3个)值的逗号分隔列表组成。可能的组合(列表)及其影响如下表所示
Command-Line Format --slave-rows-search-algorithms=list
Permitted Values
Default TABLE_SCAN,INDEX_SCAN
Valid Values TABLE_SCAN,INDEX_SCAN
INDEX_SCAN,HASH_SCAN
TABLE_SCAN,HASH_SCAN
TABLE_SCAN,INDEX_SCAN,HASH_SCAN (equivalent to INDEX_SCAN,HASH_SCAN)
Index used / option value INDEX_SCAN,HASH_SCAN or INDEX_SCAN,TABLE_SCAN,HASH_SCAN INDEX_SCAN,TABLE_SCAN TABLE_SCAN,HASH_SCAN
-- -- --
Primary key or unique key Index scan Index scan
(Other) Key Hash scan over index Index scan
No index Hash scan Table scan

上一篇:slave_parallel_type | 下一篇:slave_preserve_commit_order

Clone this wiki locally