`

MySQL字段比较:dateime和timestamp

    博客分类:
  • db
 
阅读更多

我相信在绝大部分的mysql应用中,存放日期时间的字段类型都会选择使用datetime或者timestamp类型,datetime的日期范围从1001到9999年,采用8位整数将日期转换为'YYYYMMDDHHMMSS'的形式进行存放.timestamp就是unix时间戳(1970-2038),采用4为整数进行存储,并且默认提供自动更新功能.所以,很多人或者文章都会说在时间范围允许的情况下最好采用timestamp进行日期类型值得存储.

 

我做了对于datetime和timestamp字段进行不同情况下的查询操作的benchmark(使用jdbc作为app层进行数据获取),得到如下结果:

无索引


 有索引


 

得出结论:如果在查询时以unix时间戳形式获取数据,那么查询效率会更高,因为timestamp的存储就是时间戳,无需转换,而如果要获取时间的ansic格式,datetime将会更快,因为其存储格式和ansic格式就很接近了.如果要考虑到硬盘存储空间,显然是timestamp更小,但是对于100w数据,也只是小4m左右,所以对于现在时间的宝贵性,硬盘空间的价值就显得不那么重要了

  • 大小: 66.2 KB
  • 大小: 67 KB
分享到:
评论

相关推荐

    MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数

    在MySQL 5.6中,`TIMESTAMP`数据类型和`explicit_defaults_for_timestamp`参数是数据库管理和时间戳处理的关键元素。`TIMESTAMP`通常用于记录数据记录的创建或修改时间,而`explicit_defaults_for_timestamp`参数则...

    MySQL字段类型说明

    MySQL 字段类型说明 ...MySQL 字段类型可以分为数字类型、日期和时间类型以及字符串(字符)类型,每种类型都有其特点和应用场景,了解这些类型的特点和应用场景可以帮助开发者更好地设计和优化数据库结构。

    MySQL 字段约束 mysql学习笔记

    但是,在自增列和 TIMESTAMP 字段中,这个规则并不适用。向这些字段中插入 NULL 值将会导致插入下一个自动增加的值或者当前的时间戳。 DEFAULT 修饰符 DEFAULT 修饰符可以为字段设定一个默认值。当插入记录时,...

    Mysql中的Datetime和Timestamp比较

    下面将详细介绍`DATETIME`和`TIMESTAMP`的比较,并讨论它们的使用场景和时间格式。 1. **相同点**: - `DATETIME`和`TIMESTAMP`都可以用来存储日期和时间信息,以字符串的形式展示。 - 它们都可以精确到秒,但不...

    MySQL字段类型列表

    在MySQL中,字段类型决定了数据的存储方式、大小和格式。以下是对MySQL5中常见字段类型的详细说明: 1. **整数类型**: - `TINYINT`: 存储范围为-128到127,占用1字节空间。 - `SMALLINT`: 存储范围为-32768到...

    MySql示例1:创建账户表及测试数据.zip

    MySQL是世界上最流行的开源关系型数据库管理系统之一,广泛应用于各种规模的企业和项目中。在这个名为"MySql示例1:创建账户表及测试数据.zip"的压缩包中,我们很显然会发现一个关于如何在MySQL中创建账户表并填充...

    mysql 自增长 时间字段

    MySQL 自增长时间字段详解 ...本文详细介绍了 MySQL 中的自增长和时间字段的使用方法,包括自增长字段、时间字段、默认值和时间类型等。这些技术可以帮助我们更好地管理和记录数据,提高数据库系统的效率和可靠性。

    MySql字段类型

    - TIMESTAMP:也存储日期和时间,但与DATETIME不同的是,它通常与系统时间关联,可以自动更新。 4. NULL值: NULL在MySQL中表示未知或未定义的值,与0或空字符串不同,NULL是一种特殊的标记,无法与其他值进行...

    MySQL数据库:表的字段类型.pptx

    数据库和表的创建与管理 表的字段类型 ...表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。 每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使

    MySql所有字段类型及长度范围

    ### MySQL所有字段类型及长度范围详解 在数据库设计与应用开发过程中,选择合适的字段类型对于确保数据的准确存储和高效处理至关重要。MySQL提供了丰富的数据类型,涵盖了数字、字符串、日期时间等多种类别,满足了...

    北京时间日期转时间戳、时间戳转北京时间日期

    timeStamp: 1325347200; time: 2012-01-01 00:00:00 timeStamp: 1538409599; time: 2018-10-01 23:59:59 timeStamp: 888645574; time: 1998-02-28 13:59:34 timeStamp: 1582991999; time: 2020-02-29 23:59:59 ...

    spirng-boot 的时间类型(date、datetime、timestamp)的全局配置

    总结,Spring Boot的时间类型全局配置和MySQL时间字段的设置都是为了简化日期和时间的处理,提高代码的可读性和维护性。通过合理配置,我们可以确保在应用和数据库之间进行高效、一致的时间数据交换。在实际开发中,...

    mysql时间类型对应的java类型1

    MySQL数据库提供了多种时间类型来处理日期和时间数据: 1. **DATE**:这个类型仅存储日期,格式为'YYYY-MM-DD',不包含时间部分。在Java中,对应的类型是`java.sql.Date`,它表示没有时间部分的日期。 2. **TIME**...

    MySQL开发实战:电子商务订单系统数据库开发的实验心得与案例解析

    - **数据模型设计**:明确每个表的目的和字段的定义,确保数据之间的关联逻辑清晰。 - **索引策略**:合理地使用索引可以显著提高查询速度,但过多的索引也会增加插入和更新的成本。 ##### 2.2 SQL查询优化 编写...

    Mysql字段类型说明

    MySQL是一种广泛使用的开源关系型数据库管理系统,其字段类型是数据库设计中的重要概念,它决定了数据存储的格式和特性。理解并正确选择字段类型对于优化数据库性能、节省存储空间以及确保数据准确性至关重要。以下...

    C#更新SQLServer中TimeStamp字段(时间戳)的方法

    本文将深入探讨如何在C#中读取和更新SQL Server中的Timestamp字段。 首先,时间戳(TimeStamp)字段在SQL Server中实际上是变长的二进制数据,它不表示特定的时间点,而是表示自表创建以来数据行的更改次数。由于它...

    mysql的字段类型及简单的操作命令

    * Timestamp:一种时间戳类型,格式为 YYYYMMDDHHMMSS,用于存储时间戳信息。 字符串类型 MySQL 中有多种字符串类型,每种类型都有其特点和使用场景。 * Char:一种固定长度的字符串类型,最大长度为 255 个字符...

    关于Hinbernate中TimeStamp类型字段处理的小例子

    本文将详细探讨在Hibernate中处理Timestamp类型字段的一些关键知识点,结合给出的"关于Hibernate中Timestamp类型字段处理的小例子"的标题,我们将深入理解Timestamp类型的特性和在Hibernate中的使用。 1. **...

    mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法

    在MySQL中,`TIMESTAMP`字段允许最小值'1970-01-01 00:00:01'和最大值'2038-01-19 03:14:07',但'0000-00-00 00:00:00'是作为一个特殊的无效日期值存在。当你试图插入一个非有效日期或者不指定日期时,某些情况下,...

Global site tag (gtag.js) - Google Analytics