18
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Mongodb 最短入門(3)数百万件でも速くしてみた

Last updated at Posted at 2016-01-15

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を使わないことをおすすめする。

やっぱりやめるとき。

  1. 上記手順ではじめからやり直す
  2. indexだけ削除する(よいこはこちら)

現在のindexと名前を確認

db.honyarara.getIndexes()

"name" の欄を確認したら、指定して削除

db.tracks.dropIndex( インデックス名 )

18
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?