mysql:10860
From: SAKAI Kei <SAKAI Kei <sak@xxxxxxxxxx>>
Date: Mon, 31 Jan 2005 19:00:14 +0900
Subject: [mysql 10860] Re: auto_incrementでご質問
坂井です > テストで9万件のレコードに対して42秒も時間が掛かってしまった為、質問 > 致しました。 ALTER TABLE はテーブル定義を変更する文で、すべて全件みるもの だと思っていたので、RENAME オプションでは違った、ということが 私には逆に驚きでした。 で、時間をかけずに auto_increment値を変更する方法、 下品なやり方(?)ですけど、 > alter table test auto_increment = 110000; のかわりに、 INSERT INTO test (id) VALUES (109999); DELETE FROM test WHERE id = 109999; で、次は 110000から入ると思います:-) ただし、この後 次のレコードを INSERT する前に mysqld を再起動すると InnoDB の場合は、次は「現在の最大値+1」 になってしまいますので注意。 (DBMagazine 2004/02号の松信氏の連載記事参照) 以上 On Mon, 31 Jan 2005 18:12:42 +0900 umemoto <umemoto@xxxxxxxxxx> wrote: > 梅本です。 > > なるほど、その可能性は確かに考えられますね。 > ちなみに次回からのauto_increment値をセットしたい場合、ALTER TABLEの > auto_increment以外には方法がないという認識でいるのですが。。。 > 合ってますよね。 > > テストで9万件のレコードに対して42秒も時間が掛かってしまった為、質問 > 致しました。 > > >中村@東京です。 > > > >> ALTER TABLEのauto_incrementで > >> alter table test auto_increment = 110000;といった具合にすると以下の > >> ような結果が得られる。 > >> > >> Query OK, 5 rows affected > >> Records: 5 Duplicates: 0 Warnings: 0 > >> > >> これで、6件目からはidは110000からのスタートになるかと思います。が、 > >> 5 rows affected(影響範囲5)これは、レコードを上から順に総なめで見て > >> るのだと思うのですが、上から順に見る必要など果たしているのだろうか? > > > >「PRIMARY KEY (`id`)」だから重複してないかの確認に一票。 > ////////////////////////////////////////////////// > 〒106-6118 > 東京都港区六本木6-10-1 六本木ヒルズ森タワー > ワイノット株式会社 > 技術部 梅本 勇 > e-mail:umemoto@xxxxxxxxxx > tel:03-4523-1089 > fax:03-4523-1023 > ////////////////////////////////////////////////// >
10854 2005-01-31 10:14 [umemoto <umemoto@xxx] auto_incrementでご質問 10855 2005-01-31 17:08 ┗["Mitsutoshi Nakamura] 10856 2005-01-31 18:12 ┗[umemoto <umemoto@xxx] 10857 2005-01-31 18:33 ┣[とみたまさひろ <tomm] 10858 2005-01-31 18:50 ┃┗[umemoto <umemoto@xxx] -> 10860 2005-01-31 19:00 ┗[SAKAI Kei <sak@xxxxx]