2016-11-26 6 views
0

MyISAMストレージエンジンのMySQLには、次のスキーマの膨大な数(数十億)があります。どのようにこれをより効率的に格納するための提案(ストレージワイズ)?非常に大きなテーブルのストレージサイズを最適化する

mysql> describe options; 
+---------------+------------------+------+-----+---------+----------------+ 
| Field   | Type    | Null | Key | Default | Extra   | 
+---------------+------------------+------+-----+---------+----------------+ 
| stockid  | int(10) unsigned | NO | MUL | NULL |    | 
| strike  | float   | NO |  | NULL |    | 
| symbol  | varchar(63)  | NO |  | NULL |    | 
| last   | float   | NO |  | NULL |    | 
| chg   | float   | NO |  | NULL |    | 
| bid   | float   | NO |  | NULL |    | 
| ask   | float   | NO |  | NULL |    | 
| expirydate | varchar(63)  | YES |  | NULL |    | 
| ticker  | varchar(63)  | YES |  | NULL |    | 
| expiry  | datetime   | YES |  | NULL |    | 
| type   | varchar(63)  | YES |  | NULL |    | 
| datecaptured | datetime   | YES |  | NULL |    | 
| volume  | bigint(20)  | YES |  | NULL |    | 
| openint  | bigint(20)  | YES |  | NULL |    | 
| lastclosedate | date    | YES |  | NULL |    | 
| row_id  | int(11)   | NO | PRI | NULL | auto_increment | 
+---------------+------------------+------+-----+---------+----------------+ 
+0

'int(11)'は、おそらく 'int(2)'より容量がありません。これが本当に「何十億ドル」であれば、それは問題になるでしょう。 – user2864740

+0

最後の/ chg/bid/askの列は市場価格に関連する値のように見えますが、 'FLOAT'は不正確な近似値でない限り、お金がかかわる非常に危険なデータ型です。 FLOATは比較的空間効率がよい。あなたはその限界に精通していますか? –

+0

確かに、お金をINT * 100として保管する習慣はありますか?または、より良いモデルがありますか? –

答えて

1

ここで最も明白な問題は、文字列として日付を格納することであり、必要以上のスペースを使用してインデックスを作成することは実際的ではありません。また、最初の列がデフォルトのINT(11)の代わりにINT(10) UNSIGNEDという不規則な形式に設定されている理由を調べることも必要です。

実際にコンパクトなテーブルが必要な場合は、ARCHIVE engineタイプで試してみるとよいでしょう。追加専用のテーブルがありますが、圧縮されており、トリミングやプルーニングをすることなく大量のデータを保持できます。欠点は同様にインデックスを作成しないことですが、ここでは問題はないようです。

注:MyISAMは非常に古くて壊れやすいストレージエンジンです。そのため、MyISAMからInnoDBに移行することができます。 MyISAMにはジャーナルがないので、サーバクラッシュから簡単に回復することができず、修復を超えて簡単に破損する可能性があります。 InnoDBは大部分から跳ね返ることができますが、不可能な場合でも、読み込み専用でダンプして他の場所で使用することができます。

SHOW TABLE STATUSにストレージの問題がない場合は、気にしないでください。ハードドライブは安価で、SSDの種類も揃っています。

関連する問題