mysql:2185
From: "Y. Tsutsui" <"Y. Tsutsui" <tutui@xxxxxxxxxx>>
Date: Sat, 10 Jun 2000 17:03:06 +0900
Subject: [mysql 02185] Re: Delete と Insert がひどく遅い
堤井です。 MINOHATA Norio wrote: > > ところで、 > > > delete from testtable where id = 000000000001; > > ではなくて、 > > delete from testtable where id = '000000000001'; > > ではないんでしょうか。 > > これこそが遅さの原因のような気もします。 > > クォートをつけていない 000000000001 を数値1と解釈 > --> idは文字列型で、文字列と数値の比較なのでインデクスが使えないと判断 > --> 1レコードずつidを数値に変換して比較 > > と考えると、delete,updateが非常に遅くてinsertが速いのは理解できます。 > ただ、この推測で行くと、selectが速いのが理解できないのですが、 > ひょっとしてselectの時はクォートを付けておられませんか? 多分当たりです。私が追試した時はクオートしないと引っかからなかったので 勝手につけてしまいました。で update で外してみたら例のSPARCでは mysql> update testtable set regist=1000000000 where id=000001000012; Query OK, 1 row affected (17.77 sec) Rows matched: 1 Changed: 1 Warnings: 0 となりました。 > それとも、select〜where のオプティマイザが {delete|update}〜where > よりも賢くて、うまく型変換をやってくれているのかもしれません。 この結果からすると 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がひどく遅い