EDIT: I have been using Postgres with PostGIS for a few months now, and I am satisfied.

我需要分析几百万条地理编码记录,每个记录都有经纬度.这些记录包括至少三种不同类型的数据,我将try 看看每一组数据是否会相互影响.

对于所有这些数据,哪个数据库最适合底层数据存储?以下是我的愿望:

  • I'm familiar with the DBMS.我在PostgreSQL方面最弱,但如果其他方面都符合要求,我愿意学习.
  • It does well with GIS queries.次谷歌搜索表明PostgreSQL+PostGIS可能是最强的?至少很多产品似乎都在使用它.MySql的空间扩展似乎相对最小?
  • Low cost.尽管SQLServerExpress2008R2有10GB的限制,但我不确定我是否愿意接受免费版本的这一限制和其他限制.
  • Not antagonistic with Microsoft .NET Framework.多亏了Connector/NET6.3.4,MySql在C#和C#上运行良好.NET框架4程序.它完全支持.NET4的实体框架.我找不到任何非商业性的PostgreSQL类似功能,尽管我不反对为Devart的PostgreSQL专业版dotConnect支付180美元.
  • Compatible with R.似乎所有这三个都可以使用ODBC与R进行对话,所以这可能不是问题.

我已经使用MySql进行了一些开发,但如果需要,我可以进行更改.

推荐答案

如果你对全面的比较感兴趣,我推荐波士顿地理信息系统的"Cross Compare SQL Server 2008 Spatial, PostgreSQL/PostGIS 1.3-1.4, MySQL 5-6"和/或"Compare SQL Server 2008 R2, Oracle 11G R2, PostgreSQL/PostGIS 1.5 Spatial Features".

考虑到你的观点:

  • I'm familiar with the DBMS:在Windows上设置PostGIS数据库很容易,使用PgAdmin3管理也很简单
  • It does well with GIS queries: PostGIS绝对是三强,只有甲骨文空间是可比的,但如果你考虑它的成本被取消资格.
  • Low cost:+1当然是PostGIS
  • Not antagonistic with Microsoft .NET Framework:您至少应该能够通过ODBC(see Postgres wiki)进行连接
  • Compatible with R:对这三个人来说都不是问题

Mysql相关问答推荐

MYSQL子查询

了解查询中ORDER BY的行为

如何在产品查询中插入GROUP_CONCAT?

查询具有JSON对象数组的列时,JSON_CONTAINS的MySQL语法错误

在 MySQL 中,如何对 LIKE 查询进行批量更新,删除字符?

是否可以使用以EXPLAIN EXTENDED ...开头的 SQL 语句修改数据?

过滤查询结果

带有 PARTITION BY 子句的 ROW_NUMBER() 停止在 MariaDB 上工作

MYSQL:如何根据之前的相关记录获取记录

为什么一个 10 位的电话号码不能存储在长度为 10 的整数中?

MySQL表中给定字段的每个不同值的连续记录形成对

MySQL UPDATE 锁会因为连续的 SHARE 锁而饿死吗?

查询给出错误时的 mySQL Group_Concat 和 Case

在 MySQL 中 Select COUNT of MAX

Golang Gorm没有从关联表中检索数据

动态创建内联 SQL 表(用于排除左连接)

重新加载 .env 变量而不重新启动服务器(Laravel 5,共享主机)

MySQL嵌套 Select 查询?

如何将时刻 JS 时间插入 MySQL

如果另一列为空,则 Select 一列