Innodb表格不存在

时间:2017-05-08 20:48:00

标签: mysql database wordpress innodb

系统类型:64位
Windows Edition:Windows Server 2008 R2 Enterprise
Microsoft Windows Server:6.1
MySQL Workbench版本:6.3

我管理一个多站点WordPress,它已经增长到33,000个表,所以它变得非常慢。所以我正在尝试优化我们的安装。我一直在研究DEV服务器并最终删除整个网站。假设此时复制实时服务器不是一个选项(请相信我不是),请你帮我解决以下问题:

我从实时服务器突出显示并复制了表格,将它们粘贴到DEV服务器文件夹中。 Workbench识别Schemas区域中的表,但是当我编写SELECT查询时,对于Innodb表,它表示它们不存在。但是,MyISAM表成功运行。

我只是感到困惑,因为我知道表格在正确的文件夹中但由于某种原因他们不查询。我看到一个解决方案,用常规查询创建表,然后在文件夹中覆盖它们,但这对我来说是不现实的,因为有33,000个表。你们有没有想过如何让这些Innodb表再次运作?

1 个答案:

答案 0 :(得分:0)

无法通过文件系统复制单个InnoDB表。

您可以使用"可传输的表空间"这样做。请参阅您正在使用的 MySQL 版本的文档。 (这不是 Workbench相同的版本。)

做上述事情并不明智,但这是可能的。相反,您应该使用一些转储/加载机制,例如mysqldumpxtrabackup

WordPress的设计缺陷让你可以获得33,000张桌子。由于所涉及的所有文件,这给操作系统带来了性能压力。

在转移到InnoDB时,我建议您仔细考虑innodb_file_per_table的选择。想法涉及您正在使用的MySQL,表格的大小,以及您是否将使用"可传输的表空间"。

我确实有一个强烈的建议来改变WP中的索引:见http://mysql.rjweb.org/slides/cook.pdf的幻灯片63。它将提高许多查询的性能。