はい、MyISAMに切り替えることができます。しかし、それは必ずしも良い考えではありません:
- MyISAMはトランザクションをサポートしていません
- MyISAMテーブルには多くの場合
REPAIR
が必要です クラッシュ後
InnoDBテーブルは、1行あたり8KB以上を処理できます。どうやらあなたは十数以上のTEXT/BLOB列を持っていることによって問題に遭遇しましたか?行の主要部分には、最大767バイトの列が格納されます。残りは別のブロックに入れられます。
1つのROW_FORMAT
だと思います すべての大きな列を別のブロックに配置し、それを指すために20バイトだけを残します。
幅の広い行への別のアプローチは、「垂直分割」を行うことです。つまり、一致するPRIMARY KEY
を使用して別のテーブルを作成します そしていくつかの大きな柱。人口がまばらな列をそのようなテーブルに移動してから、そのテーブルの行数を減らし、LEFT JOIN
を使用すると特に便利です。 データをフェッチします。また、SELECT
を行う必要がほとんどない列がある場合も 、それらは移動するのに適した候補です-JOIN
はありません これらの列が必要ない場合に必要です。