golang sql builder benchmark
1.0.0
인기있는 GO SQL 쿼리 빌더의 비교. 기능 목록 및 벤치 마크를 제공합니다
특징 | DBR | 다람쥐 | SQRL | 고크 |
---|---|---|---|---|
SelectBuilder | + | + | + | + |
삽입물을 삽입하십시오 | + | + | + | + |
UpdateBuilder | + | + | + | + |
deletebuilder | + | + | + | + |
PostgreSQL 지원 | + | + | + | |
맞춤형 자리 소유자 | + | + | + | |
지원에 합류합니다 | + | + | + | |
쿼리 빌더의 하위 쿼리 | + | + | + | |
열에 대한 별칭 | + | + | + | |
사례 표현 | + | + | + |
몇 가지 설명은 다음과 같습니다.
Custom placeholders
- 사용 능력뿐만 아니라 ?
자리 표시 자, PostgreSQL에 유용합니다JOINs support
- Select("*").From("a").Join("b")
과 같은 선택 쿼리에서 조인을 빌드하는 능력Subquery in query builder
- 한 건축업자가있는 하위 쿼리를 준비한 다음 다른 건축업자에게 전달할 때. 같은 것 : subQ := Select ( "aa" , "bb" ). From ( "dd" )
qb := Select (). Column ( subQ ). From ( "a" )
Aliases for columns
- 열을 별칭하는 쉬운 방법, 특히 하위 퀘스트에 의해 열이 지정된 경우 : subQ := Select ( "aa" , "bb" ). From ( "dd" )
qb := Select (). Column ( Alias ( subQ , "alias" )). From ( "a" )
CASE expression
- 사례 표현을위한 구문 설탕 go test -bench=. -benchmem | column -t
2.6 GHZ I5 MacBook Pro의 go test -bench=. -benchmem | column -t
:
BenchmarkDbrSelectSimple 500000 2610 ns/op 864 B/op 14 allocs/op
BenchmarkDbrSelectConditional 500000 3808 ns/op 1031 B/op 19 allocs/op
BenchmarkDbrSelectComplex 200000 11585 ns/op 3323 B/op 53 allocs/op
BenchmarkDbrSelectSubquery 200000 10025 ns/op 2851 B/op 40 allocs/op
BenchmarkDbrInsert 500000 3717 ns/op 1136 B/op 19 allocs/op
BenchmarkDbrUpdateSetColumns 300000 4106 ns/op 1038 B/op 24 allocs/op
BenchmarkDbrUpdateSetMap 300000 5396 ns/op 1388 B/op 26 allocs/op
BenchmarkDbrDelete 1000000 2150 ns/op 482 B/op 13 allocs/op
BenchmarkGoquSelectSimple 100000 15180 ns/op 3282 B/op 46 allocs/op
BenchmarkGoquSelectConditional 100000 19655 ns/op 4258 B/op 61 allocs/op
BenchmarkGoquSelectComplex 30000 50628 ns/op 11414 B/op 215 allocs/op
BenchmarkSqrlSelectSimple 500000 3555 ns/op 952 B/op 15 allocs/op
BenchmarkSqrlSelectConditional 300000 4377 ns/op 1112 B/op 20 allocs/op
BenchmarkSqrlSelectComplex 100000 24040 ns/op 4751 B/op 100 allocs/op
BenchmarkSqrlSelectSubquery 100000 26203 ns/op 3560 B/op 67 allocs/op
BenchmarkSqrlSelectMoreComplex 30000 47018 ns/op 7256 B/op 150 allocs/op
BenchmarkSqrlInsert 200000 7773 ns/op 1304 B/op 25 allocs/op
BenchmarkSqrlUpdateSetColumns 200000 8633 ns/op 1369 B/op 32 allocs/op
BenchmarkSqrlUpdateSetMap 200000 15786 ns/op 1788 B/op 36 allocs/op
BenchmarkSqrlDelete 500000 3669 ns/op 496 B/op 12 allocs/op
BenchmarkSquirrelSelectSimple 100000 14934 ns/op 2737 B/op 52 allocs/op
BenchmarkSquirrelSelectConditional 100000 18034 ns/op 4023 B/op 84 allocs/op
BenchmarkSquirrelSelectComplex 20000 63096 ns/op 12742 B/op 283 allocs/op
BenchmarkSquirrelSelectSubquery 30000 48956 ns/op 9954 B/op 206 allocs/op
BenchmarkSquirrelSelectMoreComplex 20000 83842 ns/op 17153 B/op 386 allocs/op
BenchmarkSquirrelInsert 100000 14517 ns/op 3356 B/op 75 allocs/op
BenchmarkSquirrelUpdateSetColumns 100000 23995 ns/op 4787 B/op 108 allocs/op
BenchmarkSquirrelUpdateSetMap 50000 27141 ns/op 5203 B/op 112 allocs/op
BenchmarkSquirrelDelete 100000 16728 ns/op 2815 B/op 67 allocs/op
쿼리가 매우 간단한 경우 dbr
선택하십시오.
쿼리 빌더의 불변성이 실제로 필요하고 여분의 기억을 희생 할 준비가되면 가장 느리지 만 가장 신뢰할 수있는 squirrel
를 사용하십시오.
squirrel
이 쿼리 빌딩을 용이하게하기 위해 제공하는 달콤한 도우미가 마음에 들거나 PostgreSQL
에 동일한 빌더를 사용할 계획이라면 sqrl
이 성능과 기능 간의 균형을 잡으십시오.
goqu
쿼리를 구축 할 수있는 많은 기능과 방법이 있습니다. 쿼리 만 빌드하는 데 필요한 경우 SQL 연결을 스튜브해야합니다. sqlmock으로 수행 할 수 있습니다. 단점 : 건축업자는 느리고 기능이 너무 많으므로 쿼리를 구축하는 것이 악몽이 될 수 있습니다. 그러나 모든 것에 대한 완전한 제어가 필요하다면 - 이것이 당신의 선택입니다.