MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL圧縮を有効にする


圧縮テーブルを作成する前に、innodb_file_per_table構成オプションが有効になっていて、innodb_file_formatがBarracudaに設定されていることを確認してください。これらのパラメータは、MySQL構成ファイルmy.cnfまたはmy.iniにあるか、MySQLサーバーをシャットダウンせずにSETステートメントを使用して見つけることができます。

テーブルの圧縮を有効にするには、ROW_FORMAT =COMPRESSED、KEY_BLOCK_SIZE、またはその両方の句をCREATETABLEまたはALTERTABLEステートメントで使用できます。

圧縮されたテーブルを作成するためのステートメントを見てみましょう-

クエリ

SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_file_format=Barracuda;
CREATE TABLE t1
(c1 INT PRIMARY KEY)
ROW_FORMAT=COMPRESSED
KEY_BLOCK_SIZE=8;

ここで

  • ROW_FORMAT =COMPRESSEDが指定されている場合、KEY_BLOCK_SIZEは省略できます。

  • デフォルトのページサイズ値が使用され、これはinnodb_page_size値の半分に相当します。

  • KEY_BLOCK_SIZEが指定されている場合、ROW_FORMAT=COMPRESSEDは省略できます。

  • 圧縮は自動的に有効になります。

  • KEY_BLOCK_SIZE属性の最適な値を決定するには、ユーザーはこの句の値が異なる同じテーブルの複数のコピーを作成する必要があります。

  • これが完了したら、結果の.ibdファイルのサイズを測定し、それぞれが現実的なワークロードでどの程度うまく機能するかを判断します。

  • KEY_BLOCK_SIZE値はヒントと見なされます。

  • innodb_strict_mode =ONの場合、無効なKEY_BLOCK_SIZE値が指定されていると、エラーが返されます。

  • InnoDBデータページのデフォルトの非圧縮サイズは16KBと見なされます。オプション値の組み合わせに応じて、MySQLはテーブルの.ibdファイルに1KB、2KB、4KB、8KB、または16KBのページサイズを使用します。

  • 実際の圧縮アルゴリズムは、KEY_BLOCK_SIZE値の影響を受けません。

  • クラスタ化インデックスを含むテーブルのすべてのインデックスは、CREATETABLEまたはALTERTABLEステートメントで指定された同じページサイズを使用して圧縮されます。 ROW_FORMATやKEY_BLOCK_SIZEなどのテーブル属性は、InnoDBテーブルのCREATEINDEX構文の一部とは見なされません。したがって、指定されている場合は無視されます。


  1. MySQLテーブルに重複しない値を挿入します

    重複しない値のみを挿入できるようにするには、UNIQUE制約を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable832(    FirstName varchar(100),    LastName varchar(100),    UNIQUE(FirstName,LastName) ); Query OK, 0 rows affected (0.87 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into

  2. MySQLテーブルのフィールド数を取得しますか?

    MySQLのフィールド数を表示するには、COUNT(*)を使用します。以下は構文です- select COUNT(*) AS anyAliasName from INFORMATION_SCHEMA.COLUMNS where table_name = yourTableName AND TABLE_SCHEMA = yourDatabaseName; まずテーブルを作成しましょう- mysql> create table DemoTable794 ( ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, ClientName