【问题标题】:MySQL vs PostgreSQL Concerns w/ GIS & SpeedMySQL 与 PostgreSQL 对 GIS 和速度的担忧
【发布时间】:2011-11-30 11:56:05
【问题描述】:

我知道有几个线程解决了这个问题,但我想知道自从这些线程发布以来是否有任何变化。

我正在寻找构建一个 GIS 网络应用程序,人们都说 PostgreSQL 是要走的路,因为它支持更好地与映射有关的各种事情,而 MySQL 的空间扩展并不太好。

所以 PostgreSQL 似乎是要走的路,但无论我走到哪里,我都读到 PostgreSQL 与 MySQL 相比非常慢,这仍然是真的吗?

如果我想将 GeoDjango 与 MySQL 一起使用,我能做大部分事情吗?

我真的夹在两者之间,只是因为人们一直说 PostgreSQL 真的很慢,但 MySQL 在处理 GIS 方面并不是很好。

你怎么看?

【问题讨论】:

  • PostgreSQL 在 90 年代(版本 7.x)可能已经很慢,但对于任何最新版本的 Postgres (>= 8.3) 来说,这绝对不再正确

标签: mysql postgresql gis geodjango


【解决方案1】:

不,postgresql 并不慢。这个神话是由于人们在 myisam 与 postgresql 上运行单线程顺序基准。尝试使用许多并发查询对实际使用条件进行建模的基准测试使 postgresql 在性能上与 mysql 相当或领先,尤其是当您在 CPU/内核中扩展时。

http://www.randombugs.com/linux/mysql-postgresql-benchmarks.html

http://tweakers.net/reviews/657/5

【讨论】:

  • 网络上有如此多的 BS 基准测试,简直令人作呕。例如,您链接的 randombugs.com 基准测试没有使用 InnoDB,尽管它声称这样做。仔细看:在配置文件中使用了skip-innodb。然后,它使用 MyISAM,因为当 InnoDB 不可用时,MySQL 愚蠢地回退到默认设置。所以当然它会在 OLTP 基准测试中受到影响,因为 MyISAM 的读/写并发性为零!我可能会补充一点,这些基准是古老的。 2006 年?来吧。自 2006 年以来,整个世界都发生了变化。
  • 是的,这就是重点。神话始于 BS 基准测试。是的,postgresql 多年来一直比 mysql 快,甚至在 2006 年也是如此。从那时起,所有的变化是 postgresql 变得更快了,mysql 增加了一些他们缺少的功能。
  • 您没有链接到任何非 BS 基准来证明您声称 PostgreSQL 更快。这是一个常见的索赔。重复断言的证明对我不起作用。
  • 实际上,他们是故意在那个基准上调用skip-innodb,他们使用的是性能更好的innoDB-plugin,并且在以后的版本中集成到了核心中。
【解决方案2】:

在我看来,如果存在未知变量,例如 - 你的预算是多少,你的目标系统输出是多少以及你的负载率是多少,那么在速度方面比较 MySQL 和 PostgreSQL 是愚蠢的?

这两个 RDBMS 都很棒,而且可以扩展。不同之处在于 MySQL 具有可插拔的引擎架构,允许它插入各种引擎。如果我没记错的话,MySQL 原生支持 9 个引擎,但它有大量商业引擎可供选择,还有 2 个流行的分支(Percona 和 MariaDB)引入了各种增强功能,尤其是对于 InnoDB 存储引擎。

真正的问题是,GIS“东西”中的“坏”是什么意思?坏是什么意思?不能计算一些东西?不能存东西?我真的不明白你认为不好的东西。

我怀疑选择这两个数据库中的任何一个都会出错,只是要小心声称一种产品比另一种产品更快的虚假基准。在性能方面设定您的目标,在您的测试机器上安装这两个产品并运行它们。如果两者都满足您的性能需求,请使用您觉得开发起来更舒服的一个。

【讨论】:

  • “不擅长 GIS”意味着“不支持地理空间处理”或“没有空间扩展”。例如地理空间查询,如“选择此多边形内的所有点”。 OP 是正确的,直到最近 MySQL 才正确支持这种查询,因此 PostGreSQL/PostGIS 是开源地理空间数据库中的领导者。文档 MySQL 5.6.1 及更高版本现在具有精确的几何算法,因此 MySQL 现在可能是地理空间工作的竞争者。
【解决方案3】:

查看这个话题:GIS: PostGIS/PostgreSQL vs. MySql vs. SQL Server?

PostGIS 更加成熟和完整,它与 Oracle 和 SQL Server 竞争,而不是 MySQL。对不起。

【讨论】:

  • 我同意,如果你真的需要复杂的 GIS 支持,MySQL 根本没有。你可以使用专有的东西,你可以使用 Sphinx Search 来做一些简单的事情,或者你可以使用 PostGIS。这些是实用的选择。
【解决方案4】:

关于 GIS 功能,请查看以下 GIS SE 问题:

Would PostGIS offer an advantage over MySQL for a produce farm application?

我认为从我在这里和 GIS SE 网站上阅读的所有内容来看,在处理空间数据方面,带有 PostGIS 的 PostgreSQL 无疑是赢家。

【讨论】:

    猜你喜欢
    • 2014-11-01
    • 2012-12-25
    • 1970-01-01
    • 2010-11-27
    • 2020-11-02
    • 2011-01-30
    • 2011-03-01
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多