SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.04.2017 13:22:17

BSBAlex
Участник
Зарегистрирован: 07.10.2016
Сообщений: 16

SELECT + ключевое поле

Заинтересовала одна особенность. Суть проблемы в том, что при выборе ключевого поля время обработки запроса увеличивается в 3 раза. Таблица пока небольшая, до и время составляет 200 миллисекунд, но все же вопрос актуален smile
Итак, есть таблица с 2я индексами. 1й индекс содержит 2 поля (pos_x, pos_y), 2й индекс уникальный по ключеву полю (id_reg)
Запрос вида

SELECT c.name, c.pos_x, c.pos_y FROM cont WHERE c.pos_x between -2 and 2 and c.pos_y between -1 and 1 ORDER BY c.pos_y, c.pos_x
отрабатывает за 60-70 мс.
А вот запрос
SELECT c.id_reg, c.name, c.pos_x, c.pos_y FROM cont WHERE c.pos_x between -2 and 2 and c.pos_y between -1 and 1 ORDER BY c.pos_y, c.pos_x
отрабатывает уже за 180-250 мс.
В чем прикол? Вангую, что это связано с "отдельным" хранением ключевых полей, но может дело в индексах?

Неактивен

 

#2 26.04.2017 13:47:52

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: SELECT + ключевое поле

Это среднее время нескольких (сколько?) одинаковых запросов?
Попробуйте с SELECT SQL_NO_CACHE ...

Неактивен

 

#3 27.04.2017 14:48:42

BSBAlex
Участник
Зарегистрирован: 07.10.2016
Сообщений: 16

Re: SELECT + ключевое поле

Та же песенка. 1й запрос отрабатывает быстрее.

Неактивен

 

#4 27.04.2017 14:55:55

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: SELECT + ключевое поле

Для меня странно, но может админы знают ответ.
Скрипт создания таблицы приведите на всякий случай.

Неактивен

 

#5 27.04.2017 16:00:26

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: SELECT + ключевое поле

покажите:
show create table cont;
explain select ... ;  -- для обоих запросов
и профайлинг для обоих вариантов, см http://webew.ru/articles/2732.webew

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson