对于这个关于我测试过的内容和数字运算的问题,我不会长篇大论。我对实际的最新练习表演更感兴趣。
我已经阅读了成千上万的文章,有些文章持怀疑态度,或是 对一个图书馆 都很 赞成 。我目前正在使用进行测试gorp,但我不知道如何将此类库的性能与其他库进行比较。
gorp
我知道gorp是一个额外的层,试图将ORM添加到基本的SQL驱动程序/实现中,但是看到Go的代码非常清晰,并且在执行的所有操作中都非常接近其骨干。我使用的也不是PHP / Python / JAVA,在这种情况下,您必须浏览无尽的复杂性,才能真正看到软件包的本质。
所以我的问题是,是否有人可以分享(始终欢迎基准:))他们在该主题上的经验和知识。
我认为NoSQL类型的解决方案不是我的项目的选择。我所有的项目始终强烈依赖于业务逻辑和相互交织的关系。我也想知道Postgres是否会击败MySQL。使用Django(Python)时,我注意到使用Postgres可获得显着的性能提升,但是我从来没有发现这是由于Postgres核心实现还是Django使用包装器的方式所致。
小更新
重读问题后,我注意到我有点错过了它的实际目标。我实际上是在寻找最合适的SQL解决方案,以使Golang本身的运行速度减慢。我知道SQL可以并发运行,但是在作为Web服务运行时也会涉及大量通信。如果那将使我在性能上获得重大收益,那么我真的不会再去掉ORM部分。
如果您需要使用ORM sqlx或gorp,则可以使用Go选项。就我个人而言,我有点老了,我宁愿对于给定的类型Foo,我宁愿编写FooDB实现FooDS接口的结构。您应用中的所有内容都只会使用FooDS。(DB =数据库,DS =数据存储)
Foo
FooDB
FooDS
您的FooDB实现可以使用MongoDB,LevelDB,SQL等任意数量的基础技术,并且可以随您的应用程序的更改而更改,并且此更改对其余应用程序是透明的(因为其余的应用程序都使用FooDS)。
我将默认使用数据库/ sql(预备语句等),最成熟的Go SQL驱动程序是Julien Schmidt的MySQL驱动程序:https : //github.com/go-sql-driver/mysql