NI-Lab.

nilog:

← 前の日 2015-02-27 次の日 →
← 一年前 一年後 →
Twitter (2015-02-27)
MySQL :: MySQL 5.5 Reference Manual :: 13.1.7 ALTER TABLE Syntax http://dev.mysql.com/doc/refman/5.5/en/alter-table.html
[t] 2015-02-27 22:02:07
関連するかも情報
テーブルは ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 なので、カラムも同じ文字コードになったということでいいんだろうけど、
text 型が mediumtext 型になってしまったのはなんでなの。。。
[t] 2015-02-27 22:01:41
MySQL :: MySQL 5.5 Reference Manual :: 13.1.7 ALTER TABLE Syntax http://dev.mysql.com/doc/refman/5.5/en/alter-table.html
[t] 2015-02-27 22:02:07
MySQL :: MySQL 5.5 Reference Manual :: 11.4.3 The BLOB and TEXT Types http://dev.mysql.com/doc/refman/5.5/en/blob.html
[t] 2015-02-27 22:03:09
MySQL :: MySQL 5.5 Reference Manual :: 11.9 Using Data Types from Other Database Engines http://dev.mysql.com/doc/refman/5.5/en/other-vendor-data-types.html
[t] 2015-02-27 22:06:09
MySQL :: MySQL 5.5 Reference Manual :: 11.7 Data Type Storage Requirements http://dev.mysql.com/doc/refman/5.5/en/storage-requirements.html
[t] 2015-02-27 22:07:02
・TEXT:64KBまでの可変長文字列
・MEDIUMTEXT:約1.6MBまでの可変長文字列
・LONGTEXT:約4.3GBまでの可変長文字列

MySQLのテキスト型 | Koumei Soft 開発ログ http://blog.ks2.info/?p=462
[t] 2015-02-27 22:07:45
・TEXT[(M)] 最長65,535 (216 - 1) バイト
・MEDIUMTEXT 最長16,777,215 (224 - 1) バイト

BLOB型とTEXT型 - MySQLのデータ型 - MySQLの使い方 http://www.dbonline.jp/mysql/type/index6.html
[t] 2015-02-27 22:08:21
まあ、デカいのが入るようになったんだからいいか。。。
[t] 2015-02-27 22:08:41
基本的にテーブルとカラムはこの2つを実行すれば良し
alter table <table name> default character set utf8mb4;
alter table <table name> convert to character set utf8mb4;
[t] 2015-02-27 22:10:21
と思ったらエラー出た(´・ω・`)

varchar(255)とかのカラムがダメなのかもしれない。
[t] 2015-02-27 22:13:15
mysql> alter table hogetbl convert to character set utf8mb4;
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
[t] 2015-02-27 22:13:25
varchar(256)にしておけばよかったのかも。
[t] 2015-02-27 22:14:24
@y_aki インデックス貼っていない varchar(255) はエラー出ないのでそうかもしれないです。。
[t] 2015-02-27 22:18:29
@y_aki おぉ・・・ありがとうございます。
[t] 2015-02-27 22:23:39
MySQL(InnoDB) で "Index column size too large. The maximum column size is 767 bytes." いわれるときの対策 - かみぽわーる http://blog.kamipo.net/entry/2012/11/13/102024
[t] 2015-02-27 22:24:01
「MySQL(InnoDB)では、ひとつのカラムのキープレフィックスの最大値が767バイトという制限がある」
「MySQL 5.5.14以降だとinnodb_large_prefixというオプションが追加されてて、キープレフィックスの制限を3072バイトまで拡張できます」
[t] 2015-02-27 22:24:23
「ただし、ROW_FORMATをDYNAMICかCOMPRESSEDにする必要がある(デフォルトはCOMPACT)」
[t] 2015-02-27 22:27:49
"使用できるフィールド長は以下になります。
UTF8の場合・・・・767 ÷ 3 =255byte
UTF8MB4の場合・・767 ÷ 4 =191byte"

MySQLのPK・UNIQUEのフィールド長制限に立ち向かう http://treeapps.hatenablog.com/entry/20110508/p2
[t] 2015-02-27 22:29:11
@_HANGEDMAN_ ありがとうございます。最初の何文字かをインデックスするように指定するんですね。
[t] 2015-02-27 22:36:51
「col_name(length) 構文を利用して、カラム値の最初に部分だけを利用するインデックスを作成」

長い文字列が格納されるカラムに対してINDEXを張る場合には、プリフィックス長を指定してみる - Enjoy*Study http://blog.enjoyxstudy.com/entry/20110430/p1
[t] 2015-02-27 22:37:38
2015年02年27日のnilogをすべて表示する

- NI-Lab.
- Mastodon (@nilab@mastodon-japan.net)
- Twitter (@nilab)
- Timelog (@nilab)
- はてなブックマーク (id:nilab)

Web Services by Yahoo! JAPAN