免費開源數據庫用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是首選的數據庫安全