2014-04-03 78 views
1

我应该如何将MyISAM表实时转换为InnoDB实时工作站点? 我应该在操作菜单“Storage Engine”中将phpmyadmin更改为InnoDB吗? 它会在转换过程中锁定所有表吗?将MyISAM表迁移到InnoDB实时站点

回答

0

虽然它可能工作你最好复制你的表,并尝试在副本上的存储引擎更改操作。

这也将让你的运行需要时间的估计。

如果你这样做你的应用程序的副本,更妙的是,让大量的检查它是否会与新的存储引擎在所有的工作。

+0

那么,如何做表的副本,并将其隐蔽InnoDB的在同一时间与phpMyAdmin? – Nikola

+0

@尼古拉 - 一步一步做。复制然后更改引擎。 – blue

2

你确实会拿到台面上的写锁。在创建和复制新表格时,您仍然可以从表格中读取数据。

从文档上ALTER TABLE

虽然ALTER TABLE正在执行时,原始表是由其他 会话可读(除了不久说明)。更新和写入 到开始ALTER TABLE操作开始被 停滞之后,直到新的桌子已经准备好了桌子,然后是自动 重定向到新表,没有任何失败的更新。 ...

提到的例外早期是ALTER TABLE块在它准备安装新版本 表.frm文件的点读取 (不只是写),丢弃旧的文件,并从表和表定义缓存中清除过期的表结构 。 此时,它必须获得排他锁。为此,它会等待当前阅读器完成 ,并阻止新的读取(和写入)。