Mongodb 最短入門(1)EC2にインストール&起動&いきなり数万件入れてみた の続き
Mongodb 最短入門(2)数万件いれて探してみた の続き
APIができましたので、次はもっともっと大量にしてみます。
さすがにt2.microは無理なのでm3.mediumに。
三輪車→自転車になりました。
やっぱりたくさんいれると遅いので、indexを貼ってみます。
ここまではお気軽DBとしても、最低限かな。ファイルを検索するのだってインデックス構築しますから。
もう一度。
開発段階で便利なことを。
全部いれなおすとき。
sudo service mongod stop
止まりましたか?
MysqlのinnoDBみたいですが、どんどんジャーナリングファイルが大きくなる性質らしく。データ消しても/var/lib/mongo 以下でなんかが大きくなるらしいです。
けっこうビッグデータいれちゃってるので、開発時は毎回クリーンな状態がいいですよね。
**サクッ、ッターン!**でやりなおしますよ。
(よいこは真似しちゃいけません)
sudo rm -rf /var/lib/mongo/*
/var/lib/mongo/ 以下のファイルを消します。ディレクトリは置いておきます。
おもむろに起動
sudo service mongod start
空だった /var/lib/mongo/ は初期化されている。
コレクション単位で消す(よいこはこちら)
db.honyarara.remove({});
さいなら。
本題。mongo たんには index がある。
(もう一度データをいれる、もしくは消していない前提)
全部にはる。探さないものはないとき。
db.honyarara.createIndex( { "$**": "text" } )
テキスト型と数字くらいはわけれるとき。
- 普通のindex
db.honyarara.createIndex( { "カラム名": 1 } )
値は
1
昇順-1
降順
- テキスト型(言語であるとき)
db.honyarara.createIndex( { "カラム名": "text" ,"カラム名2": "text" ,.... } )
全部にはることもできれば、指定したものにはることもできる
テキストインデックスについてはこちらです↓
https://docs.mongodb.org/manual/core/index-text/#create-text-index
さあ、大体の場合は速くなったはず。時間はかかるけど、はっといたほうがいいです。
まだ遅い時
これ以上の複雑なクエリやチューニングがいる場合は、もはやmongodbを使わないことをおすすめする。
やっぱりやめるとき。
- 上記手順ではじめからやり直す
- indexだけ削除する(よいこはこちら)
現在のindexと名前を確認
db.honyarara.getIndexes()
"name" の欄を確認したら、指定して削除
db.tracks.dropIndex( インデックス名 )