| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Разное число rows двух запросов при explain |
| Автор: rcdimon 14.11.2008, 10:21 | ||||
| Всем привет. У меня есть таблица, в которой хранится большое число строк. Есть колонка с именем date типа DATE. Строк в таблице много, но разных дат где-то 12-15. Мне необходимо получить список этих дат.
Делаю EXPLAIN результат rows - 15 Но мне хотелось бы дату в другом формате.
Результат EXPLAIN rows - 20'000 (У меня столько строк в таблице) Получается во втором случае он просматривает всю таблицу.. Почему так? Мне не хотелось бы использовать такой неэфективный запрос, но формал даты хочу получить нужный... |
| Автор: Akina 14.11.2008, 10:33 |
| Запросы РАДИКАЛЬНО разные. В одном используется функция - а это filesearch без вариантов. PS. Учти просто, что одна и та же функция при нескольких вызовах с одним и тем же параметром имеет право вернуть разные значения. Например, так делает Rand(). И EXPLAIN тоже это знает. |
| Автор: skyboy 14.11.2008, 11:45 |
| можно использовать форматирование поверх подзапроса. это вызовет using temporary, но, по идее, только для 15 записей. |
| Автор: rcdimon 14.11.2008, 12:06 | ||
Очень хорошая мысль. Можно, пожалуйста, пример? А то мне выдает
|
| Автор: Akina 14.11.2008, 12:11 | ||
|
| Автор: rcdimon 14.11.2008, 12:15 | ||
| Ого, не знал что так можно! Спасибо! Добавлено через 4 минуты и 5 секунд Пришлось правда дописать после FROM (...) AS `table_name`, иначе говорил
Вдруг кому-то еще пригодится ) |