Go database/sqlチュートリアルの概要の日本語意訳になります。
概要
Go言語でデータベースにアクセスするには、sql.DB
を使います。この型を使用することで、ステートメントやトランザクションを生成し、クエリを実行し、結果を取得することができます。
最初に知っておくべきこととして、sql.DB
はデータベース接続ではないということです。
また特定のデータベース製品でいうところの、「データベース」や「スキーマ」に対応するものでもありません。sql.DB
は抽象インターフェースであり、ローカルファイル・ネットワーク経由のアクセス・メモリ内・プロセス内といった様々な種類の可能性があるデータベースの存在になります。
sql.DB
はいくつかの重要なタスクを裏側で実行します。
- ドライバ経由にて、実際のデータベースへの接続のオープンとクローズを実行
- 必要に応じて、前述の通り様々なデータベースのコネクションプールの管理
sql.DB
による抽象化は、実際のデータストアへの同時アクセスの管理方法を心配しないで済むように設計されています。コネクションをタスク実行に使用すると使用中フラグがつけられ、もはや使用されなくなると利用可能プールへと戻されます。
この結果の一つとして、もしコネクションをプールへ戻すことに失敗した場合、sql.SQL
がたくさんの接続をオープンし過ぎて、リソース不足(コネクション超過、ファイルハンドラ超過、ネットワークポート不足)に陥る可能性があります。
これについては後ほど詳しく説明します。
sql.DB
を作成後、それを使いデータベースへクエリを発行したり、ステートメントやトランザクションを作成したりすることができます。
次章: ドライバのインポート
comments powered by Disqus