123456
12.01.2015 - 19:52
Запрос выполняется 0.2 сек
SELECT *
FROM `pole`
WHERE `id_user` = '55629' AND
`id_pole` >= '19' AND
`id_pole` <= '27'
LIMIT 9
Это вообще нормально??
смотря на какой машине меришь? сколько строк в этой таблицы? какова нагрузка в этот момент?
Вообще на серверной машине запросы должны выполняться не более чем за 0,05
все что выше нужно оптимизировать.
Нет конечно. там же взаимоисключающие условия.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
123456
12.01.2015 - 19:58
Выполняю на денвере.
Строк в таблице чуть больше 200.000
Структура вида
id | id_user | pole_id | date | date_last
sergeiss
12.01.2015 - 20:01
Цитата (twin @ 12.01.2015 - 19:56) |
там же взаимоисключающие условия. |
Не увидел таких...
123456, а индексы у тебя там есть, по этим полям? Причем, лучше всего, чтобы индекс был по обоим полям сразу, которые участвуют в условии.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
123456 для своего компа это нормально, не парься.
123456
12.01.2015 - 20:05
Цитата |
а индексы у тебя там есть, по этим полям? |
какие индексы?
volter9
12.01.2015 - 20:20
Цитата (123456 @ 12.01.2015 - 19:52) |
Запрос выполняется 0.2 сек
SELECT * FROM `pole` WHERE `id_user` = '55629' AND `id_pole` >= '19' AND `id_pole` <= '27' LIMIT 9
Это вообще нормально?? |
Я думаю что так будет читабельнее:
SELECT *
FROM `pole`
WHERE `id_user` = '55629' AND
`id_pole` BETWEEN '19' AND <= '27'
LIMIT 9
Как писал
sergeiss поставь индекс на поле id_user и id_pole (шарахни молнией в PMA):
_____________
Мой блог
sergeiss
12.01.2015 - 20:38
Цитата (123456 @ 12.01.2015 - 20:05) |
какие индексы? |
Ты знаешь вообще, что такое индексы и зачем они нужны?
Цитата (volter9 @ 12.01.2015 - 20:20) |
поставь индекс на поле id_user и id_pole (шарахни молнией в PMA) |
Лучше сделать составной индекс по двум полям. А если "шарахнуть молнией", как ты выразился, то, насколько я помню, будут созданы 2 разных индекса, по каждому полю.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Упс, действительно попутал поля. Прошу пардона.
А по теме, BETWEEN работает быстрее, чем два условия.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sergeiss
12.01.2015 - 21:54
Цитата (twin @ 12.01.2015 - 20:49) |
А по теме, BETWEEN работает быстрее, чем два условия. |
Ты знаешь, когда ТС на вопрос о наличии индексов недоуменно спрашивает "какие индексы?", то говорить о разнице в скорости между BETWEEN и 2-х условий как-то даже не хочется уже
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Переведите строковые ID в целые числа, думаю будет быстрее
Valick
12.01.2015 - 23:33
Guest, с чего вы взяли, что там строки?
_____________
Стимулятор ~yoomoney - 41001303250491
Valick по всей видимости Guest ориентировался с типом полагая, что значения в кавычки передаются только строковые значения.
Valick
12.01.2015 - 23:53
Цитата |
что значения в кавычки передаются только строковые значения |
это условное правило, числа можно и в кавычках и без, строки только в кавычках.
_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.