|
|
|
| mysql> select benchmark(1000000000,(select main.product from `main`, `dep_6BC76F81` where dep_6BC76F81.count < 0 and main.code=dep_6BC76F81.code
order by dep_6BC76F81.count DESC limit 1));
16.17 сек.
mysql> select benchmark(1000000000,(select product from `dep_6BC76F81` where count < 0 order by count DESC limit 1));
16.17 сек.
В первом случае запрос к двум таблицам, во втором - к одной. Время запроса одинаково. Не верю своим глазам.
Помню, что когда-то сравнивал время запросов к одной и к двум таблицам - к двум таблицам было в 4-5 раз медленнее.
А почему сейчас одинаково? Не должно быть такого.
P.S.
Данные одинаковые (поля таблиц дублируют друг друга) | |
|
|
|
|
|
|
|
для: Хулиган
(27.11.2009 в 11:45)
| | так code небось первичный ключ? | |
|
|
|
|
|
|
|
для: Trianon
(27.11.2009 в 11:56)
| | в обеих таблицах code стоит как UNIQUE.
Не PRIMARY.
Это может влиять на скорость? Если бы был PRIMARY - понятно, а уникальный - не понятно...
В любом случае разница должна ведь быть PRIMARY или нет. Хоть не в разы, но хотя бы небольшая. | |
|
|
|
|
|
|
|
для: Trianon
(27.11.2009 в 11:56)
| | Попробовал убрать UNIQUE и поставить для code PRIMARY - результат не поменялся. Те же цифры.
Пробовал вообще все ключи убрать - опять те же цифры.
Зачем тогда вообще ключи нужны, если они никак не влияют на скорость выполнения выборки?
Может дело в том, что тип таблиц - InnoDB?
И вообще, какие-то странные цифры: 16 сек на 1000000000 (1 млрд.) запросов. Что-то нереально быстро...
Сам процессор не делает такого количества операций, а тут не просто процессорная операция, а запрос к БД, который на порядки медленнее.
Что-то здесь не так. | |
|
|
|