sql >> データベース >  >> RDS >> Mysql

Mysqlの行サイズの変更制限が大きすぎます

    serverfault で質問がありました

    この記事をご覧ください。 これは、MySQLの行サイズについて多くのことを説明しています。 TEXTまたはBLOBフィールドを使用する場合でも、ページ内の各フィールドの最初の768バイトがインラインで格納されるため、行サイズが8K(InnoDBの制限)を超える可能性があることに注意してください。

    これを修正する最も簡単な方法は、バラクーダファイル形式を使用することです。 InnoDBを使用します。これは基本的に、最初の768バイトを格納するのではなく、テキストデータへの20バイトのポインタを格納するだけで、問題を完全に取り除きます。

    OPで機能した方法は次のとおりです。

    1. my.cnfに以下を追加します [mysqld]の下のファイル セクション。

      innodb_file_per_table=1
      innodb_file_format = Barracuda
      
    2. ALTER 使用するテーブルROW_FORMAT=COMPRESSED

      ALTER TABLE nombre_tabla
          ENGINE=InnoDB
          ROW_FORMAT=COMPRESSED 
          KEY_BLOCK_SIZE=8;
      

    上記でも問題が解決しない可能性があります。これは既知の(そして検証された)バグ です。 InnoDBを使用 エンジン、そして今のところ一時的な修正は MyISAMにフォールバックすることです 一時的なストレージとしてのエンジン。したがって、my.cnfで ファイル:

    internal_tmp_disk_storage_engine=MyISAM
    


    1. MariaDBサーバー10.0.33が利用可能になりました

    2. SQL Server 2016:ビューデザイナー

    3. MySQL:別のフィールドに基づいてシーケンス列を追加します

    4. jQueryリモートメソッドの使用を検証して、ユーザー名がすでに存在するかどうかを確認します