微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Postgresql vs MySQL – 哪个更适合连接查询和写入数据(插入)

我必须设计一个数据库,它将在一个表中最终得到50M记录(其他表将有更少数量的记录).我更关心加入查询&将数据(插入)写入数据库.更新和删除查询次数会减少.

我已经阅读了this article关于PostgresqlMysqL性能比较.

我也经历了以下链接.

https://stackoverflow.com/questions/8181604/postgres-9-1-vs-mysql-5-6-innodb

https://stackoverflow.com/questions/110927/would-you-recommend-postgresql-over-mysql

https://stackoverflow.com/questions/724867/how-different-is-postgresql-to-mysql

MySQL vs PostgreSQL Wiki

MySQL vs PostgreSQL: Why MySQL Is Superior To PostgreSQL

我的问题是stackoverflow上的一些链接已过时.有些人说MysqL更好&反之亦然.

因为我更关心加入查询&将数据写入数据库哪个更适合我? Postgresql vs MysqL?我应该采取什么方法来设计这样的数据库

鉴于此,请不要将此视为另一个Postgresql vs MysqL问题.我做了我的研究,我只关心加入查询&将数据写入数据库场景.我也知道Postgresql更适合GIS数据. .

解决方法:

数据库是不同的.一般来说,答案很大程度上取决于您的具体查询.就一般用例而言,我希望Postgresql由于一些原因而表现更好,但在某些情况下我希望MysqL能够表现得更好.

在Postgresql中,所有表都是堆表.在MysqL中,所有innodb表都是btree索引,有效负载中有元组.这意味着MysqL上的主键查找速度更快,但Postgresql上的一般查询速度更快.这也意味着你通常需要更多的MysqL索引,这将减慢写入速度.

例如,我期望在MysqL上执行以下查询比Postgresql更好:

SELECT u.username, p.* 
  FROM users u
  JOIN preferences p ON u.id = p.user_id
 WHERE u.id = 123;

如果两个表共享相同的主键(u.id和p.user_id),则两个表中都有数千行,依此类推.

另一方面,我希望下面的查询在Postgresql上的表现要比在数据库中的MysqL要大得多,以适应内存,非缓存数据,正确的索引,体面的大小表等等:

SELECT c.legal_name, a.*
  FROM company c
  JOIN address a on a.company_id = c.id
 WHERE a.zip_code like '95%' and country = 'us';

在这种情况下,您必须使用其他索引,这意味着MysqL上有大量额外的随机磁盘I / O.

我期望的第二个问题是写性能.我希望Postgresql能够在这里获胜,因为堆表允许在方便的地方插入,而且维护的索引也更少.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐