質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

1841閲覧

MySQLのInnoDBのファイルフォーマットを変更したはずなのに、CREATE TABLEするとROW_FORMATがCompactになる

ti1050

総合スコア14

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2018/09/14 15:28

環境

  • MySQL 5.6.41
  • CentOS 7

質問内容

MySQLのInnoDBのファイルフォーマットについて勉強しています。
my.cnfに以下の設定を追加して、sudo systemctl restartを実行してMySQLサーバーを再起動したのですが、そのあとにCREATE DATABASEおよびCREATE TABLEしても、作られるテーブルのROW_FORMATCompactのままです。

ROW_FORMATCompactRedundantならファイルフォーマットはAntelope
CompressedDynamicならファイルフォーマットはBarracudaとリファレンスマニュアルに書いてありました。
https://dev.mysql.com/doc/refman/5.6/ja/innodb-file-format-identifying.html

my.cnfの設定を変えてもCREATE TABLEで作成されるテーブルのファイルフォーマットは変わらないのでしょうか?

そもそも概念が正しく把握できていないかもしれません。
MySQLに詳しい方、知恵を貸していただけると嬉しいです。
よろしくお願いいたします。

my.cnfの内容

[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES character-set-server=utf8 # 以下の3つを追記した innodb_file_per_table = 1 innodb_file_format = Barracuda innodb_file_format_max = Barracuda [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [client] default-character-set=utf8

my.cnf変更後にしたこと

TEXT

1$ mysql -uroot 2 3mysql> CREATE DATABASE test_database; 4Query OK, 1 row affected (0.00 sec) 5 6mysql> USE test_database; 7Database changed 8 9mysql> CREATE TABLE `test_table` (id int NOT NULL AUTO_INCREMENT, content varchar(255) NOT NULL, PRIMARY KEY (id)); 10Query OK, 0 rows affected (0.01 sec) 11 12-- テーブルのステータスを確認 13mysql> SHOW TABLE STATUS\G 14*************************** 1. row *************************** 15 Name: test_table 16 Engine: InnoDB 17 Version: 10 18 Row_format: Compact # ← Compactになっている 19 Rows: 0 20 Avg_row_length: 0 21 Data_length: 16384 22Max_data_length: 0 23 Index_length: 0 24 Data_free: 0 25 Auto_increment: 1 26 Create_time: 2018-09-14 23:58:08 27 Update_time: NULL 28 Check_time: NULL 29 Collation: utf8_general_ci 30 Checksum: NULL 31 Create_options: 32 Comment: 331 row in set (0.00 sec)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ROW_FORMATは指定する必要があります。(デフォルトはCompactです。)
テーブル作成時に指定するか、ALTERで変更して下さい。

以下参考
MySQL InnoDBファイルフォーマットBarracudaへの設定方法

投稿2018/09/14 23:30

sazi

総合スコア25186

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ti1050

2018/09/15 06:49

ご回答いただきありがとうございます。 > ROW_FORMATは指定する必要があります。(デフォルトはCompactです。) そうなんですね! my.cnfを変更すれば文字エンコーディングのように、デフォルトの動作が変わるのかと思っていました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問