MySQL - 最佳数据类型,适用于小时和分钟的简单时间

时间:2010-11-22 17:48:40

标签: mysql performance

我需要在MySQL 5数据库中表示任务的到期时间 然后,我需要存储这样的时间:
_ 18
_ 9:15
_ 12:00

现在我处于两难境地,无论是使用时间数据类型还是仅使用4位整数,因为我只需要存储小时和分钟。
在第二种情况下,我会存储:
_ 1800
_ 0915
_ 1200

两种方法的含义是什么?
鉴于最重要的要求是在庞大的数据集(数百万行)中具有高性能,您会实施哪种解决方案?

应用程序代码是用PHP编写的。

编辑:我在想一个重点。如果我使用整数,我需要在显示时间(插入分号)时使用PHP进行一些字符串操作,这可能会使用整数使增益无效

谢谢,

2 个答案:

答案 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