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

utf8からutf8mb4に変更すると、データベースの速度が低下するのはなぜですか?

    utfは実際にはutfmb3であり、1文字あたり最大3バイトを使用できますが、utfmb4は1文字あたり4バイトを使用できます。 VARCHAR列の場合、MySQLは必要な数のバイトのみを格納するため(ROW_FORMAT =FIXEDを使用してMyISAMテーブルを作成した場合を除く)、これは通常大きな違いはありません。

    ただし、クエリの実行中に、MySQLは可変長行をサポートしないMEMORYストレージエンジンに一時テーブルを作成する場合があります。これらの一時テーブルには最大サイズがあり、そのサイズを超えると、一時テーブルはMyISAM / InnoDBのテーブルに変換されます(MySQLのバージョンによって異なります)。ステータス変数Created_tmp_disk_tables これが発生するたびに増分されます。その場合は、max_heap_table_sizeの値を増やすのに役立つかどうかを確認してください および tmp_table_size

    または、可変長行をサポートする新しいストレージエンジンが内部一時テーブルに使用されるMySQL8.0にアップグレードします。




    1. AndroidアプリはどのようにしてMySQLにアクセスできますか?

    2. CTEを使用してSQLServerクエリ出力の欠落日を入力する

    3. 暗号化されたデータでLIKE検索を実行するにはどうすればよいですか?

    4. APEX_ZIPの例