|
|
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
Доброго времени. Подскажите почему так: Код: sql 1. 2. 3. время выполнения 5.7 Код: sql 1. 2. 3. время выполнения 4.5 ?? Почему второй запрос выполняется быстрей? *кеш тут точно не участвовал *id первичный ключ в обоих таблицах *client_type обычное поле tinyint *количество записей в таблицах - по 677978 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:02:40 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
А что показывает Explain ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:22:36 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
cvandrey, Это случайность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:26:55 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто случайность. Не факт. С учётом текстов может оказаться, что во втором запросе в выходной набор извлекается не o.id, а od.id (они ж равны!). Т.е. первая таблица вообще не задействуется. Это дешевле... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:32:12 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
Akina, в первом запросе тоже можно извлекать od.id. Ну и вопрос, конечно, как ТС замерял время - если по разику каждый запрос прогнал, то разговор вообще ни о чём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:34:38 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
AkinaMasterZivЭто случайность. Не факт. С учётом текстов может оказаться, что во втором запросе в выходной набор извлекается не o.id, а od.id (они ж равны!). Т.е. первая таблица вообще не задействуется. Это дешевле...Первая таблица в обоих запросах не задействуется. А вот индекс по o.id в обоих запросах должен задействоваться, чтобы join сделать. Так что, подозреваю, дело в кэшировании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:47:15 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
tanglirAkina, в первом запросе тоже можно извлекать od.id. miksoftПервая таблица в обоих запросах не задействуется.Угу, по уму не должна бы. А вот задействуется или нет на самом деле - фиг знает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 13:04:39 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
AkinaMasterZivЭто случайность. Не факт. С учётом текстов может оказаться, что во втором запросе в выходной набор извлекается не o.id, а od.id (они ж равны!). Т.е. первая таблица вообще не задействуется. Это дешевле... Во втором запросе это тоже можно делать, второе добавленное поле тоже из order_details. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 13:12:41 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
Ещё раз - это не кеш, конечно я на него сразу и подумал, использовал и SQL_NO_CACHE и Flush и mysql перезапускал, пробовали на других машинах - результат одинаковый. Вот explain ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 11:25:06 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
Под Flush, я имел в виду FLUSH STATUS; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 11:28:37 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
cvandrey, откуда взялось выделение черным и что оно означает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 11:36:27 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
cvandreySQL_NO_CACHEcvandreyFLUSH STATUSНи то, ни другое не сбрасывает и не отключает кэша индексов. Сколько значений возможно в поле od.client_type и сколько записей имеют od.client_type=2 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 11:40:31 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
miksoft, miksoftСколько значений возможно в поле od.client_type и сколько записей имеют od.client_type=2 ? client_type 1 или 2 where od.client_type=2 - ни на что не влияет, explain я строил уже без него ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 12:09:23 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
miksoftcvandrey, откуда взялось выделение черным и что оно означает? я менял имена полей и таблиц с реальных на абстрактные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 12:10:20 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
cvandrey, Попробуйте создать индекс od (client_type, id) и сделать ANALYZE TABLE для обеих таблиц. where od.client_type=2 не убирайте. Как изменятся планы и время выполнения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 12:29:41 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
miksoft, не пойму зачем ключ по полю, где 2 значения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 15:12:43 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
cvandreymiksoft, не пойму зачем ключ по полю, где 2 значения?Не по одному полю, а по двум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 15:15:21 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
miksoft, я понимаю что вы предлагаете создать составной ключ, но зачем он, если во втором поле доступно 2 значения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2014, 09:45:04 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
cvandreymiksoft, я понимаю что вы предлагаете создать составной ключ, но зачем он, если во втором поле доступно 2 значения?Точнее в первом. Этот индекс стал бы покрывающим индексом. И тогда вместо чтения всей таблицы MySQL-ю достаточно было бы прочитать лишь часть индекса. Что особенно актуально, если движок таблиц MyISAM, т.к. в MyISAM индексы кэшируются, а таблицы почти нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2014, 09:54:27 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
MasterZivcvandrey, Это случайность. Я ещё раз говорю, это случайность. Автор, померий раз 50 и выведи среднее. И там, и там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2014, 10:33:48 |
|
||
|
Вопрос в выполнении
|
|||
|---|---|---|---|
|
#18+
авторЭтот индекс стал бы покрывающим индексом. И тогда вместо чтения всей таблицы MySQL-ю достаточно было бы прочитать лишь часть индекса. Что особенно актуально, если движок таблиц MyISAM, т.к. в MyISAM индексы кэшируются, а таблицы почти нет. В том то и дело, что кешированные индексы должны быстрее подхватываться, чем шерстить всю таблицу (второй sql). Спасибо ребята, закроем тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:06:54 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38525441&tid=1835385]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 341ms |

| 0 / 0 |
