Запрос попадает в query log
От: Аноним  
Дата: 14.07.13 13:32
Оценка:
Все привет. Не пойму почему запрос попадает в query log.
Запрос:
SELECT last_g FROM flag WHERE CURRENT_TIMESTAMP >= DATE_ADD(last_g, INTERVAL 1990 MINUTE);

Таблица flag:
CREATE TABLE flag(
  f_last_game TINYINT(4) NOT NULL DEFAULT 0,
  last_g DATETIME DEFAULT '0000-00-00 00:00:00',
  timeout_r SMALLINT(6) DEFAULT 5,
  PRIMARY KEY (f_last_game),
  UNIQUE INDEX UK_flag (last_g, timeout_r, f_last_game),
  UNIQUE INDEX UK_flag_last_g (last_g),
  UNIQUE INDEX UK_flag_timeout_r (timeout_r)
)
ENGINE = INNODB
AVG_ROW_LENGTH = 16384
CHARACTER SET latin1
COLLATE latin1_swedish_ci;


Попадает туда из-за отсутсвия индекса, потому что начал туда попадать после включения log-queries-not-using-indexes.
Re: Запрос попадает в query log
От: Аноним  
Дата: 14.07.13 13:47
Оценка:
И еще: MySQL. В таблице одна запись.
Re: Запрос попадает в query log
От: Anton Batenev Россия https://github.com/abbat
Дата: 14.07.13 13:59
Оценка:
Здравствуйте, Аноним, Вы писали:

> Все привет. Не пойму почему запрос попадает в query log.

> SELECT last_g FROM flag WHERE CURRENT_TIMESTAMP >= ;
> Попадает туда из-за отсутсвия индекса, потому что начал туда попадать после включения log-queries-not-using-indexes.

DATE_ADD(last_g, INTERVAL 1990 MINUTE)


Вычисляется для каждой строки, по этому индекс не используется.
avalon/1.0.433
Re[2]: Запрос попадает в query log
От: Аноним  
Дата: 14.07.13 18:10
Оценка:
А что можно сделать, что бы он не попадал в query log?
Re[3]: Запрос попадает в query log
От: Aikin Беларусь kavaleu.ru
Дата: 15.07.13 08:39
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>А что можно сделать, что бы он не попадал в query log?

SELECT last_g FROM flag WHERE DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1990 MINUTE) >= last_g;


СУВ, Aikin
Re[3]: Запрос попадает в query log
От: Anton Batenev Россия https://github.com/abbat
Дата: 15.07.13 12:34
Оценка:
Здравствуйте, Аноним, Вы писали:

> А что можно сделать, что бы он не попадал в query log?


Он попадает туда, потому что не использует индексы. Если нужно, чтобы туда запросы не попадали, то нужно отключить логгирование запросов, которые не используют индексы или переписать запрос таким образом, чтобы он их использовал (убрать функцию из запроса).
avalon/1.0.433
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.