首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >innodb,mysql索引添加时的差异

innodb,mysql索引添加时的差异
EN

Database Administration用户
提问于 2015-06-12 12:54:01
回答 1查看 1.6K关注 0票数 3

当我修改一个MySQL表以添加索引时,我在错误日志中获得了以下错误。

表a/b包含InnoDB中的4个索引,这与MySQL中定义的索引3的数量不同

  1. 这一问题的确切根源是什么。桌子没关好吗?我已经读过,修改表可能会删除引起问题的额外索引,我们稍后可能会创建它。但我想知道发生这种事的确切原因。
  2. 我假设innodb 4索引意味着那些在表.frm文件和.ibd文件中更新的索引定义以及ibdata1。但是,“内部mysql”是什么意思呢?

编辑(添加创建)

代码语言:javascript
复制
CREATE TABLE b (
    p datetime DEFAULT NULL, 
    q datetime DEFAULT NULL, 
    r bigint(20) NOT NULL, 
    s varchar(25) DEFAULT NULL, 
    t varchar(50) DEFAULT NULL, 
    u datetime DEFAULT NULL, 
    v varchar(50) DEFAULT NULL, 
    w varchar(20) DEFAULT NULL, 
    x longtext, 
    y longtext, 
    z bigint(20) DEFAULT NULL, 
    k bigint(20) DEFAULT NULL, 
    PRIMARY KEY (r), 
    KEY e (z), 
    KEY f (u), 
    KEY g (s)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
EN

回答 1

Database Administration用户

发布于 2015-06-12 23:43:05

尝试一个没有操作的ALTER

代码语言:javascript
复制
ALTER TABLE tablename ENGINE=InnoDB;

(在这个论坛上建议。)

(编辑)

我不知道为什么会出现这个问题。

以下是另一种可能有效的“修复”方法:

代码语言:javascript
复制
CREATE TABLE b_new LIKE b;
INSERT INTO b_new
    SELECT * FROM b;
RENAME TABLE b TO b_old, b_new TO b;
DROP TABLE b_old;
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/103894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档