mysql:2187
From: "Y. Tsutsui" <"Y. Tsutsui" <tutui@xxxxxxxxxx>>
Date: Sat, 10 Jun 2000 18:13:36 +0900
Subject: [mysql 02187] Re: Delete と Insert がひどく遅い
堤井です。 MINOHATA Norio wrote: > もうちょっと詳しく解説すると、もし、元質問者の鈴木様が > > select * from testtable where id = 000000000001; > > のようにクォートをつけずにselectしているにも関わらず > MySQLがインデクスを使用して高速に検索してくれているのならば、 > select〜whereは、 (問答無用で000000000001を数値1と解釈する) > {delete|update}〜whereよりも融通がきくみたいだなと考えたわけです。 大抵のケースで mysql は文字と数値を柔軟に変換しながら比較してくれます。 で、この場合も 000000000001 は数値 1 として使われていますが、 インデックスはそうなっていないため、select の場合ひっかからない、 一方 update はインデックスで見つからなくても、先の自動変換で うまく比較してくれてるようです。 > うーーん、鈴木様もselectの時はクォートをつけておられたのですかね。 > いずれにせよ、文字列の両端にクォートをつければうまく(=インデクスを > 使用して高速に)処理されるということで間違いないようですね。 > > # ウチでは、数値だろうと文字列だろうと > # 一律にクォートを付けて処理することがほとんどです。 なんとなく数値の場合はつけない方が速い気がします。 -- プレック研究所システム情報室 堤井泰志 tutui@xxxxxxxxxx
2178 2000-06-09 20:20 [hironobus <hironobus] Delete と Insert がひどく遅い 2179 2000-06-10 01:36 ┣["Y. Tsutsui" <tutui@] 2180 2000-06-10 03:55 ┣[Yasuhiro Hayase <hay] 2184 2000-06-10 16:21 ┃┗["MINOHATA Norio" <mi] 2185 2000-06-10 17:03 ┃ ┗["Y. Tsutsui" <tutui@] 2186 2000-06-10 17:52 ┃ ┗["MINOHATA Norio" <mi] -> 2187 2000-06-10 18:13 ┃ ┗["Y. Tsutsui" <tutui@] 2191 2000-06-11 23:31 ┃ ┗[とみたまさひろ <tomm] 2192 2000-06-12 19:32 ┃ ┣[<takeshi@xxxxxxxxxx>] 2193 2000-06-13 09:57 ┃ ┗[<takeshi@xxxxxxxxxx>] 2181 2000-06-10 10:37 ┣[<takeshi@xxxxxxxxxx>] 2182 2000-06-10 12:21 ┃┗["Y. Tsutsui" <tutui@] 2183 2000-06-10 14:07 ┃ ┗[<takeshi@xxxxxxxxxx>] 2189 2000-06-10 21:22 ┗[Hironobu SUZUKI <hir] Re: Delete とUPDATEがひどく遅い