基本的なつかい方 †DBのオープンからクローズまで †db = SQLite3::Database.new("data.db")
db.execute("select * from test_table") {|row|
# 行ごとの処理
}
db.close
SQLにパラメータを埋め込む †?をプレースホルダーとして使用できる。パラメータはexecuteの第2引数に指定する。 db.execute("select * from test_table where id = ?", id)
複数クエリーの同時発行 †execute_batchを使用する。SQLはセミコロンで区切る。 db.execute_batch("sql1; sql2; ...")
SQLite3::BusyExceptionを回避する †db.busy_timeout(2000) # タイムアウトまでの時間(ms)を指定する 最適化 †JOIN †SQLiteのJOIN(表結合)はとても遅い。これは結合は全てNested Loopで行われることが原因のようだ。 |