![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
MySQLで、UPDATE tablename SET hoge = ? WHERE id = ? (どっちの?もランダムな数値)で、UPDATEのベンチマークをとったのですが、idにインデックスがついている状態だと高速に処理できました。500プロセスで1000回実行しましたが1000QPSでした。
ちなみに100万レコード入ってます。カラムは20程度でintとvarcharしかありません。
単純にUPDATEもレコード検索するからインデックス使うということなんですかね???
どなたか詳しい方この現象について詳しく教えて頂けないでしょうか。
よろしくおねがいします。
No.1ベストアンサー
- 回答日時:
WHERE句で書いている項目にインデックスがあれば、SELECTは確実に早くなります。
例外はあるけど。UPDATE,DELETEも早くなるでしょう。
但しINSERTは遅くなります。UPDATE,DELETEも遅くなる場合もあります。
一長一短です。
No.3
- 回答日時:
検索条件に該当するインデックスが定義されていなければ、データが100万件あったら
100万件すべてを検索条件と一致しているかいちいち比較してしまうということです。
インデックスの中は昇順になるように並べられて(管理されて)いるので、
検索条件にマッチするところを見つけるのも、範囲外と判定して検索を終了するのも
余計な検索(比較)をしない分効率が良いわけです。
No.2
- 回答日時:
> 単純にUPDATEもレコード検索するからインデックス使うということなんですかね???
インデックスは、その為に存在します。
WHERE句で指定したものにインデックスが指定されていて、
かつ、DBMSがその方が速いと判断すればそれが使われます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL UPDATE my_items SET item_name '赤い,甘い,ケーキ' WHERE id 1 2023/01/03 09:52
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- PHP php エラー 2 2022/10/23 16:43
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle SQL update方法 2 2022/06/22 14:07
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブル名が可変の場合のクエ...
-
#1062 - '0' は索引 'PRIMARY' ...
-
SQLでカラムを追加し、条件に合...
-
SQLについて教えて下さい。 SEL...
-
SQLです。こんな感じですか?あ...
-
書籍の内容はまともでしょうか?
-
①①②③③ではなくて、①①③②③の流れ...
-
mysql>status で
-
php テーブルを作れない
-
エラー 1068 (42000): 複数の主...
-
BGMを教えてほしいです!
-
「重複を間引いた数」をcountし...
-
データベースの接続に失敗して...
-
SQLです!!教えてください。
-
私の考えていることは ・mySQL ...
-
select *, `人口(男)`AND`人口(...
-
下記の問合せを行うクエリを、P...
-
日本の全市区町村を人口密度が...
-
PhpMyAdminで作成して実行せよ...
-
addcslashesの使い方について教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユニーク制約とユニークインデ...
-
MySQLのKey属性「MUL」について
-
SQL Server Management Studio...
-
複数カラム検索で、LIKE "%検索...
-
オートインクリメントについて
-
インデックスについて
-
データベースの設計について教...
-
削除ふらぐ
-
大量の項目を対象に効率的に検...
-
INDIRECT関数の代替方法は?
-
DBの定義のサイズを大きくし過...
-
テーブルの列数を調べたい
-
一部のカラムでdistinctし全て...
-
SELECT文で、指定カラム以外の...
-
LIKEの右側にカラムを指定でき...
-
SQLServerでNULLを挿入したいです
-
SQLです!!教えてください。
-
GREATESTで NULLをスルーする方...
-
now()かCURRENT_TIMESTAMPか
-
UNIONする際、片方テーブルしか...
おすすめ情報