One thing. It's too slow.
I've been doing some tests with the driver on Windows Go1 amd64. It looks pretty nice and the database/sql interface makes it pretty easy to use. But I can say the same thing about it. It's too slow. Not because of the example not making a transaction. Some time ago I made a benchmak of SQLite using D for a project I needed (
http://sqlitemark.heroku.com any additional data is hugely appreciated). The D code (if someone is interested) uses binding for the sqlite library directly (calling the C funcs, and uses hardcoded binds on the values and such, pretty much close to the metal. I implemented the first part of the test (single table) using the Go driver and the examples provided. I can say its from 80% to 100% slower that the D example just on the INSERT part. The select part with the Scan method is around 400% to 600% slower. If someone can help me achieve a better performance with Go it would be
HUGELY appreciated.
The D code:
https://gist.github.com/2395594Basically it does the next:
Generate 3 float arrays of N random values. (default N = 1 million, M = 1000)
// can run more benchmarks using sqlitemark.exe VALUES TABLES as long as VALUES%TABLES == 0
Create database with 1 table
Insert N values in the table
Select N values from the table and assert that they're the same.
// This is done opening and closing the database in each step.
Create a database with M tables
Insert N values evenly distributed between the M tables
Select N values from the M tables and assert equality.
// This is done opening and closing the database in each step.
Ask user for some CPU info and post the results online.
I dunno if the linux 32 bit is working correctly but it should. Windows 32 bit D program (results online) compared to my Go program on 64 bit was around 80% to 100% slower on insert and between 400% and 600% slower on select. Multiple runs yield pretty much the same results. Thats on my Core2Quad Q6600 I uploaded to more results today using the D version for comparison.
generate: 273 [ms]
SINGLE: single.db
create: 103 [ms]
insert: 12482 [ms]
select: 6349 [ms]
Thanks for your comments and insight on the matter.