
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.12.2015, 13:27:05
|
|||
|---|---|---|---|
|
|||
Запрос ведет себя странно |
|||
|
#18+
Добрый день! Подскажите в чем проблема, немогу понять почему казалось бы в двух одинаковых ситуациях идет разная выборка (перебор) При запросе Код: sql 1. Получаем А уже при запросе Код: sql 1. Уже получаем полный перебор таблицы Структура таблицы такая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 13:31:16
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
treamz, Попробуйте сделать OPTIMIZE TABLE этой таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 14:12:17
|
|||
|---|---|---|---|
|
|||
Запрос ведет себя странно |
|||
|
#18+
Вроде делал и это, все равно не пойму в чем проблема.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 14:21:05
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
treamzВроде делал и этоПосле этого порог перехода на FULL SCAN сохранился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 14:32:02
|
|||
|---|---|---|---|
|
|||
Запрос ведет себя странно |
|||
|
#18+
Нет, все осталось также при LIMIT 89 происходит полное сканирование данных в таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 14:41:16
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
treamz, Покажите вывод команды: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 14:52:34
|
|||
|---|---|---|---|
|
|||
Запрос ведет себя странно |
|||
|
#18+
tmp_table_size 16777216 max_heap_table_size 16777216 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 14:56:10
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
Explain убеждает, что существует индекс по `datetime`, скриншот - что такого индекса нет. WTF? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 14:56:29
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
treamz, Объяснить такое поведение пока не могу. Но могу предложить создать индекс по полю datetime. По идее, должно перейти на работу с индексом независимо от величины в LIMIT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 15:02:12
|
|||
|---|---|---|---|
|
|||
Запрос ведет себя странно |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 15:10:45
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
treamzПо сути вот это же тоже не верное отображение выполнения операции? Почему же? что тут неверного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 17:09:14
|
|||
|---|---|---|---|
|
|||
Запрос ведет себя странно |
|||
|
#18+
Да, ошибся. Вы не подскажите каким образом выполняется выборка с LIMIT (но без WHERE). Например последние 200 строк. Я так понимаю простой способ не подойдет, потому-что затронет все записи таблицы? Если какие-то либо "хаки"? Например count(*) и потом SELECT ... WHERE id < $count ... LIMIT 200 ? Заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 17:15:42
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
treamzВы не подскажите каким образом выполняется выборка с LIMIT (но без WHERE).Вопрос непонятен. Отсутствие WHERE на LIMIT не влияет. treamzНапример последние 200 строк."Первые" или "последние" записи существуют только при указании сортировки. Без сортировки это будут "какие-то 200 записей". Опишите саму задачу, а не ваши попытки ее решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 17:24:28
|
|||
|---|---|---|---|
|
|||
Запрос ведет себя странно |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 17:34:01
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
http://dev.mysql.com/doc/refman/5.6/en/limit-optimization.html If you select only a few rows with LIMIT, MySQL uses indexes in some cases when normally it would prefer to do a full table scan. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 17:38:24
|
|||
|---|---|---|---|
|
|||
Запрос ведет себя странно |
|||
|
#18+
Поэтому я и спрашиваю есть ли хаки? Видимо они основаны на JOIN'ах или других операторах, которые используют индексы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 17:46:01
|
|||
|---|---|---|---|
|
|||
Запрос ведет себя странно |
|||
|
#18+
"Хак" нашел, всем спасибо! Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 17:51:52
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
treamz"Хак" нашел, всем спасибо! Код: sql 1. Хм, и в чем же "хак"? В результате все равно будет неизвестное количество записей, как больше 300, так и меньше 300. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 18:15:47
|
|||
|---|---|---|---|
|
|||
Запрос ведет себя странно |
|||
|
#18+
мне надо выбрать все поля * из таблицы (20к записей). При простом запросе SELECT * FROM table LIMIT 300 у меня затрагиваются все 20k записей судя по EXPLAIN. При SELECT * FROM test_table JOIN (SELECT id FROM test_table ORDER BY id LIMIT 0, 300) as b ON b.id = test_table.id у меня затрагиваются только последние 300 записей, которые мне и нужны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 20:38:46
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
treamzПри простом запросе SELECT * FROM table LIMIT 300 у меня затрагиваются все 20k записей судя по EXPLAIN. Я же даже ссылку дал... на документацию, между прочим, а не на гороскоп какой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.12.2015, 20:45:03
|
|||
|---|---|---|---|
Запрос ведет себя странно |
|||
|
#18+
treamzПри простом запросе SELECT * FROM table LIMIT 300 у меня затрагиваются все 20k записей судя по EXPLAIN.treamz(SELECT id FROM test_table ORDER BY id LIMIT 0, 300) ... затрагиваются только последние 300 записейВы сравниваете неэквивалентные запросы. Запрос с ORDER BY и без - это разные запросы. Это во-первых. А во-вторых, в первую очередь надо обеспечить корректный результат запроса. А вам, есть такое ощущение, вообще все равно что он выводит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1832346]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 491ms |

| 0 / 0 |
