All streams
Search
Write a publication
Pull to refresh
57
0
Стас @ef_end_y

User

Send message
Не знал, для меня это было открытие. Быть тормозом иногда полезно — вчера так радовался событию)
В данный момент качаю hl2 на мак, молюсь, чтоб это была не шутка от valve
да сколько ж вас, обожателей майла, тут на хабре…
Мне кажется, Valve тренится писать игры под Линукс и МакОС и поэтому взяла задачу относительно не сложную, но чтоб с пользой дела
У Лебедева армия поклонников
Надо мной просто прикалываются. Для большинства знакомых программист — это существо оторванное от мира, живущее в своем маленьком мире. Зато доставляет смотреть как через время они шокируются когда ты не за компом
Путь к деградации с кажущимися улучшениями
Найти, понять, что тебе необходима именно эта приблуда, и купить — по времени может занять больше 30 минут
Ага, заставлять бедных детей учить самое неинтересное — алгоритмы. Ваши алгоритмы забудутся 99% школьников так же как формула дискриминанта почти всеми вашими друзьями — проверьте. Человека нужно заинтересовать, давать реальные практические и полезные задачи. А их можно давать даже с минимальными знаниями. Вот тогда в голове осядет что-то. К интересным задачам подоспеют решения — вот там и алгоритмы помогут и у школьника может даже и не возникнет вопроса «зачем они нужны».
Я ожидал, что в пример будет приведен эталон Оракл. Речь идет о нарушении стандартов. Например, group by мускула позволяет делать выборку полей, которые не участвуют в группировке. Это отход от стандарта. В большинстве случаев можно обойтись и без специфичных хаков
Лучше стараться не использовать специфичные для mysql фишки — легче будет мигрировать на другую СУБД, если вдруг понадобится
Ну мой-то вариант рабочий, в отличие от варианта в статье. «Малая вероятность ошибки» — это самая тупая отмазка, которая может быть у программиста.
либо повышать точность времени, либо принять, что с одинаковым временем более поздний платеж с бОльшим id. Мой запрос, удовлетворяющий этому условию, ниже вашего)
Ну или еще полухакерский вариант:

SELECT p.uid, p.amount
  FROM payments p
  JOIN
    (SELECT uid, MAX(pay_date*1000000 + id) AS max_dt
       FROM payments
       GROUP BY uid) sel ON p.uid = sel.uid
          AND (p.pay_date*1000000 + p.id) = sel.max_dt;


Думаю план у него будет плохим, да и 1000000 надо заменить на «очень большое значение». Короче, просто такой себе вариант
ну так авторизуется он же по логину/паролю, дальше получает сессию и выборка идет по нет. Если говорить об оптимизации, то сессию можно сделать из двух частей: id юзера и самой сессии, выборку делать по id и проверять сессию. Но сам запрос выше совершенно часто встречается
Т.е. мы должны изменить авторизацию логин пароль на число/число чтобы индексы хорошо работали? :)
Prepared Statement может не включать в себя ни одного плейсхолдера. Это просто одна из реализаций. Могут быть другие, не на плейсхолдерах
Ну я понял, mssql использует бинарный протокол и при этом еще и _параллельно_ парсит и конвертит запросы с плейсхолдерами в одну строку. Двойная работа.

А еще мне понравилось ваше высказывание, что раз IN(..) редко используется, значит и проблемы нет. Вы понимаете, что если хотя бы раз оно используется, то уже надо что-то делать чтоб заменить плейсхолдеры?

Information

Rating
4,494-th
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity