mysql:15608
From: HIRATSUKA Sadao <HIRATSUKA Sadao <hiratsuka.sadao@xxxxxxxxxx>>
Date: Tue, 02 Aug 2011 20:30:42 +0900
Subject: [mysql 15608] Re: Indexをつけるとと、update のwhere 句マッチしない [Ver.4.1.23]
平塚です。 On Tue, 2 Aug 2011 17:35:16 +0900 野副 勝己 <nozoe@xxxxxxxxxx> wrote: > バグ情報が何処にあるか解らなかった(バグ情報から検索する事が出来なかった > …) > ので、確信が持てずにいたのですが、平塚さんのメールでバグに該当している > と言う事に確信が持てましたので、これで延命処置を図りたいと思います。 > > ありがとうございました。 どういたしまして! > P.S. 解せないのは、SELECT 文ではIndex が有効に働いているにも関わらず > 何故、UPDATE 文ではIndex 検索で空振りするのだろうかと言うことです。 > #UPDATE コマンドの応答速度からすると、いきなり該当無しで返ってきてい > #る気がする… インデックススキャンはしているのですが、 誤った文字列で探しているのだそうです。 > 実行計画って、SELECT文のWHERE句とUPDATE 文のWHERE句で違うのでしょうか? > 不思議です… 大雑把にしか説明できないのですが、 SELECT文は sql/sql_select.cc UPDATE文は sql/sql_update.cc で実行されていて、ロジックが入口から異なっています。 いわゆる実行計画というものは sql_select.cc の JOIN::optimize というところで作られています。 sql_update.cc では処理がもう少し簡略化されています。 今回の不具合は sql_update.cc からストレージエンジンに検索条件を 渡すまでの間のどこかで、検索条件を壊してしまったことによるもの だと思います。 -- 平塚貞夫 hiratsuka.sadao@xxxxxxxxxx
15605 2011-08-02 13:26 [野副 勝己 <nozoe@xx] Indexをつけるとと、update のwhere 句マッチしない [Ver.4.1.23] 15606 2011-08-02 16:30 ┗[HIRATSUKA Sadao <hir] 15607 2011-08-02 17:35 ┗[野副 勝己 <nozoe@xx] -> 15608 2011-08-02 20:30 ┗[HIRATSUKA Sadao <hir] 15609 2011-08-03 10:46 ┗[野副 勝己 <nozoe@xx]