mysql:13699
From: "Tetsuro IKEDA" <"Tetsuro IKEDA" <ikdttr@xxxxxxxxxx>>
Date: Mon, 29 Jan 2007 10:33:47 +0900
Subject: [mysql 13699] Re: UNIQUEの最大バイト数の変更
えーっと、たびたび池田です^^; あまり深く考えずに投稿してしまったのですが、 部分インデックスでuniqueだとインデックス長内でuniqueにならないと いけなくなるのでダメですね。 失礼しました。。 07/01/29 に Tetsuro IKEDA<ikdttr@xxxxxxxxxx> さんは書きました: > こんにちは。池田@住商情報システムです。 > > 代わりに部分インデックスを使ってみてはどうでしょう? > http://dev.mysql.com/doc/refman/4.1/ja/create-index.html > > 例えば、先頭100文字だけとか。大抵の場合はこれで十分かと。 > > [test] > create table t1 (c1 int primary key, c2 varchar(2000), unique > index idx (c2(200))) default charset utf8 engine = innodb; > Query OK, 0 rows affected (0.01 sec) > > [test] > show create table t1\G > *************************** 1. row *************************** > Table: t1 > Create Table: CREATE TABLE `t1` ( > `c1` int(11) NOT NULL, > `c2` varchar(2000) default NULL, > PRIMARY KEY (`c1`), > UNIQUE KEY `idx` (`c2`(200)) > ) ENGINE=InnoDB DEFAULT CHARSET=utf8 > 1 row in set (0.00 sec) > > > 07/01/29 に Hiroki Tamakoshi<hiroki.tamakoshi@xxxxxxxxxx> さんは書きました: > > こんにちは、株式会社ビービットの玉越です。 > > > > インデックスの最大バイト数はMyISAMで1000, InnoDBで767バイトと決められて > > いるようですが、これ以上にするにはコンパイルし直すしかないのでしょうか。 > > > > http://dev.mysql.com/doc/refman/5.0/en/create-index.html > > > > > > URLを入力するカラムを作成する必要があります。 > > URLは一意ですから、UNIQUEにする必要がありますが、定められたバイト数以上 > > に長いURLが入らず困っています。 > > (767バイト以上のURLもたまにあります) > > > > > > 回避する方法はあるでしょうか? > > > > > > # これを書いていて今なんとなく思い浮かんだのですが・・・ > > # URLを500バイトずつ区切ってURL1, URL2, URL3・・・ などとしてそれぞれの > > テーブルを作成し、そのIDでUNIQUEインデックスを作るという感じでしょうか? > > > > url_table_1: > > ( id1 INT PRIMARY KEY AUTO_INCREMENT, > > URL1 VARCHAR(500) UNIQUE ) > > > > url_table_2: > > ( id2 INT PRIMARY KEY AUTO_INCREMENT, > > URL2 VARCHAR(500) UNIQUE ) > > > > url_table_3: > > ( id3 INT PRIMARY KEY AUTO_INCREMENT, > > URL3 VARCHAR(500) UNIQUE ) > > > > url_table: > > ( id INT PRIMARY KEY AUTO_INCREMENT, > > id1 INT, > > id2 INT, > > id3 INT, > > CONSTRAINT UNIQUE (id1, id2, id3) ) > > > > > > -- > > 株式会社ビービット 玉越 大輝 > > ユーザビリティ コンサルタント > > beBit,Inc. Tamakoshi Hiroki hiroki.tamakoshi@xxxxxxxxxx > > -------------------------------------------------------- > > 〒105-0001 東京都港区虎ノ門1-18-1 虎ノ門10森ビル7F > > TEL: 03-3509-7602 / FAX: 03-3509-7605 > > URL: http://www.bebit.co.jp/ > > -------------------------------------------------------- > > ◆◆◆お知らせ◆◆◆ > > ・ビービット新刊書籍 『ユーザ中心ウェブサイト戦略』発売 > > http://www.bebit.co.jp/news/2006/book.html > > http://www.amazon.co.jp/gp/product/4797333529/ > > > > > > >
13697 2007-01-29 10:13 [Hiroki Tamakoshi <hi] UNIQUEの最大バイト数の変更 13698 2007-01-29 10:23 ┗["Tetsuro IKEDA" <ikd] -> 13699 2007-01-29 10:33 ┗["Tetsuro IKEDA" <ikd]