为了研究新的HP Gen8服务器(Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz)上的性能问题,我做了一些测试
我创建了两个表,第一个是使用InnoDB存储引擎,第二个是在Memory -堆表中。
系统详细信息:
sysbench-0.4.12-5.el6.x86_64
CentOS release 6.4 (Final)InnoDB
# sysbench --db-driver=mysql --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 --mysql-db=sbtest1 prepare内存(堆)
# sysbench --db-driver=mysql --test=oltp --mysql-table-engine=heap --oltp-table-size=1000000 --mysql-db=sbtest2 prepareSysbench -只读测试-具有1 mln行的单个表.数据大小559 mln(527 mln数据+31 mln索引)
InnoDB
# sysbench --db-driver=mysql --test=oltp --mysql-table-engine=innodb --num-threads=128 --max-requests=100000 --oltp-read-only run总时间: 16.3648s,TPS (每秒事务处理):6111.40
内存(堆)
# sysbench --db-driver=mysql --test=oltp --mysql-table-engine=heap --mysql-engine-trx=no --num-threads=128 --max-requests=100000 --oltp-read-only run这个测试的运行时间要长得多,由于服务器上的负载非常高,所以我不得不停止它--即使这是在内存表中!?
发布于 2013-09-13 15:39:52
我以前讨论过InnoDB和内存
Jan 21, 2012:InnoDB引擎是否与内存引擎同步?Jan 17, 2012:Mysql内存表获得多个锁我还提到了一个令人头疼的内存表:由于.frm文件,仍然存在磁盘I/O (请参阅我的post 我正在使用内存存储引擎,但是MySQL仍然会写到我的disk...Why吗?)。
同样值得记住的是,内存表执行表级锁。
您应该增加InnoDB缓冲池,并将内存表留在后面。
https://dba.stackexchange.com/questions/49839
复制相似问题