mysql和postgresql性能测试

免费开源数据库用mysql还是postgresql一直是讨论的热点,本着求真务实的精神本人用周末休息的机会做了一个简单测试。本次测试仅针对性能,安全性,易用性,可维护性等等均不考虑。将测试过程和结果公布,欢迎拍砖。

测试环境:阿里云ECS青岛主机最低配那种(CentOS 7.0 64位,1g内存);mysql5.6,postgresql9.5.2,两个数据库均是默认配置,未做任何优化;tomcat8.0.22,spring4.2.5,druid-1.0.17,mysql-connector-java-5.0.8-bin,postgresql-9.4.1208

测试方法:新建测试表,包含三个字段,id主键,col1 varchar,cnt int;druid只开一个连接,未开启事务,使用jdbctemplate循环插入,然后全表查询;

@Service
public class TestMysqlService {
    @Resource(name = "testMysqlDao")
    private TestMysqlDao dao;

    public void ins(Integer loop){
        TestEntity entity = new TestEntity();
        for (int i=0;i<loop;i++){
            entity.setCol1("测试");
            entity.setCnt(i);
            dao.ins(entity);
        }
    }

    public void query(){
        dao.query();
    }
}

public class TestMysqlDao extends NamedParameterJdbcTemplate {

    public TestMysqlDao(DataSource dataSource) {
        super(dataSource);
    }

    public void ins(TestEntity entity){
        update("insert into t_test(col1,cnt) values (:col1,:cnt)",
                new BeanPropertySqlParameterSource(entity));
    }

    public void query(){
        queryForList("select * from t_test",new HashMap());
    }
}

测试结果:

插入1万条记录耗时(毫秒)


mysql5.6 postgresql9.5.2
第一次 47398 17499
第二次 48268 20290
第三次 49472 17236

查询3万条记录


mysql5.6 postgresql9.5.2
第一次 68 51
第二次 67 92
第三次 51 46

我还做过插入10万条记录的测试,基本是上面放大10倍的结果。以前没有接触过pg,这个测试结果还是让我吃惊不小。pg的写入操作几乎是mysql的3倍。看来以后做项目pg是首选的数据库

你可能感兴趣的:(mysql和postgresql性能测试)