Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在MySQL中使用时间而不是字符串CURRENT_DATE是一个好主意吗?_Php_Mysql - Fatal编程技术网

Php 在MySQL中使用时间而不是字符串CURRENT_DATE是一个好主意吗?

Php 在MySQL中使用时间而不是字符串CURRENT_DATE是一个好主意吗?,php,mysql,Php,Mysql,我决定在MySQL中使用时间而不是字符串日期,但我想知道这是否是一个好主意。例如,我使用: 1268557200 而不是: Sun, 14 Mar 2010 09:00:00 GMT 谢谢。当然是特殊类型的更好。数据库针对此类类型进行了优化。例如,您的字符串中有很多字符,日期类型在内部是int或long,只需要4或8个字节。通常使用最接近您试图存储的数据的类型最有意义。也就是说,如果数据是面向日期的,则使用面向日期的字段。它们在内部以数字的形式存储,这在访问、存储、排序等方面比字符串快得多。

我决定在MySQL中使用时间而不是字符串日期,但我想知道这是否是一个好主意。例如,我使用:

1268557200
而不是:

Sun, 14 Mar 2010 09:00:00 GMT

谢谢。

当然是特殊类型的更好。数据库针对此类类型进行了优化。例如,您的字符串中有很多字符,日期类型在内部是int或long,只需要4或8个字节。

通常使用最接近您试图存储的数据的类型最有意义。也就是说,如果数据是面向日期的,则使用面向日期的字段。它们在内部以数字的形式存储,这在访问、存储、排序等方面比字符串快得多。其优点是,您可以像访问字符串一样访问(输入和输出),但它们的工作方式和排序方式与数字类似


重要的一点是不要在查询中使用日期数学。在编写SQL之前,在代码中进行计算(添加天数、减去小时等)。这使您可以充分利用索引、查询缓存等功能。有一些优化可以让您不必将日期数学留在SQL中,但陷阱可能并不明显。因此,除非你确定你所做的是优化的,否则一个好的经验法则就是不要在SQL中进行计算。

你会将整数存储在varchars中并每次解析吗?不,我会将整数存储在int中这就是精神:)mysql为你想要使用的确切类型提供了大量优化和实用程序。如果使用数据类型而不是它们的本意,那么就很少有优势了