您好我正在尝试使用mysql workbench
将mssql数据库迁移到mysql数据库这里的问题是当我迁移数据时,mysql工作台在最后一步冻结了 这是数据批量传输我在网上搜索了一些答案说如果你在64位win 7上使用mysql workbench这个操作总会被冻结,这是正确的吗? 我应该安装win 32吗? (当我想迁移mssql数据库中的所有东西时会发生这种情况)。
第二个问题是,我管理好了迁移几个表,但没有迁移任何过程或触发器,最重要的是mssql中的简单查询需要0.2秒才能在mysql上的同一个表上进行20秒我知道问题出在索引,但当我索引表确定 如果我确实选择了该列的哪个位置,那么查询工作正常,除了选择没有索引列的位置仍然非常慢。
示例:
从用户中选择*;
这在mssql 1秒
在mysql中20秒
在user_type
上建立索引之后从user_type = 2;
的用户中选择*这在mssql 0.7秒
在mysql 0.5秒
但是当我回来使用时
从用户中选择*;
这在mssql 0.9秒
中在mysql 18秒
这里的任何想法?
感谢。
答案 0 :(得分:2)
因此在经过多次托盘后我找到了解决方案:
当数据从mssql迁移到mysql时,mysql假设你想使用InnoDB作为默认引擎,当你进行迁移时,你会丢失索引,例程和程序,所以当你在InnoDB上运行数据时在重新创建新索引,例程和过程之前,它会非常缓慢。
但是当您指定要将MyISAM用作默认引擎时,如果不执行上述操作,则选择查询将非常快,如果执行上述操作,则会使查询更快。
但是这项工作用于读取行,因为MyISAM非常适合读取行,但是对于写入InnoDB将是老板,当然如果需要读/写,InnoDB也将成为老板但是在重新创建上面之后。
所以对于我的情况我刚刚在每个表创建语句后添加了ENGINE = MyISAM,当我进行任何查询时,即使我获取200k行,我花了差不多2秒才得到结果。