Merge pull request #680 from rittneje/improve-faq-in-memory-shared-cache
improve FAQ re: in-memory databases
This commit is contained in:
commit
070b17a2fd
10
README.md
10
README.md
|
@ -456,15 +456,19 @@ For an example see [shaxbee/go-spatialite](https://github.com/shaxbee/go-spatial
|
||||||
|
|
||||||
Why is it racy if I use a `sql.Open("sqlite3", ":memory:")` database?
|
Why is it racy if I use a `sql.Open("sqlite3", ":memory:")` database?
|
||||||
|
|
||||||
Each connection to :memory: opens a brand new in-memory sql database, so if
|
Each connection to `":memory:"` opens a brand new in-memory sql database, so if
|
||||||
the stdlib's sql engine happens to open another connection and you've only
|
the stdlib's sql engine happens to open another connection and you've only
|
||||||
specified ":memory:", that connection will see a brand new database. A
|
specified `":memory:"`, that connection will see a brand new database. A
|
||||||
workaround is to use "file::memory:?mode=memory&cache=shared". Every
|
workaround is to use `"file::memory:?cache=shared"` (or `"file:foobar?mode=memory&cache=shared"`). Every
|
||||||
connection to this string will point to the same in-memory database.
|
connection to this string will point to the same in-memory database.
|
||||||
|
|
||||||
|
Note that if the last database connection in the pool closes, the in-memory database is deleted. Make sure the [max idle connection limit](https://golang.org/pkg/database/sql/#DB.SetMaxIdleConns) is > 0, and the [connection lifetime](https://golang.org/pkg/database/sql/#DB.SetConnMaxLifetime) is infinite.
|
||||||
|
|
||||||
For more information see
|
For more information see
|
||||||
* [#204](https://github.com/mattn/go-sqlite3/issues/204)
|
* [#204](https://github.com/mattn/go-sqlite3/issues/204)
|
||||||
* [#511](https://github.com/mattn/go-sqlite3/issues/511)
|
* [#511](https://github.com/mattn/go-sqlite3/issues/511)
|
||||||
|
* https://www.sqlite.org/sharedcache.html#shared_cache_and_in_memory_databases
|
||||||
|
* https://www.sqlite.org/inmemorydb.html#sharedmemdb
|
||||||
|
|
||||||
- Reading from database with large amount of goroutines fails on OSX.
|
- Reading from database with large amount of goroutines fails on OSX.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue