5 sql rdbms go database-performance
在这个问题上,我不打算对我测试过的数字以及数字运算进行大肆宣传.我对实际的最新练习表演更感兴趣.
我已经阅读了大量文章,其中一些文章对一个图书馆非常持怀疑态度.我目前正在测试一下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 =数据存储区)
您的FooDB实现可以使用任意数量的底层技术MongoDB,LevelDB,SQL等,它可以随着您的应用程序更改而更改,并且此更改对您的应用程序的其余部分是透明的(因为您的应用程序的其余部分使用FooDS
).
我默认使用database/sql(Prepared语句等),最成熟的Go SQL驱动程序是Julien Schmidt的MySQL驱动程序:https://github.com/go-sql-driver/mysql