Q&A

回答の並べ替え:
投稿新規に質問を投稿する

テーブル作成の制限について

山本 秀樹 山本 秀樹

2021-08-06 15:07

トライアル利用中です
実務で900カラムもあるEXCELがあります
冗長化したデータをシステムから取り出し二次加工三次加工をしているためです
恐らくそのままですとテーブルの制限に引っかかると思います
1テーブルあたりのカラム数の制限はいくつでしょうか
制限を超える場合はテーブルを分けて1:1のユニオンイメージで定義するのでしょうか
よろしくお願いいたします

Yexiongmao Yexiongmao
こんにちは。

検証しないで回答してしまって申し訳ありませんでした。
MySQLのtextフィールドは可変長で、別のメモリ領域を使うため、本体は数十バイト程度と思い込んでいました。
検証のため、簡単なテーブルを作ってみたところ、文字列カラム+整数カラムで900カラムの場合、文字列カラム22個までOKでした。
テーブルを分けてキーフィールドでリンクするのは可能ですが、テーブルを分割するのにユースケースを含めいろいろ工夫が必要になりそうですね。
山本 秀樹 山本 秀樹
エラー
やはり制限にかかるようです
190カラム目安に分割するしかありませんか?
山本 秀樹 山本 秀樹
ご回答ありがとうございます。
試してみます
Yexiongmao Yexiongmao
メダルベストアンサー
こんにちは。

MySQLは テーブル当たり最大4096カラム
テーブルの内部表現の最大行サイズは 65,535 バイト

なので、900カラムはおそらく制限には掛からないと思います。
試しにテーブルを作成して、サンプルデータをEXCELから(csvデータにして)取り込んで見たらいかがでしょうか?

テーブルの作成は以下のようにすれば、割と簡単にできます。
EXCELのカラム名を縦横変換して別シートのA列にコピーし、カラム名として使えないものが無いか確認して、B列にデータ型(整数、文字列、日付など)を入力し、1行目に行を挿入してテーブル名を入力し、csvファイルで保管します。
テーブル管理画面の「+新規テーブル」の右のボタンを押して、テーブル定義したcsvファイルを指定すればOKです。