基本のキ

sqlite3が遅い、と、ボヤいた。この調子だと、一週間走らせておいても終わらない。ググった。ここを見つけた。

【SQLite】で限界を極めろ!

そうでした。
uniqueに設計したcodeに、uniqueの宣言をしてなかった。
indexも作ってなかった。余りにもお粗末。
基本中の基本、基本のキでしたね。以前使ったDB設計ではスキーマを考えた時からindexはここに、ってやってたのに。

そう言えば、と思う。Ruby on Railsを実戦投入したのは、これが初めて。入門編みたいなところをうろちょろしていたから、ちょっと込み入ったSQLは全く書いてなかった。
やっぱり思う。商用のコードを書いて初めて、細かいところの理解が深まるし、この設計はダメだとか、ここは最初からこうしようとか、見えてくる。やっぱり経験か。ちょっと情けないけど、かなり実戦勘をつかんだから、よしとしよう。

migrationを一つ増やし、add_indexして、フィールドもunique指定してから、走らせ直した。これまで、トロトロと、数秒かかりでリレーション先をfetchし、なんだか、一件アップロードするのに数秒かかっていたのが、コンソール画面が見えないような猛スピードでかっ飛んでって、残りの3千件のデータが、一服して戻ってくる間にアップロード完了してた。

すっごぉい!なんだか、プロの仕事みた〜い。うっわ〜!

めでたし、めでたし。Windows版のsqlite3開発関係の方、カラんで、本当に申し訳ありませんでした。
m(_ _)m

ということは、Mac版のsqlite3は、自動でindex作ってくれているっていうことなんだろうか。改めて、有り難さを実感してしまった。

とにかくこれで、先へ進める。

コメントを残す