![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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ランキング
-
インデックスを張るべき項目に...
-
SQL Server Management Studio...
-
GREATESTで NULLをスルーする方...
-
SELECT文で、指定カラム以外の...
-
MYSQLで全てのカラムから検索す...
-
INDIRECT関数の代替方法は?
-
一部のカラムでdistinctし全て...
-
DBの定義のサイズを大きくし過...
-
mysqlでdate型のカラムに今日か...
-
mysqlで50音順にorder byしたい。
-
BULK INSERT時のNull許容について
-
JDBCドライバがない?
-
SQLServerでNULLを挿入したいです
-
正規表現で置換
-
Accessの「IIF」に相当するSQL...
-
スペースによる絞り込み検索をS...
-
whereで全てを検索する方法
-
SQLでカラムを追加し、条件に合...
-
UNIONする際、片方テーブルしか...
-
'PRIMARY KEY'と'UNIQUE()'の違...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユニーク制約とユニークインデ...
-
オートインクリメントについて
-
MySQLのKey属性「MUL」について
-
複数カラム検索で、LIKE "%検索...
-
SQL Server Management Studio...
-
大量の項目を対象に効率的に検...
-
インデックスについて
-
UPDATEつてインデックス貼って...
-
インデックス作成について
-
MySQLのインデックスについて
-
1000件以下の場合はカラム数に...
-
MySqlでのデータソートについて
-
文字検索 (LIKE)を使った場合
-
テーブル設計について。
-
複合インデックスの設定に関して
-
検索エンジン検索結果から削除...
-
インデックスを張るべき項目に...
-
INDIRECT関数の代替方法は?
-
DBの定義のサイズを大きくし過...
-
SELECT文で、指定カラム以外の...
おすすめ情報