首页 > 代码库 > go和php比较mysql的insert速度
go和php比较mysql的insert速度
表CREATE TABLE `goods` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL COMMENT ‘??‘,
`dateline` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2451249 DEFAULT CHARSET=utf8
测试环境,在同一服务器上。
golang :beego框架
php:yii框架
golang:
stmtIns,err := db.Prepare("insert into goods values(?,?,?)") for i := 0;i<=1000000;i++ { _,err = stmtIns.Exec(nil,"ddd",time.Now().Unix()) if err != nil { panic(err.Error()) } }
php:
for($i=0;$i<=1000000;$i++){ $t = time(); $sql = "insert into goods values(NULL,‘dddd‘,$t)"; if(Yii::app()->db_test->createCommand($sql)->query())echo "1"; }
每次10万条轮替插入表分别记录(id为表自增id)。
go beego:
8.800196552s id:1-100000
11.11174997s id:200001-300000
14.917775043s
14.736186824s
15.600297382s
18.168707698s id1000000-1100000
php yii
18s id:100001-200000
17s id:300001-400000
16s id:1100000-1200000
刚开始go比php快9s多,后面反被PHP快出2s样子。
分别空表插入100万条时间开销:
go
1m26.883778465s 第一次100W条
1m27.344121961s 第二次100W条 id 100w-200w
php:
2m78.8433s 第一次100W条
2m70.77s id200w-300w
为何不断追加数据的情况下,go语言需要更多时间,而php开销的时间在减少。为啥呢?!
go和php比较mysql的insert速度