• 締切済み
  • 暇なときにでも

大量データ取り込みによる問題

現在、LinuxにMySQL4.0で大量データを取り込んでいます。今後、テーブル数は1500近くになる予定です。1つのテーブルは100~200Mほどで、全体でおそらく15~20ギガになる予定です。 そこで質問ですが、テーブルがここまで多いと問題ありますでしょうか? また、最近、MySQLへのログインにかかる時間が非常に遅くなりました。 データ量と何か関係あるのでしょうか?

共感・応援の気持ちを伝えよう!

  • MySQL
  • 回答数2
  • 閲覧数86
  • ありがとう数0

みんなの回答

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

MySQLに限らずちょっと負荷の高すぎる構成だと おもいますね。 1500のテーブルが独自性をたもちつつ有機的な つながりをもっているとも考えられないので、 分散化するなどの方策が必要だと思います。 もっと効率的なテーブル配置にして データ容量を減らす方向性を模索する段階では?

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • 12m24
  • ベストアンサー率23% (193/817)

 データ量は関係なく、とにかくシステムの状態が問題になります。極端ですが、質問のような大量のデータの取り出しにシリアル通信を使っていたら当然遅いわけで、どこかにいわゆるボトルネックがあるのだと思います。  あと、データベースの最適化とか、いろいろ考えられる対策はあります。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • MySQLの大量データインポートを速くするには

    山田と申します。 現在自宅PC上のMySQL5.1にWikipediaのSQLダンプデータをインポートしようとしているのですが、 データが大量なせいかどうしても時間がかかってしまっています。 多少ウェブ上で調べた中から、ダンプデータのテーブル定義からuniqueを外したり、InnoDBをMyISAMに変えたりしたのですが思った程効果が実感できませんでした。 そこで、以下の点についてご存知の方がいらっしゃいましたら教えて頂けないでしょうか? ・MySQLのチューニングに関する情報 ・大量データをインポートする際の注意点やコツ ・大量データのインポートに関するベンチマーク等のデータが見れるページ よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLのデータの互換性は?

    Windows上で作成したMySQLのデータを、Linux上のMySQLにデータを移行して使用することは出来るのでしょうか? 出来る場合、どのようにするのでしょうか? 試しにWindowsでdumpコマンドでバックアップファイルをLinuxでrestoreしてみたのですが、テーブルは出来ていませんでした。(やり方が悪かったのかもしれません) WindowsXPはMySQL4.0.20、LinuxはFedoraCore3・MySQL3.23.58を使用しています。 どちらもphpMyAdminを使用しています。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 巨大なデータに対する検索に適したデータベース

    巨大なデータベースに対する検索をなるべく高速にこなせるフリーのデータベースを探しています(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を教えていただけないでしょうか。

  • MySQLの容量を増やしたい

    さくらサーバー 専用サーバ アドバンスド NEC i110Rb-1h Core2Duo OS Red Hat Enterprise Linux 5 Server メモリ 1G HDD 250G MySQLバージョン: 5.0.45 開発言語 PHP5 上記のサーバーで運用しています。 一週間、サーバーが異常に重く、全く開かない状態でした。 phpMyAdminを調べていた所、InooDB free 300000kB(約ですが) となっている事に気づきました。 そこで、不要なデータを削除し、free 450000kB となるぐらいまで にしたところ、ウソの様に、サクサク動くようになりました。 しかし、データは毎日大量に蓄積されて行きます。 近いうちに、free領域がなくなっていく事は目に見えています。 そこで質問です。 MySqlの使用状況は、 データベースA テーブル数は約70 データサイズ 17M データベースB テーブル数は約120 データサイズ 231M たったこれだけのデータです。 1.Mysqlでのデータ保存の領域はどれくらいでしょうか?   調べる方法はありますか?   OSなどにもよるが、テラサイズまで格納出来るとあちこちで   見かけますが、なぜこんなデータ量で固まってしまうので   しょうか?   とにかく、至急領域を増やす必要があります。   方法をお教えいただけないでしょうか? 2.リファレンスから引用   もし全ての(非システムの)テーブルを InnoDB テーブルとして   作成したければ、サーバ オプション ファイルの [mysqld]    セクションにライン default-storage-engine=innodb を   追加するだけでよいです   この様に記載されていますが、テーブルの約90%は   トランザクションが必要なので、InooDBです。   いっその事、全てのテーブルをInnoDBにしてしまえばと思うの   ですが、その事により生じるデメリットは?   また、上記の設定により、MyISAMは作ってはいけなくなると   いう事でしょうか? 将来的に、G単位のデータを格納する事になります。 この程度のデータ量で、サイトが重くなるようでは どうしようもありません。 現在、MySqlの設定はデフォルトですので、何もいじってません。 もちろん、今後チューニングも必要かと思いますが、まだ知識がなく 恐くていじる事が出来ていません。 何とぞ、ご教示お願い致します。

    • ベストアンサー
    • MySQL
  • WindowsからLinuxへの移行

    Windows版MySQLのデータをLinux版へと移行したいのですが、エクスポートをせずに、データのコピー等で出来ないのでしょうか? テーブルをSQLやCSVでエクスポートしようとするとデータ量が多いのと、サーバのスペックが低いため非常に時間がかかってしまいます。 なので、データ「table.frm」「table.MYD」「table.MYI」を単純にコピーしてやりたいのですが、うまくいきません。 なにか上手い方法はないでしょうか? #MySQLのバージョンは同じです。

  • (レンタルサーバ)大量データで500エラー

    初めて投稿させていただきます。 現在、勉強もかねてロリポップというレンタルサーバーで PHPのプログラムを作成しております。 プログラムの概要は、以下の通りです。 1)CSVファイルを[テーブルA(MySQL)]へinsert。 2)[テーブルA(MySQL)]から対象レコードをselectし、 処理1を実行した結果を[テーブルB]へinsert。 3)[テーブルA]と[テーブルB]と結合したテーブルから対象レコードをselectし、処理2を実行した結果を[テーブルC]へinsert。 上記プログラムを実行する際に、以下の事象が発生し、困っております。 ・CSVファイルの内容が300行だと正常に処理が終了する。 ・CSVファイルの内容が400行だと、「500 internal server error」が発生する。 実行環境は以下の通りです。 ・ロリポップサーバーのロリポプラン (ディスク容量:50GB) 「500 internal server error」について検索すると「パーミッションの設定」が関係するようなので 推奨値である「600」やデフォルトである「644」の両方で実行いたしましたが どちらも同じ結果でした。 また、try~catchで各処理をかこっていますが、PHPのエラーは出ていません。 CSVファイルの行数を300から400に増やすと起こるので データ量が関係するのではないか、と考えております。 プログラムのエラー(不具合)か、否かを確認する方法はありますでしょうか? また、データ量が問題の場合、どのような回避策がありますでしょうか? CSVファイルを300行までしか読み込まないような制約を付けることも考えましたが プログラム的に可能なロジックがあれば、ご教示いただきたく思います。 ロリポップサーバのプランを上げることも考えましたが それでも、ファイルの読み込みには上限があるでのはないかと考えております。 何卒、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • MySQL大量のデータから特定の項目を抽出する構造

    MySQLで10,000を超えるデータが有り、その中から最大6件まで指定して表示するプログラムを作る予定です。 6つの枠が有りそれぞれの枠にデータを選んでセットしていく形式です。 この場合データのテーブル側に枠にセットされていることを示すフラグのようなものを付けてそれをもとに抽出するか、別のテーブルにデータIDの記入された data1~data6 のカラムを作ってそれをもとに抽出するかどちらが速度・構造的に良いのでしょうか?

    • ベストアンサー
    • MySQL
  • 大量のバイナリーデータ(約50GB)をRDB:OracleまたはDB2で扱うには?

    スキャナーで取込んだ大量のバイナリーデータ(約50GB)をRDB:Oracleまたは、DB2で1個のテーブルとして扱いたいのですが、普通のテキスト文字、数字とは異なり、LOB(Large Object)と呼ばれるデータ構造ですので、列を分けて専用のtable spaceに置く?予定ですが、過去にこういった膨大なバイナリデータを扱った事例は、存在するのでしょうか? その際の容量制限や、パフォーマンスは? どうなんでしょうか? 今後、ますます増える傾向にあると思いますが、いかがでしょうか?

  • アクセスで大量のデータを扱う際の注意は?

    アクセスである機器での計測データの管理、集計などの作業を行いたいと考えています。 計測データのレコード数が多いので、それらを効率良く管理するためのノウハウを知りたいと思い質問させて頂きました。 実際にレコード数がどの程度かというと、計測間隔が30秒に1回、計測機器が最大90点まで接続可能であることから、 一日最大259,200レコード、さらに時間と機器名称のデータが各レコードに追加されます。(各計測値は小数点以下第2位までの小数) これを1年積み重ねると94,608,000レコードという膨大な数量になってしまいます。 さらにこれを何年、というかたちで積み重ねてゆくことを考えて、これらの大量のデータを効率よく管理、または集計に利用するために 必要な知識、テーブルの作り方やファイル管理の方法などをご教授頂けたらと思います。 拙い知識の中で私が現在検討している内容としては、 (1)1年半前までのデータはテーブルに残しておきたい (直近データの処理レスポンスを重視したい/前年同月での比較等を行いたいため) (2)1年半以上前のデータはどこか別の所へバックアップし、必要な時に読み込んでくる様にしたい (1年半以上前のデータは集計に利用する頻度が稀であるため) (3)アクセスで行う集計はごく簡単なもの (ある期間を指定したらそのデータを抽出し、グループ毎に和算をして、それをグラフ化する。 一度の集計で利用するのは、最大でも全体の中の1,000レコード程。多くの場合は120レコード程しか使用しない) (4)基本的にアクセスで行う集計にはレスポンスの速さが要求される。(特に直近データ) 基本的にデータは大量なのですが処理自体はとても簡単なものなのです。 大量のデータを保存している影響を処理スピードに与えないようなシステムを作るにはどんな所に注意をしたらよろしいのでしょうか? よろしくお願いいたします。

  • 大量データ送信を制限する方法 OCN

    先日OCN様より 【OCNからの重要なお知らせ】大量データ送信による利用停止および契約解除のご連絡 といった文面の書類が届きました。 内容は大量データ送信が確認できたので、1日30GB以上の通信を今後も続けるようなら契約を解除するといった内容です。 大量データ送信には心当たりがあるので(ウェブカメラ・Skypeでの長電話・ネットゲームなど)制限する事には構わないのですが、自分がどの程度の通信量をしてるのかわからないまま契約解除となると困ります。 そこで、自分の通信量を確認出来るツールなどは無いでしょうか? また、通信量を制限するツール(1日30GB使用したら自動で通信を遮断など)などは無いでしょうか?