slave_rows_search_algorithms - xiaoboluo768/qianjinliangfang GitHub Wiki
- 在基于行的主备复制中,此选项控制如何搜索匹配行,即,使用主键或唯一键,某个其他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