За последние 24 часа нас посетили 36272 программиста и 1300 роботов. Сейчас ищут 928 программистов ...

Как лучше хранить время обновления столбца?

Тема в разделе "MySQL", создана пользователем turrel, 22 ноя 2011.

  1. turrel

    turrel Активный пользователь

    С нами с:
    12 июн 2011
    Сообщения:
    65
    Симпатии:
    0
    Всем привет!
    Хочу сделать возможность сортировки строк по времени последнего обновления определенного столбца. Это время хранить буду в той же строке для удобства.

    Вопрос
    Как лучше хранить время обновления столбца: как два столбца date(z) и date(y), или как time()?

    Хотелось бы, чтобы MySQL наилучшим образом быстро делал сортировку/выборки строк по заданным диапазонам времени обновления.
     
  2. Gulfstream

    Gulfstream Активный пользователь

    С нами с:
    3 сен 2011
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    Одесса
    Как TIMESTAMP. Если создадите колонку с типом TIMESTAMP без параметров, то при обновлении информации в строке автоматически будет обновляться время и в колонке с типом TIMESTAMP. Если у вас колонка с типом TIMESTAMP не одна, то для того чтобы время в одной из колонок с типом TIMESTAMP обновлялось автоматически, создавайте ее с параметрами DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP (в таблице может быть только одна колонка типа TIMESTAMP с CURRENT_TIMESTAMP в качестве параметра).
     
  3. turrel

    turrel Активный пользователь

    С нами с:
    12 июн 2011
    Сообщения:
    65
    Симпатии:
    0
    Время последнего обновления у меня записывается средствами PHP, т.к. мне нужно отслеживать изменения только определенных столбцов, а не любых в строке.

    А с точки зрения производительности насколько целесообразно?
    Что, если UNIX тайм обрезать (часы-минуты-секунды), сократив только до дней-лет? Или использовать два столбца где отдельно хранить номер дня и номер года?
     
  4. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    turrel, по памяти напишу, что TIMESTAMP занимает 4 байта, а DATETIME 8 байт, дома есть книжка, могу посмотреть, написать подробнее :)