为了调查新 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 prepare
测试阶段:
Sysbench – 只读测试 – 100 万行的单表 – 数据大小 559MB(527MB 数据 + 31MB 索引)
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
这个测试运行的时间更长,我不得不停止它,因为服务器上的负载非常高 - 即使这是在内存表中!?。
我之前已经讨论过 InnoDB vs MEMORY
Jan 21, 2012
: InnoDB 引擎是否跟上内存引擎的速度?Jan 17, 2012
: Mysql 内存表得到很多锁我还解决了 MEMORY 表存在的一个令人头疼的问题:由于文件,仍然存在磁盘 I/O
.frm
(请参阅我的帖子,我正在使用 MEMORY 存储引擎,但 MySQL 仍然写入我的磁盘......为什么?)。还值得记住的是 MEMORY 表执行表级锁定这一事实。
您应该只增加 InnoDB 缓冲池并留下 MEMORY 表