0

データベースに関するbtree定理に関する記事をたくさん読んでいます..常に当惑することがあります。
次のように説明されているテーブルがあると仮定します:
table userinfo:
(主キーとしての user_id、文字列としてのユーザー名、文字列としてのパスワード)
いくつかの記事で説明されているように、user_id はテーブルuserinfoのインデックスとして作成され、効率的なパフォーマンスが得られます。 user_idのインデックスでレコードを選択した場合..しかし、usernameで選択した場合、行を 1 つずつカンパリングすると言われます..... MYSQLでこれを試してみましたが、予想ほど遅くはありません.... なぜですか? mysqlはこの選択を どのように処理しますか?? ありがとう

4

1 に答える 1

0

WHERE 句がユーザー名 (インデックス化されていない) で比較する場合、おそらく完全なテーブル スキャンが実行されます。ただし、テーブル内の行数が少ない場合は、これでも高速になる可能性があります。最近のコンピューターは非常に高速であり、DB は効率的なテーブル スキャンのためにデータを整理することに長けています。

于 2010-11-04T16:27:11.753 に答える