X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Типы данные в MySQL
Гость_Quber_*
сообщение 2013-04-25, 8:29
Сообщение #1



Гости





Собственно Datetime или Timestamp?
Насколько я знаю, у обоих типов данных есть свои плюсы. В eleanor наблюдается Timestamp. В других движках наблюдаются разные варианты и так и так. Похоже, что разработчики разделились в этом вопросе.
Timestamp, насколько я знаю ввели для того, чтобы можно было легко управлять часовыми поясами. Да и вес в 4 байта по сравнению с 8 байтами Datetime лучше. Но всё же, каково Ваше мнение? Что лучше и почему?

P.S. Пожалуйста, не оставляйте варианты типа "а вон тот круче и ниипёт" :) Принимаются здравые доводы.

Сообщение отредактировал Quber - 2013-04-25, 9:11
Перейти в начало страницы
+Цитировать сообщение
LuxCore
сообщение 2013-04-25, 9:26
Сообщение #2
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 278
Регистрация: 2011-11-09

Репутация:   нет  
Всего: нет


При использовании Timestamp у Вас не будет болеть голова о том, для какого часового пояса Вы пишете код. Применение, DateTime, я думаю, более узкое, например, Вы пишете код для кого-то, кто находится там же, где и Вы (например, Украина), и в другом часовом поясе не будет использоваться этот код. Либо DateTime можно использовать в рамках какого-либо предприятия. Если предполагается, что Ваше приложение будут просматривать люди из разных часовых поясов, то уж лучше использовать TimeStamp. Тем более, что ограничения с этого типа будет снято в нужный момент.
Вот полезная статья, кстати, http://habrahabr.ru/post/61391/

Сообщение отредактировал LuxCore - 2013-04-25, 9:27
Перейти в начало страницы
+Цитировать сообщение
Гость_Quber_*
сообщение 2013-04-25, 9:30
Сообщение #3



Гости





Цитата (LuxCore @ 2013-04-25, 10:26)
При использовании Timestamp у Вас не будет болеть голова о том, для какого часового пояса Вы пишете код. Применение, DateTime, я думаю, более узкое, например, Вы пишете код для кого-то, кто находится там же, где и Вы (например, Украина), и в другом часовом поясе не будет использоваться этот код. Либо DateTime можно использовать в рамках какого-либо предприятия. Если предполагается, что Ваше приложение будут просматривать люди из разных часовых поясов, то уж лучше использовать TimeStamp. Тем более, что ограничения с этого типа будет снято в нужный момент.
Вот полезная статья, кстати, http://habrahabr.ru/post/61391/


Честно сказать, прочитал эту статью перед созданием поста :) А как же выборка, ведь в Datetime будет быстрее если мы хотим сделать её по дням или месяцам например. Или я ошибаюсь?
В комментариях к статье кстати мнения разделились.

Сообщение отредактировал Quber - 2013-04-25, 9:32
Перейти в начало страницы
+Цитировать сообщение
Гость_Quber_*
сообщение 2013-04-25, 9:41
Сообщение #4



Гости





http://habrahabr.ru/post/69983/ Вот хороший пост нашёл на эту тему. Ответ там же.

Цитата
TIMESTAMP. Рассматривать его надо в сравнении с DATE и DATETIME: TIMESTAMP тоже предназначен для хранения даты и/или времени происхождения неких событий. Важное отличие между ними в диапазонах значений: очевидно, что TIMESTAMP не годится для хранения исторических событий (даже таких, как дни рождений), но отлично подходит для хранения текущих (логирование, даты размещения статей, добавления товаров, оформления заказов) и предстоящих в обозримом будущем событий (выходы новых версий, календари и планировщики и т.д).

Основное удобство использования типа TIMESTAMP состоит в том, что для столбцов этого типа в таблицах можно задавать значение по умолчанию в виде подстановки текущего времени, а так же установки текущего времени при обновлении записи. Если вам требуется эти возможности, то с вероятностью 99% TIMESTAMP — именно то, что вам нужно. (Как этоделать, смотрите в мануале.)

Итак, тип TIMESTAMP используем для хранения дат и времени свершения событий нашего времени, а DATETIME и DATE — для хранения дат и времени свершения исторических событий, или событий глубокого будущего.


Сообщение отредактировал Quber - 2013-04-25, 9:41
Перейти в начало страницы
+Цитировать сообщение
LuxCore
сообщение 2013-04-25, 9:49
Сообщение #5
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 278
Регистрация: 2011-11-09

Репутация:   нет  
Всего: нет


Цитата (Quber @ 2024-03-28 20:36)
В комментариях к статье кстати мнения разделились
Ну а как же без этого.
Цитата (Quber @ 2024-03-28 20:36)
А как же выборка, ведь в Datetime будет быстрее если мы хотим сделать её по дням или месяцам например

Цитата (HabraHabr @ )
Napolsky, 5 июня 2009 в 14:32
А мне казалось что по dateTime многие выборки должны идти быстрее. Ведь логично, что например выборка по номеру месяца из записи вида YYYYMMDDHHMMSS должна осуществляться МНОГО быстрее, чем по записи вида timestamp. В случае c timestamp, как я понимаю, приходится каждое поле преобразовывать в дату и только потом производить операцию сравнения условия.

Arekus, 5 июня 2009 в 14:43
нет, не быстрее, так как строка (dt) переводится в число (int) переводится какое-то время, когда ts — это уже число. Речь идет про ограниченные выборки, разумеется.

Т. е. будут ситуации, когда Вам нужно будет выбирать по дням|месяцам|годам в поле TimeStamp либо наоборот (про наоборот я, конечно, и сам задумался :blink: )

Добавлено через 3 минут, 14 секунд:

Цитата (Quber @ 2013-04-25, 10:41)
http://habrahabr.ru/post/69983/ Вот хороший пост нашёл на эту тему. Ответ там же.
Полезно однако. Думаю, при разработке такой специфической исторической проги точно это отличие бы выскочило само по себе :)
Перейти в начало страницы
+Цитировать сообщение
Гость_Quber_*
сообщение 2013-04-25, 10:00
Сообщение #6



Гости





Вопрос решён =)
Перейти в начало страницы
+Цитировать сообщение
Гость_Quber_*
сообщение 2013-04-26, 2:07
Сообщение #7



Гости





А что насчёт varchar (255) vs tinytext ?
Как они поведут себя при полнотекстовом поиске?
Перейти в начало страницы
+Цитировать сообщение
Гость_Quber_*
сообщение 2013-04-29, 1:35
Сообщение #8



Гости





есть кто живой?
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2013-04-29, 3:26
Сообщение #9
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Quber, есть, есть :)
Цитата (Quber @ 2024-03-28 20:36)
Как они поведут себя при полнотекстовом поиске?

По идее одинаково.
Перейти в начало страницы
+Цитировать сообщение

Ответить в данную темуНачать новую тему
0 чел. читают эту тему (гостей: 0, скрытых пользователей: 0)
Пользователей: 0

 
RSS Текстовая версия 0.0345 сек.    11 запросов    GZIP включен    Сейчас: 2024-03-28, 20:36