RDBMS对Golang的影响

时间:2014-02-08 14:25:02

标签: sql go rdbms database-performance

对于我测试过的数字和数字运算,我不会在这个问题上大肆宣传。我对实际的最新练习表演更感兴趣。

我已经阅读了大量的文章,其中一些文章非常怀疑,或者非常专业的一个图书馆。我目前正在使用gorp测试一下,但我不知道如何比较这样一个库对其他人的表现。

我知道gorp是一个额外的层,它试图将ORM添加到基本的SQL驱动程序/实现中,但是看到Go非常清晰的代码,并且在它所做的每件事情上都非常接近骨骼。这与我使用的PHP / Python / JAVA不同,在这里你必须通过无尽的复杂层次来实际看到包的本质。

所以我的问题是,如果有人可以分享(基准总是欢迎:) :)他们在这个主题上的经验和知识。

我认为NoSQL类型的解决方案不适合我的项目。我的所有项目总是强烈依赖于业务逻辑和相互交织的关系。我也想知道Postgres是否会赢得MySQL。使用Django(Python)我发现使用Postgres可以获得显着的性能提升,但是如果它是由于Postgres核心实现或仅仅是Django使用包装器的方式,我从未找到证明。

小更新

在重读了这个问题后,我注意到我有点错过了它的实际目标。我实际上正在寻找最合适的SQL解决方案,这将最不会降低Golang本身的速度。我知道SQL运行并发,但在将其作为Web服务运行时也会遇到大量流量。如果能让我获得性能上的重大收益,我将不会再次放弃ORM部分。

1 个答案:

答案 0 :(得分:6)

如果您需要使用ORM sqlxgorp是好的Go选项。就个人而言,我有点老了,我宁愿选择给定类型Foo,我宁愿写一个实现FooDB接口的FooDS结构。您应用中的所有内容都只使用FooDS。 (DB =数据库,DS =数据存储区)

您的FooDB实施可以使用任意数量的底层技术MongoDB,LevelDB,SQL等,它可以随着您的应用更改而更改,并且此更改对您应用的其余部分是透明的(因为您的应用的其余部分使用{{ 1}})。

我默认使用database/sql(预备语句等),最成熟的Go SQL驱动程序是Julien Schmidt的MySQL驱动程序:https://github.com/go-sql-driver/mysql

相关问题