За последние 24 часа нас посетили 20669 программистов и 1828 роботов. Сейчас ищут 1009 программистов ...

Обновление даты в БД

Тема в разделе "MySQL", создана пользователем Deonis, 15 янв 2016.

  1. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Всем привет! Всё вроде бы очевидно, но хочу перестраховаться.
    Тип поля - "TIMESTAMP" с атрибутом "ON UPDATE CURRENT_TIMESTAMP". Раньше обновлял дату обычным способом:
    Код (PHP):
    1. UPDATE `tbl_name` SET `ts_field` = NOW() WHERE `some_id` = ?
    Сейчас "изобрел колесо" и делаю это так:
    Код (PHP):
    1. UPDATE `tbl_name` SET `ts_field` = NULL WHERE `some_id` = ?
    По понятным причинам работает быстрее, но нет ли в таком способе подводных камней?
     
  2. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    UPDATE .. SET id=id ... ?
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    не об этом спрашивают. внимательнее.

    с чего бы это работает быстрее? увидеть что поле пустое и получить дефолтное значение вызовом функции или получить значение вызовом функции. может быть функции немного разные точки входа имеют, но имхо там погрешность не такая чтоб говорить "по понятным причинам быстрее".
    есть, но не в таком виде.
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    По крайней мере, я протестировал оба варианта и, пусть небольшой прирост без функции, но есть (-0,1275 сек на 500К записях). В какой-то другой ситуации, я бы сам назвал это экономией на спичках, но проект, над которым работаю, а точнее занимаюсь оптимизацией уже существующего, достаточно нагруженный, при этом был написан очень похабно, жутко тормозил и теперь, во время его "лечения" стараюсь выкраивать доли секунд в любом месте, где это можно.
    Если можно, то в двух словах... чтоб врасплох не застало
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Дети, никогда не делайте автоматическое обновление даты в бд на апдейте строки =) Не дай божэ вам там что-то потом где-то невовремя поменять или переименовать или переприсвоить... Всем датам кранты в один момент.
     
  6. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Хорошо, папенька, будем стараться ;)