2016-09-23 14 views
-4

私は2つのテーブルを持っており、両方のテーブルに100万レコードを取得しています。毎晩レコードを挿入するためにcronジョブを使用しています。最初のテーブルではまずテーブルを切り捨てて、 2番目のテーブルでは、主キーに従ってレコードを更新して挿入しています。私はデータベースとしてmysqlを使用しています。私の問題は毎日このタスクを行う必要がありますが、私はすべてのデータを挿入することができません。この問題の可能な解決策は何でしょうかmysqlに100万レコードを挿入する

+0

いくつかのディテールを持つソリューションに向かってインチすることができます。そのようなことは上には見られません。 – Drew

+4

"すべてのデータを挿入できません"なぜですか? – ytbryan

答えて

0

重要なのは、アクションとチェックはMySQLがデータを転記するときなど、自動コミット、インデックス、のように、実行したい

https://dev.mysql.com/doc/refman/5.7/en/optimizing-innodb-bulk-data-loading.html

これを行わない場合、MySQLはすべてのレコードを追加した後、多くの作業を行い、それがアップ追加するので処理が進行して処理が遅くなり、最終的にインポートされ、1日で完了しない場合があります。

-2

MySqlを使用する必要がある場合:最初のテーブルでは、インデックスを無効にし、インデックスを有効にするよりも挿入を行います。これはより速く動作します。

また、MongoDbは高速になり、Redisは非常に高速です。

+0

RailsユーザがMySQLからデータベースを切り替える場合、最初の考えはPostgreSQLでなければなりません。しかし、これはむしろ早すぎるアドバイスのようです。 –

+0

私の主なアドバイスは、インデックスを無効にすることでした。それは良いものだったし、それを私に投票させることは冷静ではなかった。 PostgreSQLはMySqlほど高速ではありませんが、Redisはそうです。あなたのニーズに逆らって、素晴らしい解決策になるかもしれません。特に一時的なデータ(この場合のような)。 –

+0

私はなぜあなたがダウン投票されたのか、誰がダウン投票したのか分かりません。 OPがどんな問題を抱えているのかはっきりしていないと思います...それはパフォーマンスの問題かもしれませんが、現時点では本当に品質の低い質問です(私は*投票しました) –

関連する問題