2017-11-23 1 views
2

私は1つのテーブルをmysql dbに持ち、そのサイズは約300 + gbです。それを照会することは、現在、パフォーマンスオーバーヘッドになっています。300gb +データをmysqlに保存する方法

私は、このようなサイズのデータ​​をすばやく保存してクエリすることについての洞察を求めています。

アドバイスは非常に高いです。

答えて

2

表は正規化されていますか?そうでない場合は、最初の手順の1つは、1つの大きな表をBCNF形式に達するまで正規化された複数の表に分割できるかどうかを確認することです。

テーブルを正規化することの利点は、多くの不必要な列を通過する必要がないため、速度を上げるのに役立つはるかに小さなテーブルをクエリすることにあります。

正規化には多くの書き方がありますので、詳しくは詳しく説明しません。

http://searchsqlserver.techtarget.com/definition/normalization

http://searchoracle.techtarget.com/answer/What-is-the-Boyce-Codd-normal-form

https://en.wikipedia.org/wiki/Database_normalization

+0

私はDBの専門家ではないよ、私は私はあなたからより多くの洞察を得ることができるようにいくつかの情報を共有したいと思います。現在、私は800の属性といくつかの膨大な数の行をテーブルに持っています。 1つの列には14K個の固有の値があります。このような場合に正規化が役立つか、テーブル構造の変更について考えるべきです。 –

+0

これは本当にデータに依存します。正規化の要点の要点は、絶対に必要なデータだけを含む新しいテーブル(必要に応じて、互いに参照するプライマリ/外部キーを使用)を作成することです。これは、通常、テーブルの依存関係(部分的な依存関係、推移的な依存関係など)を判断し、それらを独自のテーブルに格納することによって行われます。 私はあなたのビジネス要件やデータを知らないので、私はこれらの依存関係が何であるかはっきりとは言えません。そのサイズの単一のテーブルでは、それが正しく作成されている可能性は非常に低いようです。 – Steven

関連する問題