すべてのプロダクト
Search
ドキュメントセンター

:「行サイズが大きすぎる」エラーの原因と解決策

最終更新日:Aug 02, 2024

問題点の説明

データ管理 (DMS) コンソールでApsaraDB RDS for MySQLインスタンスまたはECSホストのセルフマネージド型データベースやオンプレミスデータベースなどのセルフマネージド型MySQLデータベースのSQL文を実行すると、次のエラーメッセージが返されます。

行サイズが大きすぎます。 使用されるテーブルタイプの最大行サイズは、BLOBではなく65535です。 これにはストレージオーバーヘッドが含まれます。マニュアルを確認してください。 一部の列をTEXTまたはBLOB

に変更する必要があります

原因

MySQLデータベースにテーブルを作成する場合、フィールドの長さは65,535バイトを超えることはできません。 InnoDBストレージエンジンがより多くのバイトをサポートしているかどうかに関係なく、フィールド長の上限は変更できません。 詳細については、「テーブル列数と行サイズの制限」をご参照ください。

解決策

この問題を修正するには、次のいずれかの方法を使用します。

  • フィールドのタイプを変更します。 フィールドのタイプは、VARCHARやCHARからTEXTやBLOBなど、サイズの大きいフィールドからサイズの小さいフィールドに変更できます。

    1. DMSコンソール にログインします。

    2. 左側のナビゲーションウィンドウで、[データベースインスタンス] セクションで変更するデータベースインスタンスをクリックします。

    3. [SQLコンソール] タブで、ターゲットテーブルを右クリックし、[テーブル構造の編集] を選択します。

    4. [テーブルの編集] ページで、[列情報] タブをクリックし、必要に応じて列の種類を変更します。

  • フィールドの長さを短くします。 ビジネス要件に基づいて、VARCHARタイプまたはCHARタイプのフィールドの長さを減らすことができます。

    1. DMSコンソール にログインします。

    2. 左側のナビゲーションウィンドウで、[データベースインスタンス] セクションで変更するデータベースインスタンスをクリックします。

    3. [SQLコンソール] タブで、ターゲットテーブルを右クリックし、[テーブル構造の編集] を選択します。

    4. [テーブルの編集] ページで、[列情報] タブをクリックし、必要に応じて列の長さを減らします。

適用範囲

  • DMS

  • ApsaraDB RDS