上次发现 mysql 和 pg 性能差太多,然后就发了个帖: https://www.v2ex.com/t/298841#reply22
不少人说 mysql 改用 5.7 ,然后发现默认下 5.7 性能还不如 5.5. 数据库写入 mysql 的 InnoDB 实在太慢, SSD 情况下也才 1 万 5 左右, 4 个线程同时写入每个 1.3 万。 pg 一个线程就 7.8 万了。
然后全表扫描上,我把 mysql 的 InnoDB 和 MyISAM 都尝试了, sql 是: select max(sa) from (select c,sum(a) sa from PXFTEXTTB group by c order by 2) t; 1 亿条数据的时候, InnoDB 67.59 秒, MyISAM 40.92 秒, pg 是 12.28 秒 5000 万差别最大, InnoDB 34.34 秒, pg9.6 4.14 秒
而且索引 pg 也比 mysql 快。 a 字段是 sequence ,值从 1-1 亿。在 a 上创建 btree 索引,对 10 万条汇总。 sql 为: select sum(c) from PXFTEXTTB2 where a<70000000 and a>69900000; InnoDB : 0.19 秒 MyISAM : 0.14 秒, pg : 0.038 秒
1
Lao9 2016-10-19 12:05:51 +08:00 via iPhone
这是肯定的、写入速度 pg 天然就有优势 。
|
3
Infernalzero 2016-10-19 13:32:19 +08:00
只是你对 mysql 的了解不够而已,不然现在大型互联网公司为何都是清一色选择 mysql?
|
4
dontwanttologin 2016-10-19 13:36:04 +08:00
pg 有什么好用/用的顺手一些的客户端工具吗? MySQL 配合 Sequel Pro 用的很爽。
|
5
wsy2220 2016-10-19 13:38:00 +08:00
pgsql 用起来比 mysql 爽多了
|
6
pmpio 2016-10-19 13:40:20 +08:00
而且,据说 pg 比 mysql 更遵守 SQL 规范。。。
|
7
jackysc 2016-10-19 13:47:28 +08:00
@dontwanttologin pgadmin 试试
|
8
faywong8888 2016-10-19 13:50:42 +08:00 via Android
pgadmin +1
|
9
jjx 2016-10-19 13:55:25 +08:00
用 mysql 多的是先入为主,而且是有积累了, 掉头不容易
pg 对复杂查询的性能远超 mysql, 稳定性也远超 mysql, 在企业软件中不用 pg, 是你的损失 |
10
twl007 2016-10-19 13:56:22 +08:00
为什么不跟 MariaDB 对比一下呢 0 0
|
11
cstj0505 OP @Infernalzero 我尽量选的相同的功能来测的,都是全表扫描,都是 btree 索引,这个和我了不了解 mysql 有什么关系?
另外, mysql 作为 lamp 的一员随着互联网发展起来并广泛传播,而且入门简单,这和 mysql5.7 的性能没 pg9.6 好有关系吗? |
13
cstj0505 OP @dontwanttologin pgadmin+1
|
14
VeryEase 2016-10-19 14:07:10 +08:00
@dontwanttologin 可以使用 Navicat for Postgresql 精简版, 授权费用不到 300 ,个人可以承受,已经够用了,经济允许可以买完全版本,带模型设计功能。 pgadmin3 是开源的,也一直在用,功能略微简单,最新出来的 pgadmin4 比较强大,但是卡到不行,而且用了几次有崩溃的情况,直接删除了。
|
15
Infernalzero 2016-10-19 14:08:47 +08:00
@cstj0505
测这种, innodb_flush_log_at_trx_commit 参数你改了吗,其他还有不少呢 真以为 mysql 只是因为 lxmp 才用的多? 不说淘宝,fb 这些特别大型的公司, uber 之前都因为 pg 太坑转了 mysql |
16
ivmm 2016-10-19 14:14:04 +08:00
Mysql 要用企业版去比。
社区的话,得用 Percona 和 MariaDB 来对比 |
17
cstj0505 OP @Infernalzero 改完之后就没一个统一的尺度了,牺牲一些东西追求极限性能,这也不是通常的应用场景吧。
我从 1000 万, 5000 万,刀 10000 万数据都试了一遍, pg 写入查询都比 mysql 好很多。 都是默认配置下测的, pg 也没做任何修改。 另外 uber 这件事请有些 pg 的原因,但是事实上也和 uber 工程师不太了解 pg 有关。 不少人回应过那篇文章,包括上次那个帖子离也有人提到了。 你只要稍微动动手指就能查到。 |
20
mathgl 2016-10-19 15:05:21 +08:00
@cstj0505 uber 那件事在 pg list 有讨论。它的问题现在 pg 都有解决方案。至于它为什么要换库,这个不完全是技术的原因。
|
21
Sharuru 2016-10-19 15:55:46 +08:00
pgAdmin4 竟然是 web application...启动速度感人。
|
23
kideny 2016-10-19 16:10:20 +08:00
不是为了省钱, 100 万台 access 服务器,也能抗大型网站吧。
|
24
cstj0505 OP @twl007 用 mariaDB10.1 试了下, 3 个线程同时写, InnoDB 表单线程写入 2 万,比 mysql 的 1.3 万高了 50%.
奇怪 MyISAM 只有 1 万 8 。 3 线程写, pg 单线程 6.5 万 1000 万条执行上面那个 max 查询: InnoDB : 28.10s MyISAM : 1.90s pg : 0.857s |
25
lightening 2016-10-19 16:12:54 +08:00
@dontwanttologin 我用 Postico
|
26
cheetah 2016-10-19 16:22:04 +08:00
Postico+1
|
27
reus 2016-10-19 20:44:40 +08:00
就算比 mysql 慢,还是用它,因为查询、数据类型都比 mysql 强太多。
|
28
banxi1988 2016-10-19 21:06:53 +08:00
Postico + 1
很好用. 不过注意是 Mac Only |
29
Jaylee 2016-10-20 10:37:09 +08:00
Postico+2
|