引自heiyeluren的博客】測試環境
CPU:Intel Pentium4 2.66GHz
Memory:1GB
Disk:73GB/SCSI
OS:FreeBSD 4.11
PHP:PHP 5.2.1
MySQL:MySQL 4.1.23b
前期工作
my.cnf
max_heap_table_size = 128M
建表
use test;
--
-- Store engine heap
--
CREATE TABLE `tbl_heap` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(32) NOT NULL default '',
`email` varchar(32) NOT NULL default '',
`summary` varchar(255) default '',
KEY `id` (`id`)
) ENGINE=HEAP DEFAULT CHARSET=gbk;--
-- Store engine myisam
--
CREATE TABLE `tbl_isam` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(32) NOT NULL default '',
`email` varchar(32) NOT NULL default '',
`summary` varchar(255) default '',
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
插入數據
說明:每次都是空表插入數據
插入10000 Record
Heap engine insert 10000 record used time: 3.5008587837219
MyISAM engine insert 10000 record used time: 4.5881390571594
50000 Record
Heap engine insert 50000 record used time: 19.895354986191
MyISAM engine insert 50000 record used time: 33.866044998169
100000 Record
Heap engine insert 100000 record used time: 36.200875997543
MyISAM engine insert 100000 record used time: 68.34194111824
200000 Record
Heap engine insert 200000 record used time: 68.00207901001
MyISAM engine insert 200000 record used time: 125.26263713837
查詢數據
表裡分表有:200000條記錄,兩個表數據一致
直接select,10000次,每次取100條記錄
Heap engine select 10000 times, 100 record used time: 12.122506141663
MyISAM engine select 10000 times, 100 record used time: 19.512896060944
直接select,1000次,每次取10000條記錄
Heap engine select 1000 times, 10000 record used time: 111.54126811028
MyISAM engine select 1000 record used time: 116.79438710213
增加where條件,1000次,每次取10000條記錄
Heap engine select 1000 times, 10000 record used time: 111.52102303505
MyISAM engine select 1000 times, 10000 record used time: 117.68481087685
where條件,10000次,每次從1000條起,取1000條記錄
Heap engine select 10000 times, 1000 record used time: 124.28988695145
MyISAM engine select 10000 times, 1000 record used time: 139.82107305527
where條件增加like,10000次,每次從1000條起,取1000條記錄
Heap engine select 10000 times, 1000 record used time: 145.43780493736
MyISAM engine select 10000 times, 1000 record used time: 163.56296992302
where條件增加索引,10000次,每次從1000條起,取1000條記錄
-- 建立索引 (在SQLyob下執行)
ALTER TABLE tbl_heap ADD INDEX idx_name (name);
ALTER TABLE tbl_isam ADD INDEX idx_name (name);Heap engine alter table add index used time: 2.078
MyISAM engine alter table add index used time: 13.516Heap engine select 10000 times, 1000 record used time: 153.48922395706
MyISAM engine select 10000 times, 1000 record used time: 239.86818814278
PS:不合適的索引還不如不要。