【问题标题】:How to change a HEAP/MEMORY MySQL table's indexes from HASH to BTREE?如何将 HEAP/MEMORY MySQL 表的索引从 HASH 更改为 BTREE?
【发布时间】:2011-06-02 23:04:19
【问题描述】:

我有一个从 MyISAM 转换而来的具有 HEAP/MEMORY 存储类型的 MySQL 表。索引会自动转换为 HASH,但我需要它们是 BTREE。如何将它们从 HASH 更改为 BTREE?

【问题讨论】:

    标签: mysql indexing b-tree


    【解决方案1】:

    删除索引确实有效,但如果不这样做,这对 PRIMARY KEY 不起作用:

    ALTER TABLE table DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE (id);
    

    【讨论】:

      【解决方案2】:

      删除索引并重新创建它们using btree ...它们不包含真实数据,因此您不会丢失任何内容,并且在堆/内存表中它应该是一个非常快的操作。

      【讨论】:

      • 我无法删除主键。
      • @James 为什么不能删除主键? ALTER TABLE your_table DROP PRIMARY KEY
      • #1075 - 表定义不正确;只能有一个自动列,并且必须定义为一个键
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 2013-04-25
      相关资源
      最近更新 更多