私は2つのテーブルA(pid、pname、address)、B(bid、baid、pid、details)を持っています。 Aはプライマリキーとしてpidを持ち、BのBidはプライマリキーです。 以下のクエリを実行しました。なぜSQLで結果を返すのに時間がかかります
select * from A a,B b where a.pid=b.pid and b.pid=100.
しかし、このクエリはデータを与えるために多くの時間を取って、と私は
select * from A a,B b where a.pid=b.pid and a.pid=100.
以下のように、そのクエリの小さな変化をすればそれは私が速くなり与えます。 私は理由を知りたいのですが、なぜ最初のクエリが時間を要し、2番目のクエリではありません。
bの主キーが入札またはpidですか? –
テーブルにインデックスがありますか?テーブルbではなく?テーブルの行の数は小さいですか? – scaisEdge
質問で述べたように、PIDにプライマリキーがあるので、検索に役立つユニークインデックスが作成されます。一方、Bは入札に関する指標を持っていません(前提)。 –