MySQL DATETIME vs TIMESTAMP vs INT performance and benchmarking with MyISAM
在阅读这篇文章时,你会开始认为使用整数是浪费,而应该选择MySQL Datetime或Timestamp列类型。
然而,在文章末尾,他进行了一次没有使用MySQL函数的测试,你突然看到直接使用INT在搜索Unix时间戳时比两个MySQL选项快2倍。
所以我突然想到 - duh,所有PHP应用程序都使用什么?time()! 几乎每个php应用程序都基于Unix纪元计算逻辑。这意味着大多数查询某个时间段内的结果都是基于time()开始的,然后转换为与MySQL字段配合使用。
这让我有以下想法:
将Unix时间戳存储为INT类型更快,占用空间更少,并且可以与PHP的基于time()的计算原生工作。
MySQL日期类型更适合MySQL侧的操作和逻辑。
目前Unix和MySQL时间戳仅适用于2037年之前,这意味着您必须使用datetime字段来处理未来较大的日期。
使用复制时,像
date = NOW()
这样的MySQL命令可能会滞后,导致数据不一致。
因此,将其应用于实际生活中,我们发现答案是,大多数真正的DBA都会使用更好的引擎,例如PostgreSQL。然而,大多数使用DB逻辑的应用程序可能会选择PostgreSQL。这意味着我们其他程序员只使用MySQL作为数据存储罐(您知道这是真的),这使得保持字段小,快速,UNIX INT似乎实际上是最佳选择。
那么你们觉得呢?
时间戳是否真的比MySQL日期字段更适合PHP应用程序?
time_t
而不是int
。 - sarnoldfrom_unixtime()
。 - JALunsigned int()
,因为它没有任何作用:https://dev59.com/C2855IYBdhLWcg3wiU31 - Xeoncross