0

既存のエントリをチェックするための2つの異なるアプローチがあります。

アプローチ1

SQL:SELECT COUNT(*) FROM ...

PHP:

$result = fetch_row();
if($result[0] > 0) // entry found

アプローチ2

SQL:SELECT 1 FROM ... LIMIT 1

PHP:

$result = num_rows();
if($result > 0) // entry found

パフォーマンスの観点からそれを行う正しい方法は何ですか?

4

2 に答える 2

1

クエリに一致する行が多数ある場合、後者の方が効率的です。最初のケースでは、MySQL は正しいカウント値を返すためにすべての行を検索する必要があり、2 番目のケースでは、最初の行が見つかった後に検索を停止するためです。

于 2013-03-13T13:29:13.840 に答える
1

Both are correct and good. But I will suggest second as you are limiting to 1 record and as you got record it will stop while in first you are counting all records.

first "count *" is important when you need to find how many records presents.

于 2013-03-13T13:16:06.033 に答える