2013-05-10 3 views
2

У меня есть таблица только с одной строкой.MySQL выберите из таблицы с ОДНОЙ строкой

Эта таблица запрашивается очень часто. (при каждой загрузке страницы).

Каков наилучший способ построения запроса?

Давайте предположим, что это структура таблицы:

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

Оптимизатор, вероятно, оптимизирует все запросы к тому же. Но теоретически

SELECT * FROM counter; 

является самым быстрым, так как он не нуждается в каком-либо поиске по данным, так как нет where положения, чтобы ограничить данные.

+0

Итак, поле 'id' является избыточным? – rinchik

+0

Если вам это не нужно, это бесполезно. –

1

Если вы используете эту строку, очень часто не запускайте запрос каждый раз, когда вы просто стреляете, когда локальные значения хранилища сохраняются.

Выберите все значения сразу

SELECT * FROM counter; 

Этот запрос будет самым быстрым, потому что нет никаких условий, чтобы проверить, как предел и где.

+0

Эта таблица обновляется несколько раз в секунду. – rinchik

+0

@rinchik, на каком языке вы используете, применяете триггер прослушивателя или базы данных. Поэтому он будет уведомлять вас. –

+0

Я использую PHP() – rinchik

1

SELECT * FROM counter;

Это самый быстрый, но с этим типом таблицы производительности незначителен в лучшем случае.

+0

Какую таблицу вы бы предложили? – rinchik

+0

То, что вы сейчас делаете, - это лучший подход, другой apporach будет использовать массивы, но использование таблиц гораздо более расширяемо и с ним легче работать. – NinjaTurtles

Смежные вопросы