友善交流技术...

innodb_flush_log_at_trx_commit对mysql性能影响

上一篇 / 下一篇  2012-09-10 16:38:30 / 个人分类:mysql

对两种不同引擎的性能表现情况.
_________________________________
innodb_flush_log_at_trx_commit=1 
root@migo-V200:~# mysqlslap --concurrency=50,100 --iterations=1 --number-int-cols=4 --number-char-cols=35 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam,innodb --number-of-queries=100 --debug-info -uroot -ptester;

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.038 seconds
Minimum number of seconds to run all queries: 0.038 seconds
Maximum number of seconds to run all queries: 0.038 seconds
Number of clients running queries: 50
Average number of queries per client: 2

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.045 seconds
Minimum number of seconds to run all queries: 0.045 seconds
Maximum number of seconds to run all queries: 0.045 seconds
Number of clients running queries: 100
Average number of queries per client: 1

Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.759 seconds
Minimum number of seconds to run all queries: 0.759 seconds
Maximum number of seconds to run all queries: 0.759 seconds
Number of clients running queries: 50
Average number of queries per client: 2

Benchmark
Running for engine innodb
Average number of seconds to run all queries: 1.102 seconds
Minimum number of seconds to run all queries: 1.102 seconds
Maximum number of seconds to run all queries: 1.102 seconds
Number of clients running queries: 100
Average number of queries per client: 1


User time 0.03, System time 0.07
Maximum resident set size 3204, Integral resident set size 0
Non-physical pagefaults 2541, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 3113, Involuntary context switches 106
_________________________________
innodb_flush_log_at_trx_commit=2
root@migo-V200:~# mysqlslap --concurrency=50,100 --iterations=1 --number-int-cols=4 --number-char-cols=35 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam,innodb --number-of-queries=100 --debug-info -uroot -ptester;

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.040 seconds
Minimum number of seconds to run all queries: 0.040 seconds
Maximum number of seconds to run all queries: 0.040 seconds
Number of clients running queries: 50
Average number of queries per client: 2

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.068 seconds
Minimum number of seconds to run all queries: 0.068 seconds
Maximum number of seconds to run all queries: 0.068 seconds
Number of clients running queries: 100
Average number of queries per client: 1

Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.040 seconds
Minimum number of seconds to run all queries: 0.040 seconds
Maximum number of seconds to run all queries: 0.040 seconds
Number of clients running queries: 50
Average number of queries per client: 2

Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.052 seconds
Minimum number of seconds to run all queries: 0.052 seconds
Maximum number of seconds to run all queries: 0.052 seconds
Number of clients running queries: 100
Average number of queries per client: 1


User time 0.04, System time 0.06
Maximum resident set size 3016, Integral resident set size 0
Non-physical pagefaults 2514, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 3123, Involuntary context switches 104
_________________________________
innodb_flush_log_at_trx_commit=0
root@migo-V200:~# mysqlslap  --concurrency=50,100 --iterations=1 --number-int-cols=4 --number-char-cols=35 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam,innodb --number-of-queries=100 --debug-info -uroot -ptester;

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.045 seconds
Minimum number of seconds to run all queries: 0.045 seconds
Maximum number of seconds to run all queries: 0.045 seconds
Number of clients running queries: 50
Average number of queries per client: 2

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.046 seconds
Minimum number of seconds to run all queries: 0.046 seconds
Maximum number of seconds to run all queries: 0.046 seconds
Number of clients running queries: 100
Average number of queries per client: 1

Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.038 seconds
Minimum number of seconds to run all queries: 0.038 seconds
Maximum number of seconds to run all queries: 0.038 seconds
Number of clients running queries: 50
Average number of queries per client: 2

Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.056 seconds
Minimum number of seconds to run all queries: 0.056 seconds
Maximum number of seconds to run all queries: 0.056 seconds
Number of clients running queries: 100
Average number of queries per client: 1


User time 0.04, System time 0.06
Maximum resident set size 3024, Integral resident set size 0
Non-physical pagefaults 2520, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 3143, Involuntary context switches 63

 如此一个参数 影响这么大,真是没有想到.但是

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



TAG:

 

评分:0

我来说两句

Open Toolbar