免费开源数据库用mysql仍是postgresql一直是讨论的热点,本着求真务实的精神本人用周末休息的机会作了一个简单测试。本次测试仅针对性能,安全性,易用性,可维护性等等均不考虑。将测试过程和结果公布,欢迎拍砖。java
测试环境:阿里云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.1208mysql
测试方法:新建测试表,包含三个字段,id主键,col1 varchar,cnt int;druid只开一个链接,未开启事务,使用jdbctemplate循环插入,而后全表查询;spring
@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()); } }
测试结果:sql
插入1万条记录耗时(毫秒)数据库
mysql5.6 | postgresql9.5.2 | |
第一次 | 47398 | 17499 |
第二次 | 48268 | 20290 |
第三次 | 49472 | 17236 |
查询3万条记录tomcat
mysql5.6 | postgresql9.5.2 | |
第一次 | 68 | 51 |
第二次 | 67 | 92 |
第三次 | 51 | 46 |
我还作过插入10万条记录的测试,基本是上面放大10倍的结果。之前没有接触过pg,这个测试结果仍是让我吃惊不小。pg的写入操做几乎是mysql的3倍。看来之后作项目pg是首选的数据库安全