Mysql
mysqldump:如何包含索引類型?
當我轉儲數據庫的架構時
mysqldump --no-data my_db > schema.sql
我得到這樣的線條
KEY `index_tbl_on_col` (`col`)
但我想要這樣的線條
KEY `index_tbl_on_col` (`col`) USING BTREE
事實上,有問題的索引確實有
Index_type = 'BTREE'
.show index from tbl; | Table | Key_name | Index_type | +-------+---------------+------------+ | tbl | ix_tbl_on_col | BTREE |
我嘗試了多種
mysqldump
選擇,包括--skip-opt --create-options
一起使用。我正在使用homebrew
mysqldump
的 5.6.26 。mysqldump --version mysqldump Ver 10.13 Distrib 5.6.26, for osx10.10 (x86_64)
您不必擔心將 嵌入
USING BTREE
到索引中。為什麼 ?MyISAM 和 InnoDB 的預設索引類型是 BTREE。您不能強加任何其他類型。
MEMORY 儲存引擎的預設索引類型是 HASH。您可以強加 BTREE 索引類型。
我在 4 年前寫了一篇關於 MyISAM 和 InnoDB 不允許使用 HASH 的文章:為什麼 MySQL 在 MyISAM 或 InnoDB 上沒有雜湊索引?
鑑於此,沒有必要明確附加
USING BTREE
.您可以查看
CREATE INDEX
文件以驗證每個儲存引擎的預設索引類型。更新 2015-09-24 16:23 EDT
嘿,賈里德,我給你一個驚喜。我去Google搜尋,有一種方法可以吐出來
USING BTREE
。選項是–compatible=mysql40。我在 StackOverflow 中看到了:MySQL error USING BTREE