• ベストアンサー

データベース側で100万とか1000万のデータを作成できますか

社員IDが1から10まであって、その他のフィールドは名前、住所、電話番号など書いてあるとします。10人分のデータの中から名前が近藤さんを探しなさいといった時、すぐに検索結果は返ってくると思います。 仮に社員が100万人いて検索結果を得ようとしたらかなりの時間がかかると思います。数10人なら自力でデータを用意できるのですが、100万とかいう数になると自力では無理があります。そこでデータベース側でランダムにデータをつくるということは可能なんでしょうか?もしくはプログラムの方でなんらかの制御をしてデータを100万件データベースにいれていくというような処理しかないんでしょうか? やりたいことは検索時間が10件と100万件だとどのくらい違うだろうということをやりたいと思っております。よろしくお願いします!!

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

たとえばこんなやり方・・・ CREATE TABLE `a` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,`data` VARCHAR( 20 ) NOT NULL); CREATE TABLE `b` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,`data` VARCHAR( 20 ) NOT NULL); idとdataというフィールドをもった二つのテーブルを作ります。 INSERT INTO `a` SET `id`=NULL; データを一つ作ります。 INSERT INTO `b` SELECT NULL,'' FROM `a`; INSERT INTO `a` SELECT NULL,'' FROM `b`; という2行のSQLを処理を20回繰り返します。 これで100万件のデータができます。 (テーブルbはもういらないので消してよいです) さらに UPDATE `a` SET `data`=MD5(RAND()); とすればdataにランダムな文字列がセットされます

その他の回答 (3)

回答No.3

   わたしは、約15万人のデータベース(26項目)を自作してします。  エクセル約50MBを4シート×4文書に分けているので、100万 人なら約330MB、25文書あれば収容できます。   >検索時間が10件と100万件だとどのくらい違う<  検索のための準備作業は変らず、読込み時間が違うだけです。  USBにまとめて一括検索すれば、数分で抽出できるでしょう。    さらに、あらかじめソートされていれば、全データ必要ありません。  エクセルよりアクセスの方が大量処理できるのですが、部分的な抽出 については、むしろエクセルのほうが扱いやすいのではないでしょうか。  

回答No.2

#1です。 誤字がありました。 「ユーザ側で利用した」 ↓ 「ユーザ側で用意した」 ついでに、B-TREEインデクスについて、簡単に触れておきます。RDBMSにより、多少の違いがありますが、考え方は似たようなものです。 主なRDBMSでは、行やインデクスの情報を、ページといった単位で管理しています。ページはI/Oの最小単位なので、ブロックと考えていいでしょう。 この1ページで、何件のインデクスキー値を管理できるかは、 管理可能なキー数=(ページ長-ページの制御情報)/(キー長+行の格納アドレス) といった計算式になります。 ページ長=4096バイト、ページ内の制御情報=96バイト、キー長=10バイト、行の格納アドレス=6バイトとすると、250個のキー値が管理可能です。 インデクスの分割を配慮して、125個のキー/ページとすると、 100万件を管理する最下位ページ数は、1000000/125=8000ページ。 2段目は、8000/125=16ページ、 最上位が1ページ で、インデクスは3段になります。 100万件の中から=条件で1件の検索なら、データ部のI/Oが1回、インデクスのI/Oが3回になります。

回答No.1

RDBMSは、何でしょうか? ユーザ側で利用した多量データを格納する場合、RDBMS側で用意しているローダ(通常のINSERTの処理でなく、ログを吐き出さなかったり、インデクス更新を後で一括で行ったりすることで、性能向上させている)を使う場合が多いです。 テスト用に100万件程度のデータを作るなら、何らかのプログラミング言語でツールを作ってもいいし、ストアドプロシジャを実装しているRDBMSなら、ストアドプロシジャで容易に作れます。 >検索時間が10件と100万件だとどのくらい違うだろうということをやりたい 数万件といった母体データから数件を検索するなら、一般的にインデクスを付けます。B-TREE構造が一般的に知られており、母体件数に対して、対数の関係になるので、データ量が増えても、極端に性能劣化することはありません。 http://biz.rivus.jp/words/btree_index.html

関連するQ&A

  • アクセスで、データベースを作成

    アクセスで、データベースを作成しています。 『検索するフィールド』 『検索する文字列』 『検索』 検索するフィールドには、列の項目がコンボボックスにより作成してあり検索したいフィールドを選択し検索する文字列を入力すると検索結果を表形式で表示できるようにしたいのですがうまくいきません。 上記3つは、F管理台帳内に作成されていて管理台帳は表形式で作成されています。 単独のあいまい検索はできたのですが。あ

  • Excelで作成したデータベースについて

    Excelでデータベースを作り、検索フォームなどを用意して検索結果をWeb上に表示する等したいのですが、どのように作っていけばいいのかがわかりません。 手順や方法を紹介してくださる方がいれば教えてください、お願いします。 質問が具体性に欠けていてすみません。

  • データベースから削除したデータをGoogleで検索表示されないようにするには?

    飲食店のデータベースサイトに私が過去に経営していた店舗のデータがあり、 Googleで店舗名で検索した結果、 「○○(データベースサイトの名前) □□店(店舗名) のレビュー」というタイトルが出てきます。 現在は閉店しましたが、個人名や住所が掲載されておりGoogleで検索されたくないので、データベースサイトの管理者の方に店舗データの削除をしてきただきました。 インターネットで調べたところ、Googleで検索表示されないようにするには、 ページにタグを埋め込んだり、404が返るように設定しなければいけないようですが、 基本的にはページを削除してそれをGoogleがクロールすれば、自動的に検索表示されなくなると聞きました。 しかし、データベースサイトに関してはどうなのでしょうか? ・「データベースからのデータの削除」がGoogleに対する「ページの削除」と言えるのでしょうか? ・データベースサイトで店舗名で検索すると、「検索結果0件」と表示されるようになりましたが、 これを『「検索結果0件」というページが存在している』とGoogleの巡回機能は認識し、Googleの検索結果表示から除外しないということはあるのでしょうか? ・サイト管理者側は、特定のキーワードで検索して表示されるページに対して、タグの埋め込みや404設定をおこなえるのでしょうか?(htmlファイルが存在しない場合) 以上、わかりにくい文章で申し訳ありませんが、よろしくお願いいたします。 ちなみに、「ウェブページ削除リクエストツール」によりキャッシュは削除しました。

  • データベース間のデータ移動

    現在様々なデータベースを使用していて、プログラムか何かの方法で、 OracleからMySql等ほかのデータベースにデータを移動することは可能でしょうか。 SELECT A INTO Bではできなかったと思います。 100件くらいの名前データだけなので、いちいちCSVに変換して再ロードするのが面倒です。

  • Accessでデータベースを作っています。

    Accessでデータベースを作っています。 先日、こちらで質問をさせていただいて、クエリで複数のフィールドを対象にデータを検索する ことはクリアできました。 ありがとうございました。 ご指導に基づき、4つのフィールド(仮にA,B,C,D)について、クエリの抽出条件に  Like "*" & [Aを入力] & "*"  Like "*" & [Bを入力] & "*" ・・・ とそれぞれ設定してパラメータ入力を求め、4つの条件すべて、または一部のみ設定して検索し、 正しい検索結果が得られました。 今度は、検索用のフォームを作成し、フォームで入力した条件をクエリに送って、同じ結果を 得たいと思うのですが、以下の方法では正しい検索結果が出てきません。 ・フォームに検索用のボックスをA~Dまで4つ作成(ひとつはコンボボックス、あとはテキスト) ・クエリの抽出条件に、それぞれ以下を入力     Like "*" & [Forms]![Q_form(作成したフォームの名前)]!                       [A(それぞれの検索ボックスの名前)] & "*" ・フォームに「クエリの実行」のコマンドボタンを配置 パラメータで入力する代わりにフォームを使いたい、というものなのですが(パラメータ入力 よりも、コンボボックスを使って値を選ぶ方が検索する人には使いやすいかと思って)、どうしたら うまいこといきますでしょうか。。 教えてください。

  • アクセス2003でのデータベース作成で

    WinXP上でaccess2003のデータベースを作成していますが、どうしても分からないのでどなたかご教授いただけないでしょうか? Aというテーブルには商品名と値段をそれぞれのフィールドに入力してあり(フィールドA1,A2と仮定。主キー用は別) Bというテーブルの3つのフィールド(仮にフィールドB1,B2,B3)はテーブルAの商品名(A1)をルックアップしている状態なのですが、テーブルBのもうひとつのフィールド(フィールドB4と仮定)にフィールドB1,B2,B3でルックアップしている商品の値段(A2)の合計額が表示されるようにするにはどうしたらいいのでしょうか? 買った本にも載ってませんし、ネットで検索してもこれかな?っていう解説が見つからなかったので漠然とでもいいのでこうしたらいいとかリンク先などを教えていただければ幸いです

  • 2つのデータベースのデータを1つに合わせてのソート方法

    よろしくお願いします。 Accessで作成されたデータベースが2つあり、それぞれ同じ項目名で構成されているテーブルが1つずつあります。(データの変更前と変更後というように2つのデータベースに分けています。全体で約50万件です。) 検索用のフォームを作成し、条件に合致するデータを両方のデータベースから検索してフォーム上のリストボックスに表示していきたいのですが、その表示順番を2つのデータを合わせて日付順に並び変えたいのです。このような処理が可能なのかどうかも不明なのですが、可能であればその方法を教えていただけないでしょうか。

  • EXCEL2000のVBAで*.dbf形式データからデータを抽出するには(ODBCとの連携について)

    こんにちは 「データベースなら任せて!!」 という方におたずねします。 最近、EXCEL2000のVBA講習をやることになりました。 VBAの基本的な説明はできるのですが、困ったことに外部データとのやり取りについては うまく説明できません。 いろいろ調べてますが、よくわかりません。 やりたいことは、 複数のデータベースファイル(*.dbf)があります、 それをEXCEL上でフォームパネルを用意しデータを抽出・検索などできるように 制御したいのですが、 まず、 疑問(1)ODBCやSQLをVBAを使って制御しデータベースファイル(*.dbf)を扱うには。 疑問(2)データベースファイル(*.dbf)を扱えたとしてその後、どのように抽出や検索をさせるのか。 おたすけください。

  • 巨大なデータに対する検索に適したデータベース

    巨大なデータベースに対する検索をなるべく高速にこなせるフリーのデータベースを探しています(windows)。 これまでmySQL5.5を使って比較的簡単なデータ検索を行ってきました。 データ構造自体は簡単で例えば下記のように name[char] / weight_gram[int] / country [char] 数桁のintと十数文字の文字列情報をもつエントリーで構成されるテーブルとします。 ただ問題がデータの量で、ある事情で10-100億件のエントリー(rows)があり、そのせいで単純なクエリー、例えば select * from my_big_table where weight in (51000,60000,82000) のような簡単な検索にも非常に時間がかかります。 パーティショニング、インデクスを試し、速度は向上しましたがまだ時間がかかりすぎてしまいます(数分)。 最近になってnoSQLのことを知り。その多くは大量のデータ処理に適していると聞き、簡単な比較なども見ましたがどれが最適なのかいまいちよく分かりません。 特に大半がunix/linux環境用でwindowsで利用可能なものは限られているようです。 そこで -Windows 7/vista 64 bitで動く -フリーで利用できる -大量のデータをもつテーブルに対するquery(検索)が高速 -C++ API (mysql connectorのようなもの)がある の条件に合うnoSQLを教えていただけないでしょうか。

  • サイト内検索データベースをまるごとダウンロードしたい。

    サイト内の検索データベースをまるごとダウンロードしたい。検索結果は1データ1ページですので1件づつ保存するのでは手間暇が掛かりすぎてしまいます。 サイト内検索データベース検索結果後のURLアドレスもそのままです。ダウロードソフトでデータベースまるごとダウンロード(html)したい。連番も試しましたが結果がでません。 フリー・シェアウェア・市販ソフトを「数十ソフト」試しましたが上手く結果がでません。 どなたか上記目的に対応できるソフトが有りましたら教えて下さい。