我需要在MySQL 5数据库中表示任务的到期时间
然后,我需要存储这样的时间:
_ 18
_ 9:15
_ 12:00
现在我处于两难境地,无论是使用时间数据类型还是仅使用4位整数,因为我只需要存储小时和分钟。
在第二种情况下,我会存储:
_ 1800
_ 0915
_ 1200
两种方法的含义是什么?
鉴于最重要的要求是在庞大的数据集(数百万行)中具有高性能,您会实施哪种解决方案?
应用程序代码是用PHP编写的。
编辑:我在想一个重点。如果我使用整数,我需要在显示时间(插入分号)时使用PHP进行一些字符串操作,这可能会使用整数使增益无效
谢谢,
丹
答案 0 :(得分:10)
使用time
数据类型。主要的好处是重用MySQL中嵌入的现有时间函数。
使用smallint
(仅2个字节)在空间方面可能更有效,但是您将无法使用现有函数对语义为time
值的字段进行操作。我可以将格式化函数,时差,时区视为可以立即利用time
数据类型的场景示例。
答案 1 :(得分:5)
MySQL的TIME
数据类型只需3个字节。用它。
http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html