mysql, pgsql 默认配置情况下吹一波 postgresql 了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cstj0505
V2EX    数据库

mysql, pgsql 默认配置情况下吹一波 postgresql 了

  •  
  •   cstj0505 2016-08-12 11:43:27 +08:00 2471 次点击
    这是一个创建于 3351 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天做一个 python 链数据库的练习。 结果 psycopg2 和 pg9.6 不兼容。 就另外装了 mysql5.5 。

    机器: OS:debian jessie cpu : 6700hq 内存: 16G 硬盘: 256 ssd+2T 机械硬盘 数据库 datadir 都在 ss 上。

    都是默认配置,没有任何优化。

    导数:使用 kettle 把机械硬盘上的文本写到数据库里。 etl 程序同一个,就是改了数据库链接。数据条数 700 多万条。 pg 写入速度: 25000r/s mysql:12000r/s

    查询: select clientip,sum(totservertime) from videolog group by clientip order by sum(totservertime) desc; 运行时间: pg : 3s mysql : 1 min 4.60 sec

    postgresql 这波鸡血打的真足。

    25 条回复    2016-10-19 19:12:53 +08:00
    est
        1
    est  
       2016-08-12 12:14:11 +08:00
    9.6 怎么也得跟 5.7 比吧。
    aphorism
        2
    aphorism  
       2016-08-12 12:29:21 +08:00
    按照我一直以来的看法, PostgreSQL 的功能、性能、可扩展性等比 MySQL 不知道高到哪里去了;不过说到流行度, MySQL 就要略胜一筹。
    cstj0505
        3
    cstj0505  
    OP
       2016-08-12 12:37:57 +08:00
    @aphorism 我也一直用 postgresql ,以前看评测说性能差不多。
    不过这次测试真的大吃一惊
    okampfer
        4
    okampfer  
       2016-08-12 12:41:45 +08:00
    跟 python 的连接库有没有关系呢?
    nikoukou
        5
    nikoukou  
       2016-08-12 12:42:21 +08:00
    求问楼主的实验数据哪里弄来的。。 pq 对地理数据的支持是最好的。
    mathgl
        6
    mathgl  
       2016-08-12 12:58:05 +08:00
    试试看 percona mysql 5.7 + rocksdb engine
    greenskinmonster
        7
    greenskinmonster  
       2016-08-12 13:08:03 +08:00 via Android
    前几天看新 Uber 从 PostgreSQL 迁移到 MySQL 了,不过一直都想试试 PostgreSQL
    zwh8800
        8
    zwh8800  
       2016-08-12 14:55:33 +08:00
    索引呢?表结构呢?这些不讲的话结果没意义。
    cstj0505
        9
    cstj0505  
    OP
       2016-08-12 16:31:55 +08:00
    @zwh8800 建表语句表结构都一样,没有使用索引
    cstj0505
        10
    cstj0505  
    OP
       2016-08-12 16:32:40 +08:00
    @nikoukou 不是地理数据,是网站的访问 log , kettle 格式化成规则的数据
    yangdehua
        11
    yangdehua  
       2016-08-12 16:41:22 +08:00
    innodb 的配置敢不敢发一波,说不定是你的配置不匹配呢, heavy write 的场景下, innodb 也有很多优化手段的
    nikoukou
        12
    nikoukou  
       2016-08-12 16:44:16 +08:00
    @nikoukou 多谢。
    zwh8800
        13
    zwh8800  
       2016-08-12 16:50:30 +08:00
    @cstj0505 不加索引, select 肯定慢出翔。学数据库很大部分是学怎么加索引。

    你不如在 mysql 下执行一下 `explain select clientip,sum(totservertime) from videolog group by clientip order by sum(totservertime) desc;` mysql 会给你讲解出你这条语句为什么执行的这么慢。
    pubby
        14
    pubby  
       2016-08-12 16:54:34 +08:00
    楼主在测默认配置的 全表扫描,怎么楼上都开始讲索引了?
    cstj0505
        15
    cstj0505  
    OP
       2016-08-12 16:55:11 +08:00
    @zwh8800 我那个 group by 做的全表扫描,学数据库的一般不对全表扫描加索引。

    我吃惊的是二者都没做任何优化这种场景下的差别。优化起来肯定是各有所长的。
    cstj0505
        16
    cstj0505  
    OP
       2016-08-12 16:57:39 +08:00
    @yangdehua

    二者都是完全默认的安装。

    要有优化的话也只能说明 mysql 默认配置在这种稍微大一点的数据量的场景下效率不高。
    cstj0505
        17
    cstj0505  
    OP
       2016-08-12 16:58:54 +08:00
    awanabe
        18
    awanabe  
       2016-08-12 16:59:46 +08:00
    @cstj0505 默认安装和 表设计又不是一回事
    jjx
        19
    jjx  
       2016-08-12 17:01:01 +08:00
    postgresql 默认 100 个连接
    cstj0505
        20
    cstj0505  
    OP
       2016-08-12 17:04:48 +08:00
    @awanabe 建表语句都是一样的。
    create table xxx (
    xxx xxx ,
    .
    .
    .

    直接 copy 过去执行的
    aphorism
        21
    aphorism  
       2016-08-12 20:01:15 +08:00
    @greenskinmonster

    看了一下这篇 https://eng.uber.com/mysql-migration/ 和这篇 https://eng.uber.com/schemaless-part-one/ ,其实准确地讲, Uber 不是转到了 MySQL ,而是转到了以 MySQL 为基础开发形成的一个私有数据库实现 SCHEMALESS 上。按照他们在博客中提到的, PostgreSQL 在基于互联网的数据复制方面有一些设计缺陷,这是很正常的。这不能证明 MySQL 比 Postgresql 更强,但可以说明 MySQL 的有些设计对于 Uber 的应用而言更合适,而且做一个 MySQL mod 比在 PostgreSQL 基础上改动可能更容易。其实要是我,可能就直接在 PostgreSQL 的基础上改造了。
    greenskinmonster
        22
    greenskinmonster  
       2016-08-12 20:43:15 +08:00
    @aphorism 嗯,我只是提一下这个事情,并没说 Mysql 和 Postgres 谁好谁坏。根据自己的应用场合选择不同的解决方案,这个才是更重要的。
    mathgl
        23
    mathgl  
       2016-10-19 15:06:36 +08:00
    @jjx 有 connection pool 100 个也够了。
    jjx
        24
    jjx  
       2016-10-19 16:45:28 +08:00
    @mathgl

    企业软件每个事务时间长, 有时会不够, 互联网应用可能好些

    现在自己部署都是默认 100 个不变, rds 用的是 200
    mathgl
        25
    mathgl  
       2016-10-19 19:12:53 +08:00
    @jjx 如果是很长的事务是不是用队列做更好些?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     907 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:44 PVG 04:44 LAX 13:44 JFK 16:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86