私はmysqlベースを使用して、さまざまなテストの結果を大量のデータ(数億の記録)に保存しています。
私はベースの唯一のユーザーなので、同時実行の問題はありません。「avg」、「std」などの単純な数学関数も使用したい
このようなタスクに最適なエンジンは何だと思いますか?
私は現在 InnoDB を使用していますが、少し重いようです。
よろしく
ギヨーム
私はmysqlベースを使用して、さまざまなテストの結果を大量のデータ(数億の記録)に保存しています。
私はベースの唯一のユーザーなので、同時実行の問題はありません。「avg」、「std」などの単純な数学関数も使用したい
このようなタスクに最適なエンジンは何だと思いますか?
私は現在 InnoDB を使用していますが、少し重いようです。
よろしく
ギヨーム
InnoDB テーブルを使用すると、トランザクション サポート、ロールバックなどのオーバーヘッドが発生します。トランザクションにこのサポートが必要ない場合は、MyISam テーブルを使用する必要があります。これにはトランザクション サポートがなく、ルックアップなどが高速になる可能性があるためです。彼らは InnoDB を高速化するために多くの作業を行ってきましたが、対処すべきオーバーヘッドが常に存在します。切り替える前に、このトピックについてさらに読むことをお勧めします。
メモリテーブルを提案するのと同じくらい大きなテーブルを使用すると、パフォーマンスとストレージに問題が発生する可能性があります。これらの種類のテーブルについては、MyISam 構造または innodb_flush_log_at_trx_commit を 0 に設定した InnoDB テーブルをお勧めします (これにより、制御が呼び出し元に返される前にトランザクションがディスクにコミットされないモードに切り替わります)。
Tokudb はより良い代替手段です。
より多くの正当性については、これらのリンクを参照してください: 挿入の Tokudb ベンチマークおよび Tokudb と InnoDB の比較
Tokudb では、選択操作を大幅に改善できる複数のクラスタリング インデックスが許可されていることを考慮してください。また、tokudb は優れたパフォーマンスを提供するフラクタル インデックスを使用します。
innodb クラスター化インデックスは、何らかの方法でクエリのパフォーマンスを向上させると思いますか?
http://dev.mysql.com/doc/refman/5.0/en/innodb-index-types.html
さらに詳しい情報:
mysql select を書き換えて時間を短縮し、tmp をディスクに書き込む
そうでない場合は、myisam を使用してください。