質問
- MySQLのデータサイズについて
-
本文:
お世話になっております。
MySQLにおいて「長さによってはこのフィールドを修正できなくなる場合もあります」というメッセージが出ています。
このメッセージはどういう意味でしょうか?
今、ここには、配列をシリアライズ化して入れています。
MEDIUMTEXTに設定しているので、最長16,777,215 (2の24乗 - 1) バイトまで入れることが可能だと思っています。
現在入っているデータは、テキストエディタに書きだして保存してみると40KBでした。
もっと小さな値しか入っていない他のレコードの同じフィールドでは、このメッセージが出ていません。
データが大きくなりすぎているために出ているメッセージだとは思うのですが、
MEDIUMTEXTの容量にはほど遠いのにどうしてなのでしょうか?
今後、このデータは壊れる可能性があるのでしょうか?
どうぞよろしくお願いいたします - 緊急度:通常投稿者:keisanさん投稿時間:2016/04/21 08:35
回答 No.4633
-
本文:
検索した範囲では、「mysqlのメッセージ」ではなく、「phpmyadminのメッセージ」かと思いますが...
- 投稿者:ジョバンニさん 投稿時間:2016/04/21 10:57
質問者からのコメント
ジョバンニさん。
ご指摘ありがとうございます。
その通り、「phpmyadmin」の中に入って、データの表示をさせたときの
右側にメッセージが表示されています。
回答 No.4634
-
本文:
>その通り、「phpmyadmin」の中に入って、データの表示をさせたときの
>右側にメッセージが表示されています。
だから、「phpmyadminの中では編集できない」ということかと。
( 理由として考えられるのは、textareaの大きさが64KBに制限されているとか、POSTのパラメータの長さが XX bytesに制限されているとか、etc... )
> 今後、このデータは壊れる可能性があるのでしょうか?
phpmyadminで修正しようとすると、壊れるかもしれませんね。 - 投稿者:ジョバンニさん 投稿時間:2016/04/21 11:42
質問者からのコメント
ありがとうございます。
今、私の中ではphpmyadminで修正する方法しか考えられませんので、なんとかphpmyadminで処理したいと思っています。
「textareaの大きさが64KBに制限されている」というのは、MEDIUMTEXTに設定していてもダメなのでしょうか?
また、「POSTのパラメータの長さが XX bytesに制限されている」というのは、どこでされているのでしょうか?もしPHP内で制限されていたとしても、入力された後のデータをphpmyadminで見ても、関係がないと思っているのですが、、、
あまりよくわかっていない質問で申し訳ございませんが、よろしくお願いいたします。
回答 No.4635
-
本文:
例えば、post_max_sizeで、POSTサイズに制限かけることができます。
http://php.net/manual/ja/ini.core.php
POSTのサイズが、仮に10Kだとしたら、
フィールドのデータが40Kあった場合に、
・phpmyadminで表示するのは可能
・phpmyadminで編集するのは無理
にならないでしょうか?
可能性の話なので、phpmyadminがどういう理由でそのメッセージを出してるかは知りませんけどね。
上記のような感じだと、
データをphpmyadminで表示する程度では、壊れないと思います。
壊れるとしたら、phpmyadminのバグでしょうね。
■
>今、私の中ではphpmyadminで修正する方法しか考えられませんので、なんとかphpmyadminで処理したいと思っています。
phpmyadminのエクスポート/インポート機能を使えば、理論上は可能なのでは?
- 投稿者:k-tanさん 投稿時間:2016/04/21 15:43
回答 No.4636
この回答がベストアンサーです
まあ、この辺に記述がありますが、公式の見解ではないかも。
http://www.php-editors.com/chapters/phpmyadmin2.php
The settings do not impose a limit other than visual, and a vertical scroll bar is created by the browser, should it be necessary.
Although MEDIUMTEXT, TEXT, and LONGTEXT columns can accommodate more than 32K of data, current browsers cannot always edit them with the mechanism offered by HTML: a text area. In fact, experimentation has convinced the phpMyAdmin development team to have the product display a warning message if the contents are larger than 32K, telling users that it might not be editable.
(抄訳: phpMyAdmin開発チームは、(textareaの)中身が32Kより大きい場合に、「編集できないかもしれない」という警告を出すことにした。)
For LONGTEXT fields, setting $cfg['LongtextDoubleTextarea'] to TRUE doubles the available editing space.
質問者からのコメント
ジョバンニさん、ありがとうございます。
なんと、40KBもあると警告は仕方のない事なのですね。
一応、phpMyadminで警告は出ているものの、直接編集してもエラーは出ないようです。
MEDIUMTEXTの設定も間違ってはいなそうですね。
ただ、データが壊れるかもしれないということを肝に銘じながら、触りたいと思います。
ジョバンニさん、k-tanさん
いろいろありがとうございました。