2

1行しかないテーブルがあります。

このテーブルは非常に頻繁にクエリされています。(すべてのページ読み込み時)。

クエリを作成する最良の方法は何ですか?

これがテーブル構造であると仮定しましょう:

CREATE TABLE `counter` (
    `id` INT(10) NOT NULL DEFAULT '0',
    `point1` INT(10) NOT NULL DEFAULT '0',
    `point2` INT(10) NOT NULL DEFAULT '0',
    `point3` INT(10) NOT NULL DEFAULT '0',
    `...` INT(10) NOT NULL DEFAULT '0',
    `pointN` INT(10) NOT NULL DEFAULT '0'
)

id意図的にフィールドを追加しました。テーブルエンジンはMyISAM.

今私はこれをやっています:

SELECT * FROM counter WHERE id = 1 LIMIT 1;

このようにできますか:

SELECT * FROM counter;

またはこの方法:

SELECT * FROM counter LIMIT 1;

性能に差が出ますか?

idフィールドは索引付けされていません。行が1つしかない場合、インデックスのポイントが表示されません。

4

3 に答える 3

1

その行を頻繁に使用している場合は、毎回クエリを起動するのではなく、一度だけ起動して値をローカルに保存します。

一度にすべての値を選択する

SELECT * FROM counter;

limit や where のようなチェックする条件がないため、このクエリが最も高速になります。

于 2013-05-10T20:09:33.873 に答える
1

オプティマイザは、おそらくすべてのクエリを同じものに最適化します。しかし、理論的には

SELECT * FROM counter;

whereデータを制限する句がないため、データのルックアップを必要としないため、最速です。

于 2013-05-10T20:09:03.807 に答える
1

SELECT * FROM counter;

これは最速ですが、このタイプのテーブルではパフォーマンスはせいぜい無視できます。

于 2013-05-10T20:11:29.693 に答える