InnoDB 导入SQL 脚本很慢

71 views
Skip to first unread message

Terry Zheng

unread,
Jul 21, 2011, 1:31:09 AM7/21/11
to MySQLer
���Ұ�innodb_flush_log_at_trx_commit ��ֵ��Ϊ1 �ǣ�����3 G ��SQL �ű���
Ҫʮ����Сʱ����innodb_flush_log_at_trx_commit ��ֵ��Ϊ0����ʮ���Ӿ��㹻
�ˣ����λָ���Խ�

������iozone ���Դ������ܵı��棺
https://spreadsheets.google.com/spreadsheet/ccc?key=0AhnJQP3s984pdGFaQXZaTWJqZzNrcWhnejgtWW5ndEE&hl=zh_CN

d

unread,
Jul 21, 2011, 2:35:58 AM7/21/11
to mys...@googlegroups.com
1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电 池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。
在 2011-07-21 13:31:09,"Terry Zheng" <jfh...@gmail.com> 写道:
>当我把innodb_flush_log_at_trx_commit 的值设为1 是,导入3 G 的SQL 脚本需
>要十几个小时;把innodb_flush_log_at_trx_commit 的值设为0,几十分钟就足够
>了,请各位指点迷津?
>
>这里是iozone 测试磁盘性能的报告:
>https://spreadsheets.google.com/spreadsheet/ccc?key=0AhnJQP3s984pdGFaQXZaTWJqZzNrcWhnejgtWW5ndEE&hl=zh_CN
>
>--
>MySQLer 邮件组
>要发布讨论请发 Mail 至 邮件组邮件地址:mys...@googlegroups.com
>要退订次邮件组请发 Email 至 mysqler+u...@googlegroups.com
>要了解更多的信息,请访问:http://groups.google.com/group/mysqler?hl=en

郑朋飞

unread,
Jul 21, 2011, 3:22:31 AM7/21/11
to mys...@googlegroups.com
0、1、2的区别 我多少了解一点,我遇到的问题是不单单是innodb_flush_log_at_trx_commit  =  1 还是0。

有2 台服务器,其中一台配置很低(Intel S3420GPLC 的主板,自己组装的),innodb_flush_log_at_trx_commit  =  1的时候
导入大小为3GB 的SQL 脚本需要90分钟,而现在配置较高的这台IBM 3650 M3 却需要十几个小时还导不完,一共才有205个表,
当innodb_flush_log_at_trx_commit  =  0 时,在IBM 3650 M3 上几十分钟就能搞定。

虽然把innodb_flush_log_at_trx_commit  设为0,导入速度虽然是快了;但是 innodb_flush_log_at_trx_commit  都为1 时,
配置高的机器性能倒不如配置差的那台服务器,而且性能还不是一般的差。我想知道这是为什么,或者怎么找原因?

napoleonu

unread,
Jul 21, 2011, 6:13:59 AM7/21/11
to mys...@googlegroups.com
同一个备份?

同样的配置文件?autocommit = ?

2011/7/21 郑朋飞 <jfh...@gmail.com>

Terry Zheng

unread,
Jul 21, 2011, 9:15:34 PM7/21/11
to mys...@googlegroups.com
��ͬһ�����ݣ���������װ����̨����������Ҫ140���ӣ�autocommint ������1��

�����ļ���IBM 3650 ���޸���innodb_buffer_pool_size = 4096M��innodb_log_file_size = 1024M��innodb_data_file_path��thread_concurrency �⼸������

�� 2011-7-21 18:13, napoleonu �:
ͬһ�����ݣ�

ͬ��� �����ļ���autocommit = ?

2011/7/21 ֣��� <jfh...@gmail.com>
0��1��2����� �Ҷ����˽�һ�㣬�������������Dz�������innodb_flush_log_at_trx_commit  =  1 ����0��

��2 ̨������������һ̨���úܵͣ�Intel S3420GPLC �����壬�Լ���װ�ģ���innodb_flush_log_at_trx_commit  =  1��ʱ��
�����СΪ3GB ��SQL �ű���Ҫ90���ӣ����������ýϸߵ���̨IBM 3650 M3 ȴ��Ҫʮ����Сʱ�������꣬һ������205���?
��innodb_flush_log_at_trx_commit  =  0 ʱ����IBM 3650 M3 �ϼ�ʮ���Ӿ��ܸ㶨��

��Ȼ��innodb_flush_log_at_trx_commit  ��Ϊ0�������ٶ���Ȼ�ǿ��ˣ����� innodb_flush_log_at_trx_commit  ��Ϊ1 ʱ��
���øߵĻ������ܵ��������ò����̨���������������ܻ�����һ��IJ����֪������Ϊʲô��������ô��ԭ��


�� 2011��7��21�� ����2:35��d <lanb...@126.com>д ����

1����˼��ÿһ�������ύ���������ָ���Ҫ����־д�루flush��Ӳ�̣����Ǻܷ�ʱ�ġ��ر���ʹ �õ� �ع��绺�棨Battery backed up cache��ʱ�����2���ںܶ����ã��ر��Ǵ�MyISAM��ת�������ǿ��Եģ������˼�Dz�д��Ӳ�̶���д��ϵͳ���档��־��Ȼ��ÿ��flush��Ӳ �̣�������һ�㲻�ᶪʧ����1-2��ĸ��¡����0����һ�㣬����ȫ����Ƚϲ��ʹMySQL���� Ҳ���ܻᶪʧ�������ݡ���ֵ2ֻ�����������ϵͳ ����ʱ�ſ��ܶ���ݡ�
�� 2011-07-21 13:31:09��"Terry Zheng" <jfh...@gmail.com> ���
--
MySQLer �ʼ���
Ҫ���������뷢 Mail �� �ʼ����ʼ���ַ��mys...@googlegroups.com
Ҫ�˶����ʼ����뷢 Email �� mysqler+u...@googlegroups.com
Ҫ�˽������Ϣ������ʣ�http://groups.google.com/group/mysqler?hl=en

Sky.Jian

unread,
Jul 21, 2011, 9:23:01 PM7/21/11
to mysqler
这类性能问题
 
首先请列出二者的详细硬件配置,包括磁盘数目,磁盘型号,raid方式,内存大小,cpu型号及个数
 
然后请列出二者的配置信息
 
最后请列出运行过程中二者的负载信息,至少也需要top,vmstat等基本的负载信息
 
只有清楚知道这3项信息后,大家才好帮忙分析
 
 
2011-07-22

Sky.Jian

发件人: Terry Zheng
发送时间: 2011-07-22  09:14:14
收件人: mysqler
抄送:
主题: Re: [iMySQLer] InnoDB 导入SQL 脚本很慢
是同一个备份,现在在组装的那台服务器上需要140分钟,autocommint 都等于1;

配置文件在IBM 3650 上修改了innodb_buffer_pool_size = 4096M,innodb_log_file_size = 1024M,innodb_data_file_path,thread_concurrency 这几个参数。

于 2011-7-21 18:13, napoleonu 写道:
同一个备份?

同样的 配置文件?autocommit = ?

2011/7/21 郑朋飞 <jfh...@gmail.com>
0、1、2的区别 我多少了解一点,我遇到的问题是不单单是innodb_flush_log_at_trx_commit  =  1 还是0。

有2 台服务器,其中一台配置很低(Intel S3420GPLC 的主板,自己组装的),innodb_flush_log_at_trx_commit  =  1的时候
导入大小为3GB 的SQL 脚本需要90分钟,而现在配置较高的这台IBM 3650 M3 却需要十几个小时还导不完,一共才有205个表,
当innodb_flush_log_at_trx_commit  =  0 时,在IBM 3650 M3 上几十分钟就能搞定。

虽然把innodb_flush_log_at_trx_commit  设为0,导入速度虽然是快了;但是 innodb_flush_log_at_trx_commit  都为1 时,
配置高的机器性能倒不如配置差的那台服务器,而且性能还不是一般的差。我想知道这是为什么,或者怎么找原因?


在 2011年7月21日 下午2:35,d <lanb...@126.com>写 道:

1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使 用电 池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了 也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。

在 2011-07-21 13:31:09,"Terry Zheng" <jfh...@gmail.com> 写道:
>当我把innodb_flush_log_at_trx_commit 的值设为1 是,导入3 G 的SQL 脚本需
>要十几个小时;把innodb_flush_log_at_trx_commit 的值设为0,几十分钟就足够
>了,请各位指点迷津?
>
>这里是iozone 测试磁盘性能的报告:
>https://spreadsheets.google.com/spreadsheet/ccc?key=0AhnJQP3s984pdGFaQXZaTWJqZzNrcWhnejgtWW5ndEE&hl=zh_CN
>

Bo Sun

unread,
Jul 21, 2011, 1:56:04 AM7/21/11
to mys...@googlegroups.com
这个是innodb的写入磁盘的刷新配置,你可以看看网上很多文件介绍的,通过不同的配置确定何时或者以何种方式把数据写入硬盘中

2011/7/21 Terry Zheng <jfh...@gmail.com>

Terry Zheng

unread,
Aug 1, 2011, 1:44:43 AM8/1/11
to mys...@googlegroups.com
������˼��֮ǰ���ʼ��Ƚϲִ٣��б���Ӧ�ÿ��Է������ɣ�����̫���ˣ��Ͳ�д���ʼ��������ˡ�

������������SQL �ű������
mysqldump -u${DB_USER} -p${DB_PW} --default-character-set=utf8 --opt --extended-insert=false \
--triggers -R --hex-blob --single-transaction ${DB_NAME} | gzip > ${DB_BAKDIR}/${DATE}_${DB_NAME}.sql.gz
 
������������SQL �ű������
mysqldump 
-u${DB_USER} -p${DB_PW} --default-character-set=utf8 --opt --skip-lock-tables=TRUE --single-transaction \
--max_allowed_packet=1G --triggers -R --hex-blob ${DB_NAME} | gzip > ${DB_BAKDIR}/${DATE}_${DB_NAME}.sql.gz

��IBM ������2 ���ű���������һ�£�����װ����ֻ���������������SQL �ű�����ϸ��Ϣ�뿴������
��������Ľű�����װ���Ͽ�����ϵͳѹ���ϴ󣬵��ٶ�ȥ�ȽϿ죬�������������Ҫ��IBM 3650 M3��һ����

������������Ľű���IBM 3650 M3 ��ֻ����12���Ӿ�����ˣ�����ʲô��û�иģ����ٶȲ��Ҳ̫���˰ɡ�



�� 2011-7-22 9:23, Sky.Jian �:
������������
 
�������г����ߵ���ϸӲ�����ã� ����������Ŀ�������ͺţ�raid��ʽ���ڴ��С��cpu�ͺż�����
 
Ȼ�����г����ߵ�������Ϣ
 
������г����й���ж��ߵĸ�����Ϣ������Ҳ��Ҫtop��vmstat�Ȼ�ĸ��� ��Ϣ
 
ֻ�����֪����3����Ϣ�󣬴�Ҳźð�æ����
 
 
2011-07-22

Sky.Jian

IBM3650M3配置及系统信息.txt
组装机配置及系统信息.txt
Reply all
Reply to author
Forward
0 new messages