Optimization

無法在 mariadb 5.5 上的 optimizer_switch 中設置 batched_key_access=on

  • January 5, 2017

我正在將我的應用程序從 Mysql5.6 切換到 Mariadb5.5。我支持在 optimizer_switch 中添加 batched_key_access=on,但是當我這樣做時,mariadb 拒絕啟動:

170104 17:16:14 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
170104 17:16:25 mysqld_safe Starting mysqld daemon with databases from /data/mysqldata
170104 17:16:26 [ERROR] /data/mysql/bin/mysqld: Error while setting value 'batched_key_access=off' to 'optimizer_switch'
170104 17:16:26 [ERROR] Aborting

當我閱讀 Mariadb Docs 時,我想設置 mrr=on 這就是我所做的:

optimizer_switch='index_condition_pushdown=off'
optimizer_switch='mrr=on'
optimizer_switch='mrr_cost_based=off'
optimizer_switch='batched_key_access=on'

難道我做錯了什麼?

謝謝您的幫助。

MariaDB中沒有batched_key_access密鑰——該功能是在 MariaDB 5.3 中發布的,遠早於 MySQL 5.6,因此它自然有自己的命名,與 MySQL 不同。您可能正在尋找的是join_cache_bka,但請完整閱讀有關基於塊的算法的頁面,因為您還需要根據需要為 選擇合適的值join_cache_level

引用自:https://dba.stackexchange.com/questions/159991