- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
не знаю просто на сколько быстро отработает вложенный select max(pid)
Достаточно быстро для практического применения, так что можете использовать. Но все же попробуйте наш последний вариант отсюда сравнить с ним.
Пример "меньшинства" будет?
Только невнятный, устный и по памяти:)
Несколько лет назад натолкнулись на это случайно заметив глюк при выборке в блок последних сообщений с форума, очень долго искали причину. Справедливости ради надо заметить, что "не первое" значение, а "случайное" там выбиралось то ли из-за оптимизации запроса мускулом (по документации-то ордер бай там значения не имеет в такой ситуации, так что возможно мускул оптимизировал выкидывая его) то ли из-за кэширования где-то промежуточных результатов (помогал sql_no_cache но не всегда) - до конца так и не разобрались если честно, но прочли документацию - испугались - с тех пор "дуем на воду". Вполне допускаем что не правы, как говорится "наше мнение не обязательно правильное" ©
А можно подробнее?
Возможно перемудрили выражаясь, имели ввиду не более чем сказанное Вами "indeterminate value".
Но пожалуй стоит еще упомянуть в общем случае об извращенческом варианте выборки вида max(concat_ws(pid,fieldname,'-')) - но тут в зависимости от данных нужно думать как склеивать строки, что бы максимум оставался правильным, но сама по себе идея вполне себе рабочая - поскольку склеиваются поля из одной строки.
Только невнятный, устный и по памяти
За неимением рабочего кейса дискуссию предлагаю свернуть (точнее нерабочего.. - т.е. чтоб запрос выдавал некорректный результат)
Возможно перемудрили выражаясь,
ОК, =)
Но пожалуй стоит еще упомянуть в общем случае об извращенческом варианте выборки вида max(concat_ws(pid,fieldname,'-'))
Если задумка - вывести что-то вроде 2-3, то "-" (минус.. разделитель то есть) лучше ставить первым аргументом. Для "корректного" сравнения можно использовать zerofill или LPAD, если нужно обойтись без изменения таблицы.. А вот оптимальность такого запроса...
не знаю просто на сколько быстро отработает вложенный select max(pid)
Если не ошибаюсь, индекс topic_id, pid может быть полезен в обоих случаях. Если будет использоваться в блоке на всех страницах или на главной, имеет смысл кэшировать...
p.s. edogs, немного смущает множественное число в Ваших сообщениях..
Достаточно быстро для практического применения, так что можете использовать. Но все же попробуйте наш последний вариант отсюда сравнить с ним.
Да, ваш оказался быстрее. 3 сек против вашего 0.0004 сек. Хотя я свой запрос немного подправил добавив вместо таблицы topics вложенный селект из нее, скорость сократилась до 0.03 сек. Но при добавление новых параметров в условие, время почти одинаковое.