18
回答
MySQL与PostgreSQL的一个性能比较测试

MySQL vs PostgreSQL Benchmarks

http://www.randombugs.com/linux/mysql-postgresql-benchmarks.html#drop_updates_keys%28%29

节选结果部分:

Results:

SQL Operation
MySQL 5.0.51
seconds
MySQL 5.1.30 with InnoDB 1.0.3
seconds
PostgreSQL
seconds
create_tables() 0.03 0.06 0.02
load() 277.7 253 208.45
create_idx_uniques_key_bt() 1756.51 112.25 29.46
create_idx_updates_key_bt() 1758.63 119.33 41.14
create_idx_hundred_key_bt() 1681.67 117.65 37.51
create_idx_tenpct_key_bt() 76.22 118.33 30.42
create_idx_tenpct_key_code_bt() 60.02 10.85 8.04
create_idx_tiny_key_bt() 0.02 0.05 0.01
create_idx_tenpct_int_bt() 69.66 12.74 6.95
create_idx_tenpct_signed_bt() 216.55 16.28 10.09
create_idx_uniques_code_h() 531.3 26.35 8.77
create_idx_tenpct_double_bt() 378.33 24.06 15.95
create_idx_updates_decim_bt() 458.86 21.65 25.41
create_idx_tenpct_float_bt() 594.48 27.46 15.6
create_idx_updates_int_bt() 244.93 13.17 6.95
create_idx_tenpct_decim_bt() 889.33 17.51 25.42
create_idx_hundred_code_h() 561.48 26.78 8.9
create_idx_tenpct_name_h() 1639.52 29.85 11
create_idx_updates_code_h() 568.32 22.39 11.1
create_idx_tenpct_code_h() 2242.57 24.61 11.47
create_idx_updates_double_bt() 790.16 26.65 15.78
create_idx_hundred_foreign() 349.51 295.99 11.66
populateDataBase() 14868.15 1063.95 331.65




Single user test
sel_1_cl() 0.02 0.04
join_3_cl() 0.06 0.05 0.02
sel_100_ncl() 0.01 0.01 0.03
table_scan() 10.54 4.13 0.64
agg_func() 3.21 2.9 1.77
agg_scal() 0.01
sel_100_cl() 0.01 0.01
join_3_ncl() 0.06 0.01 0.03
sel_10pct_ncl() 0.02
agg_simple_report() 14.14 11.55 4.09
agg_info_retrieval() 0.15 0.06 0.04
agg_create_view() 0.03 0.02 0.13
agg_subtotal_report() 0.62 0.49 4.43
agg_total_report() 0.47 0.4 2.03
join_2_cl()
join_2() 1.78 1.62 0.89
sel_variable_select_low() 0.03 0.02
sel_variable_select_high() 12.52 7.82 49.51
join_4_cl()
proj_100() 7.13 7.35 149.97
join_4_ncl() 0.03
proj_10pct() 9.13 2.68 20.06
sel_1_ncl()
join_2_ncl()
integrity_test() 3.99 3.18 1.4
drop_updates_keys() 1545.63 0.02 0.21
bulk_save() 0.02 0.05 0.01
bulk_modify() 0.2 0.05 640.61
upd_append_duplicate() 0.02
upd_remove_duplicate()
upd_app_t_mid()
upd_mod_t_mid() 0.01 0.61
upd_del_t_mid() 0.61
upd_app_t_end() 0.03
upd_mod_t_end() 0.63
upd_del_t_end() 0.61
create_idx_updates_code_h() 277.3 21.16 8.99
upd_app_t_mid() 0.01
upd_mod_t_cod()
upd_del_t_mid() 0.66
create_idx_updates_int_bt() 310.24 12.71 7.62
upd_app_t_mid()
upd_mod_t_int()
upd_del_t_mid() 0.61
bulk_append() 0.1 0.21 0.03
bulk_delete() 0.04 0.02 577.67
Results in seconds 2197.43 76.53 1473.99
Multi user test
*MixedIR(tup/sec)* 101.62 95.46 30.41
sel_1_ncl() 1.6 0.09
agg_simple_report() 1683.81 40.47 350.08
mu_sel_100_seq() 0.29 0.13 0.29
mu_sel_100_rand() 0.27 3.66 0.18
mu_mod_100_seq_abort() 68.32 83.06 0.45
mu_mod_100_rand() 0.22 0.12 0.01
mu_unmod_100_seq() 0.12 0.34 0.26
mu_unmod_100_rand() 0.1 0.17 0.57
*crossSectionTests(MixedIR)* 1753.13 129.55 382.33
mu_checkmod_100_seq() 0.01 0.04 0.03
mu_checkmod_100_rand() 0.01 0.04
*MixedOLTP(tup/sec)* 806.21 430.08 295.79
sel_1_ncl() 0.01
agg_simple_report() 126.42 177.46 72.46
mu_sel_100_seq() 0.66 0.35 0.12
mu_sel_100_rand() 0.11 0.18 0.04
mu_mod_100_seq_abort() 0.11 0.05 0.08
mu_mod_100_rand() 0.05 0.07 0.05
mu_unmod_100_seq() 0.11 0.02 0.02
mu_unmod_100_rand() 0.01 0.04 0.06
*crossSectionTests(MixedOLTP)* 127.47 178.16 72.83
mu_checkmod_100_seq() 0.03 0.17 0.06
mu_checkmod_100_rand() 0.19 0.06 0.03

Legend




举报
mark35
发帖于7年前 18回/7K+阅

以下是话题补充:

  • @mark35 :这个有技术功能对比 http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL (7年前)
共有18个评论 最后回答: 5年前
Results in seconds 2197.43 76.53 1473.99

这个结果很恐怖啊,其中第一个是 MyISAM,第二个是 InnoDB,最后一个是 PostgreSQL

--- 共有 1 条评论 ---
mark35主要是 bulk_modify() bulk_delete() 这两个项目pg的结果有点离谱。其他的都还行。 7年前 回复
一连接的有时候不太靠谱,要并发200个连接测试一下可能更有意义。当然,这个测试也是能说明不少问题的。
--- 共有 2 条评论 ---
bastetwang@mark35: pg并发更好的资料有吗?能否给点我瞅瞅。 7年前 回复
mark35200并发下pg应该表现更好,而mysql就不好说了~ 7年前 回复

引用一段话:

I’m a full time MySQL DBA who loves PostgreSQL. :)

Completely sick and tired of the bug of the week. I’m perfectly happy to deal with a few planner warts in certain circumstances on PG vs completely hair brained bug and improper feature additions in MySQL.

PostgreSQL has a significantly better planner overall and supports many different types of joins. MySQL isn’t cost based and only supports loop joins.

MySQL is a toy.

Mysql 全职DBA对PG的公正评价

有数据并且靠谱的才有说服力,光靠一两句话说PostgreSQL比mysql好,还不能让人信服。

像这样的数据,至少让我对PostgreSQL有点感兴趣了。

要玩复杂的join,天书一般的执行计划,大规模查询请移步oracle.3种join,大量统计信息支持和全路径覆盖估算的cbo,rac多实例并行查询等无数特性等着你.

mysql现在撑起不少情况下连jion都不需要的互联网应用的半边天不是偶然,我想,有一天它要是被干掉,那也是被nosql,而不是另一种rdb

 

 

顶部