質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.35%

  • Android

    5159questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Firebase

    197questions

    Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

  • NoSQL

    30questions

    NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。

firebase データベース 検索速度

受付中

回答 2

投稿 2017/11/21 19:45 ・編集 2017/11/21 23:49

  • 評価
  • クリップ 1
  • VIEW 112

kazu0000

score 2

firebase を利用し
複数のandroid で IDを用いて 名前検索できるシステムを開発しています

1000名ほど登録する予定です

そこで質問する予定なのですが

IDを入力し 名前を検索する のには どのぐらいの時間(ミリ秒)かかるか

教えていただきたいです 予想でいいので よろしくお願いします

すいません補足します

更新は 1日1回ですので
使用の際は
オフラインでの使用と考えています
その場合も時間がかかるでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

無料で開始
無料枠があるので試してみるとイイですよ。

ただ、条件として記述のある内容であれば、ネットワークのレスポンスが左右するので、あまり有意なものにはならないですけど。

投稿 2017/11/21 21:24

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/21 23:49

    すいません補足します

    更新は 1日1回ですので
    使用の際は
    オフラインでの使用と考えています
    その場合も時間がかかるでしょうか?

    キャンセル

  • 2017/11/22 07:24

    その前提なら firebase の Realtime Database 使う意味がないと思いますよ。。。

    キャンセル

  • 2017/11/23 21:01

    確かにリアルタイムという名前は付いていますが,Realtime Databaseの強みはそれだけではありませんよ.
    例えば,「クライアントからdbに直接アクセスするため,システム構成やソースコードがシンプルになりやすい」というのも実は大きな強みなのです.

    キャンセル

  • 2017/11/23 21:25

    オフライン前提の1日一回更新だったら、json とかで配信したほうがシンプルになると思います。

    キャンセル

  • 2017/11/23 23:03

    なるほど.どうやって配信するとお考えですか?

    キャンセル

  • 2017/11/24 00:58

    要件と仕様によると思いますよ。
    更新の時間が決まっているのであれば、クライアント側で時間を確認させて取りに行くのがシンプルじゃないですかね。

    キャンセル

  • 2017/11/24 07:47

    その場合でも,サーバ側でのDB管理と場合によっては独自にjson出力が必要ですよね.
    そのあたりはどうすべきと思います?

    キャンセル

  • 2017/11/24 08:38

    要件と仕様によると思いますよ。と書いてるんですけどねぇ。。。そもそも DB に入れるべきかどうかも検討して良い事案だと思ってます。

    今書かれている要件は、以下です。
    ・更新頻度は1日1回
    ・データは名簿的なもので'id'->'名前'で検索したい
    ・数十ミリ秒で検索したい

    構造化データを、メモリ上に展開させておくのが、パフォーマンス的には一番早くなりそうな案件です。
    常にローカルを参照させることで、オンライン/オフライン処理を別で考えなくて良いので、シンプルな設計になります。

    また、サーバ側に DB が必須かというと必須ではありません。
    json ファイルを手作業でメンテしても良いので。

    今ある要件だけだったら、Realtime Database を使う意味は無いです。

    キャンセル

  • 2017/11/24 11:14

    そこまで含めてのお話だったのですね,失礼しました.

    まず「構造化データをメモリ上に展開」については同意です.
    というか,Realtime Databaseを使用すること,とは排他関係ではないので.

    Realtime Databaseにおいては,オフライン・オンラインの考慮不要なのはご存知の通りです.

    それから,「DB に入れるべきかどうかも検討して良い」について.
    確かに従来のDBであればその感覚ですが,Realtime Databaseはその感覚を覆せる程度に容易です.
    ご存知の通りDB管理も初期設定もほぼ不要です.
    そして,手作業メンテは,エディタで編集してアップロードするか,sshログインして編集するか,などの一手間が必要です.
    Realtime Databaseであれば,ブラウザから編集するだけです.

    上記より,今ある要件だけであってもRealtime Databaseを使う意味は十分あると考えますが,いかがでしょうか.

    キャンセル

  • 2017/11/24 12:56

    私が Realtime Database は得意な分野(とがった分野)で使うべきだ。
    と考えているのに対して、
    Yatima さんは、Realtime Database は汎用的に使用しても良い技術である。
    って立場で提案しているので、平行線で同じことを言い合うことになると思います。

    Firebase は、ハマれば非常にメリットのある技術ですが、概念が既存技術と違う箇所が多く、仕様的なハマリポイントや、そもそもの仕様理解に結構学習コストがかかるイメージです。

    そのため、私は、Firebase は、初心者には注意深く勧める必要のある技術だと思っているので、そのスタンスの差が「意味がある/ない」のコメントの差だと思います。

    キャンセル

  • 2017/11/24 14:55

    確かにそれはあるでしょうね.
    学習コストに関しては,分かっている人が首尾よく指導すれば低いとは思いますが,少なくとも現状では一般には高めになりがちというのは同意です.
    いずれにせよ,立場の違いは間違いないですね.

    戯言にお付き合いいただきありがとうございます.

    キャンセル

0

すみませんが,質問がざっくりされているのでお答えもざっくりになります.
そしてそもそもいろんなやり方があり,それぞれ得手不得手あるので,一概には言えません.

インターネットが十分早く,スマホも十分な性能であることを前提として,
前方一致のみで良ければ,がっつりチューニングすれば数百msは余裕でしょうし,
多少複雑でも検索対象が変更しない前提であれば,数十msもいけるかもしれません.
あるいは変更するものでも,外部サービスとの連携で数百msはいけるかと思います.

ただ,基本的には検索は苦手です.
非常に複雑な検索をさせたいのであれば,Firebase以外のデータベースを利用したほうがいいかもしれません.

投稿 2017/11/21 22:54

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/21 23:49

    すいません補足します

    更新は 1日1回ですので
    使用の際は
    オフラインでの使用と考えています
    その場合も時間がかかるでしょうか?

    キャンセル

  • 2017/11/21 23:59

    どのくらいの速さを求めているのですか?
    オフラインであれば,もはやFirebaseよりAndroidとしてのチューニングになると思いますが.

    キャンセル

  • 2017/11/22 04:01

    数十ミリ秒を求めています

    キャンセル

  • 2017/11/22 04:02

    初心者なもので チューニングとか あまりわからないのですが 

    チューニング って何でしょうか?

    キャンセル

  • 2017/11/22 07:08

    速くなるようがんばることです.
    がんばれば数十msはいけると思います.

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.35%

関連した質問

同じタグがついた質問を見る

  • Android

    5159questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Firebase

    197questions

    Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

  • NoSQL

    30questions

    NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。