
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
|||
![]() ![]() Пофигист ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 883 Пользователь №: 36058 На форуме: Карма: 43 ![]() |
Экий Вы упрямый. ![]() Вам уже трое сказали, что запрос не рабочий. А Michael даже написал, как поправить надо. -------------------- |
||
![]() |
|
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 6347 Пользователь №: 18498 На форуме: Карма: 269 ![]() |
Valick, а так верно же выдает на твоей базе?:
SELECT * FROM data WHERE (currency, data) IN ( -------------------- There never was a struggle in the soul of a good man that was not hard
|
![]() |
|
![]() ![]() Пофигист ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 883 Пользователь №: 36058 На форуме: Карма: 43 ![]() |
Michael - последний "GROUP BY currency" убить.
-------------------- |
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6460 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
этот запрос не проверял, мне ща на моей работе по щее дадут
![]() у меня такой запрос: SELECT * FROM (SELECT MAX(`data`) `data`,currency FROM `data` WHERE `data` <= NOW() GROUP BY currency) a LEFT JOIN `data` b USING(`data`,currency) естественно тип поля поправить до нормального -------------------- |
![]() |
|||
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 6347 Пользователь №: 18498 На форуме: Карма: 269 ![]() |
ну да, это я скопипастил, тут он не нужен уже. -------------------- There never was a struggle in the soul of a good man that was not hard
|
||
![]() |
|
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 9630 Пользователь №: 26630 На форуме: Карма: 664 ![]() |
Вот так вот, главное завести толпу, а там глядишь за вас всю работу сделают
![]() |
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6460 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
у меня кстати созрел еще один запрос достаточно извращенный, надо будет проверить
![]() __ ну а с IN я и правда дал маху, даже не знаю как с этим дальше жить я понимаю что у меня достаточно белых пятен, но чтоб вот так "з-за угла"... -------------------- |
![]() |
|||
![]() ![]() Пофигист ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 883 Пользователь №: 36058 На форуме: Карма: 43 ![]() |
В данном случае это не имеет значения - недостаток знаний вычисляется на раз (пара-другая дней, максимум неделя). Т.е. ТС правильное решение бесполезно (как решение), только если как знание в копилку. А дать знание (поделиться), это нормально. Даже если задарма... -------------------- |
||
![]() |
|
![]() ![]() Помагите Здесь живу!!! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 23010 Пользователь №: 20039 На форуме: Карма: 623 ![]() |
1 валюта за 1 день = 1 значение.
Для банка бывают до 100 валют Банк может работать 365 дней в году. Есть возможность, что валюта будет меняться на протяжении дня. Банк, проработав 3 года получит 100`000 - 200`000 записей, через 5-6 лет и увеличении валют до 200-300 единиц (все страны) - уже миллион записей. Каждый раз использовать временную таблицу, группировать... не лучший вариант, как по мне. Поэтому лучше использовать кеширование, учесть, что кеширование по заданию мы сделаем внутри нашего скрипта, отсюда алгоритмы попадания, изменения данных в кеш-таблице и удаления записей будет выполнять ПХП скрипт с различными запросами. Так как нас просят просто показать финальный запрос, как будет выглядеть, то он выглядеть будет так: SELECT `currency`, `rate` FROM `currency_cache` -------------------- Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum). |
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6460 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
inpost, сам шучу сам смеюсь?
-------------------- |
![]() |
|
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 6422 Пользователь №: 5552 На форуме: Карма: 165 ![]() |
финально будет так:
$result = getWhatINeed(); -------------------- Свои мозги еще никто не отменял.
Телепатов нету. |
![]() |
|
![]() ![]() Помагите Здесь живу!!! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 23010 Пользователь №: 20039 На форуме: Карма: 623 ![]() |
Valick
Я не понимаю шутки... ты в своём проекте с миллионами посетителей вроде Приват Банка для вывода курса будешь использовать такой запрос: SELECT * FROM (SELECT MAX(`data`) `data`,currency FROM `data` WHERE `data` <= NOW() GROUP BY currency) a LEFT JOIN `data` b USING(`data`,currency) Интересненько ты программируешь, очень интересненько... Спустя 5 минут, 14 секунд inpost написал(а): Valick Правильно для вывода использовать кеш. Отсюда вопрос другой, решили поменять курс только 1 валюты из 200, ты будешь заново пересчитывать все курсы, или сделаешь запрос по одному курсу и обновишь лишь кеш данной валюты? В общем заведомо неверное проектирование ты выбрал. -------------------- Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum). |
![]() |
|||
![]() ![]() Пофигист ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 883 Пользователь №: 36058 На форуме: Карма: 43 ![]() |
У наших людей иногда бывает одна проблемка, - придумывает себе трудности, а потом героически их преодолевает. Ваш случай такой. ![]() Для этой простой задачи достаточно простого решения. В частности, достаточно кеша mySQL, ибо на 500 млн.запросов в сутки/сервер, будут только 200 реальных, остальное из кеша. Причём, "реальный" будет выполняться заметно меньше секунды. Конечно, более продвинутый кеш будет на порядок (где-то) быстрее, - а зачем? -------------------- |
||
![]() |
|
![]() ![]() Помагите Здесь живу!!! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 23010 Пользователь №: 20039 На форуме: Карма: 623 ![]() |
S.Chushkin
Кеш не безграничный, забьет другую информацию кешем и всё, заново обработка. Ты говоришь, что трудность... я этот скрипт за 10 минут напишу вместе с кешем и классом для работы с данными. И где тут трудности? Ладно бы были задача на несколько часов... Ну да, ну да, относиться к поставленным задачам легкомысленно, чтобы потом через год снова всё исправлять, а ещё через 2 - опять и опять. А зачем, чтобы сделать сразу 1 раз за 10 минут правильно и забыть про этот участок кода. Вот и всё. Ах да, если ты считаешь, что написать 10 минут скрипт = героическое преодоление, то "Интересненько ты программируешь, очень интересненько...". Я ввёл в поисковое поле "Креведка", и хочу показать сайт, в котором есть это слово... какая простая задача: SELECT * FROM `sites` WHERE `text` LIKE '%Креведка%' Можешь скинуть эту реализацию в google.com... ![]() Это сообщение отредактировал inpost - 10.01.2013 - 22:41 -------------------- Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum). |
![]() |
|
![]() ![]() Помагите Здесь живу!!! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 23010 Пользователь №: 20039 На форуме: Карма: 623 ![]() |
И самое главное, блин, с этого надо было начинать, вдумайся в мой ответ на твои слова: "Конечно, более продвинутый кеш будет на порядок (где-то) быстрее, - а зачем? "
Ответ: при трудоустройстве ты претендуешь на самую высокую з/п из представленной вилки, поэтому ты должен показать свои способности поиска наиболее ПРОДВИНУТЫХ и правильных решений с наилучшей оптимизацией, чтобы у работодателя не было сомнений, что ты заслуживаешь наивысшую з/п. Вот и всё, выполняя тестовое задание работодатель хочет увидеть всё, что ты умеешь делать, и твои мысли по поводу наилучших оптимизаций. Ты можешь показать простой код, тогда тебе скажут: "да, он умеет делать простой код". А когда станет вопрос о том, сможешь ли ты выполнить проект, который требует САМЫЙ ЛУЧШИЙ способ реализации - возникнут вопросы... А теперь картину наоборот: ты показываешь крутой код, тогда тебе ответят: "да он умеет писать крутые коды", а когда станет вопрос, сможет ли он написать простой код - ответ очевидный, так же ДА! Потому что профессионалы могут писать простые коды на ровне с сложными, а вот новички только простые. -------------------- Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum). |
![]() |
![]() ![]() ![]() |