小编Cha*_*tin的帖子

MySQL 5.1 到 5.6:巨大的性能冲击

好吧,这可能是三个问题。我想将使用 MyISAM 的现有 MySQL 5.1 数据库移动到使用 InnoDB 的 5.6,因为我认为有很多明显的 - 甚至可能是好的 - 原因。

这是在 Amazon RDS 上,所以我的升级路线仅限于转储和重新创建数据库。

我会欣然承认我不是一个老练的 DBA。

问题 1:哇这么慢!

大约需要 15 分钟 mysqldump我们的 1.6 亿多行。(表演桌等来了,抱紧你的马。)

花了大约 50 个小时加载到 mysql 5.6 实例中,并且引擎巧妙地将 sed-script-ed 加载到 InnoDB。

问题 2:我的行在哪里?

select count(*) from node;在目前的 DB 上给出了大约 1.62 亿。在5.6上,它给出了大约9300万。加载似乎是成功的,尽管我无法证明;至少,加载终止后没有错误消息。

如果它不成功,那真的慢。

问题 3:这么慢!

因此,select count(*) from node;在 5.1 上几乎没有任何时间完成——查询结果在 0.00 到 0.03 秒之间。在使用 InnoDB 的 5.6 上,这需要一分钟多的时间。解释清楚地表明这是因为查询优化的方式不同——但不清楚为什么不同。

表格和说明

MySQL 5.1

mysql> show …
Run Code Online (Sandbox Code Playgroud)

mysql innodb myisam mysqldump performance

7
推荐指数
1
解决办法
6340
查看次数

Mysql select 以 'killed' 结尾

好吧,我相信这会变成愚蠢的事情,但我是一个愚蠢的 n00b DBA。

我有一个很大的表,大约有 1.63 亿行和大约 44 GiB。在使用 mysqldump 进行一些备份实验后,我尝试在批处理模式下使用 select 构建一个制表符分隔的输出。

我试过

echo 'select * from node;' | mysql -u xx -p -B database > file
Run Code Online (Sandbox Code Playgroud)

它以消息“Killed”结束。

所以我尝试批量登录mysql,同样的查询,同样的结果。

我尝试以正常方式登录,然后做 select * from node;

结果还是一样:“被杀”。然而

create table temp_node (select * from node);
Run Code Online (Sandbox Code Playgroud)

工作正常。

所以我显然错过了一些基本的东西,但谷歌搜索没有帮助。可怜一个n00b,告诉我发生了什么?

请注意,问题与运行命令本身无关,而是当我运行命令或select * from node;mysql>提示符执行时,mysql 以消息“Killed”终止。

哦,我怎么能导出那个该死的表以便稍后加载?

mysql mysqldump mysql-5.1

6
推荐指数
1
解决办法
4475
查看次数

标签 统计

mysql ×2

mysqldump ×2

innodb ×1

myisam ×1

mysql-5.1 ×1

performance ×1