Возможный дубликат:
datetime vs timestamp?
У меня есть таблица Mysql, в которой есть столбец add_date
. Он отслеживает дату / время, когда запись была добавлена в базу данных.
Запросы, основанные на этой таблице:
Что было бы лучше в этом случае – timestamp unix или datetime?
Сейчас я использую оба, но поскольку таблица будет иметь миллионы записей с течением времени, наличие обоих столбцов может повлиять на размер базы данных.
Временная метка Unix, по-видимому, лучше для преобразования в формат 2 hours
назад в PHP, а также независимая от часовой пояс. Но datetime имеет лучшую читаемость, и сделать запрос для конкретной даты / времени / года представляется проще.
Ваше предложение?
Когда у вас будет выбор, я бы сказал, что выходите на даты mySQL.
Вам не придется заботиться о выпуске диапазона дат
Вы можете легко запросить промежутки времени, используя функции даты BETWEEN(), DATE_ADD
( BETWEEN(), DATE_ADD
и т. Д.).
Запросы, связанные с датой, будут намного быстрее, особенно когда у вас есть миллионы записей, потому что вам не придется использовать FROM_UNIXTIME()
которые могут быть дорогими в больших запросах
Это детская игра для преобразования полей DATE в временные метки UNIX, когда это необходимо.
Я бы пошел для форматов mysql, просто потому, что mysql имеет множество функций datetime, чтобы использовать, что с timestamp будет стоить вам другого преобразования.
но поскольку таблица будет иметь миллионы записей с течением времени, наличие обоих столбцов может повлиять на размер базы данных.
о мой.
вы действительно обеспокоены в 4 дополнительных мегабайтах пространства?
Вы можете получить лучшее из обоих миров, используя from_unixtime()
метку unix и from_unixtime()
MySQL from_unixtime()
для преобразования результата в формат даты и времени, где это необходимо.