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

2016-08-12 11:43:27 +08:00
 cstj0505

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

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

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

导数:使用 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 这波鸡血打的真足。

2125 次点击
所在节点    数据库
25 条回复
est
2016-08-12 12:14:11 +08:00
9.6 怎么也得跟 5.7 比吧。
aphorism
2016-08-12 12:29:21 +08:00
按照我一直以来的看法, PostgreSQL 的功能、性能、可扩展性等比 MySQL 不知道高到哪里去了;不过说到流行度, MySQL 就要略胜一筹。
cstj0505
2016-08-12 12:37:57 +08:00
@aphorism 我也一直用 postgresql ,以前看评测说性能差不多。
不过这次测试真的大吃一惊
okampfer
2016-08-12 12:41:45 +08:00
跟 python 的连接库有没有关系呢?
nikoukou
2016-08-12 12:42:21 +08:00
求问楼主的实验数据哪里弄来的。。 pq 对地理数据的支持是最好的。
mathgl
2016-08-12 12:58:05 +08:00
试试看 percona mysql 5.7 + rocksdb engine
greenskinmonster
2016-08-12 13:08:03 +08:00
前几天看新闻 Uber 从 PostgreSQL 迁移到 MySQL 了,不过一直都想试试 PostgreSQL
zwh8800
2016-08-12 14:55:33 +08:00
索引呢?表结构呢?这些不讲的话结果没意义。
cstj0505
2016-08-12 16:31:55 +08:00
@zwh8800 建表语句表结构都一样,没有使用索引
cstj0505
2016-08-12 16:32:40 +08:00
@nikoukou 不是地理数据,是网站的访问 log , kettle 格式化成规则的数据
yangdehua
2016-08-12 16:41:22 +08:00
innodb 的配置敢不敢发一波,说不定是你的配置不匹配呢, heavy write 的场景下, innodb 也有很多优化手段的
nikoukou
2016-08-12 16:44:16 +08:00
@nikoukou 多谢。
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
2016-08-12 16:54:34 +08:00
楼主在测默认配置的 全表扫描,怎么楼上都开始讲索引了?
cstj0505
2016-08-12 16:55:11 +08:00
@zwh8800 我那个 group by 做的全表扫描,学数据库的一般不对全表扫描加索引。

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

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

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

直接 copy 过去执行的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/298841

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX