文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL查询时间段用INT还是DateTime比较好

2024-04-02 19:55

关注

本篇内容主要讲解“MySQL查询时间段用INT还是DateTime比较好”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL查询时间段用INT还是DateTime比较好”吧!

  MySQL查询时间段使用INT还是DateTime

  针对此问题,下面将做一个测试,看看MySQL查询时间段究竟应该使用INT还是DateTime。

  环境:

  WindowsXP

  PHPVersion5.2.9

  MySQLServer5.1

  第一步、创建一个表date_test(非定长、int时间)

  CREATETABLE`test`.`date_test`(

  `id`INTNOTNULLAUTO_INCREMENT,

  `start_time`INTNOTNULL,

  `some_content`VARCHAR(255)NOTNULL,

  PRIMARYKEY(`id`)

  )ENGINE=InnoDB;

  第二步、创建第二个表date_test2(定长、int时间)

  CREATETABLE`test`.`date_test2`(

  `id`INTNOTNULLAUTO_INCREMENT,

  `start_time`INTNOTNULL,

  `some_content`CHAR(255)NOTNULL,

  PRIMARYKEY(`id`)

  )ENGINE=InnoDB;

  第三步、创建第三个表date_test3(varchar、datetime时间)

  CREATETABLE`test`.`date_test3`(

  `id`INTNOTNULLAUTO_INCREMENT,

  `start_time`DATETIMENOTNULL,

  `some_content`VARCHAR(255)NOTNULL,

  PRIMARYKEY(`id`)

  )ENGINE=InnoDB;

  第四步、创建第四个表date_test3(char、datetime时间)

  CREATETABLE`test`.`date_test4`(

  `id`INTNOTNULLAUTO_INCREMENT,

  `start_time`DATETIMENOTNULL,

  `some_content`CHAR(255)NOTNULL,

  PRIMARYKEY(`id`)

  )ENGINE=InnoDB;

  ok,现在我们开始做测试,环境是php,先向各个表插入一百万条数据。插入的时候分200次,每次进库5000条。

  MySQL查询时间段使用INT还是DateTime

  表一执行记录:页面运行时间:26.5997889042秒,插入的时候发现一个有趣的现象:SELECTcount(id)FROM`date_test`WHERE1的结果是100w,而直接select*from`date_test`却是1,000,374条结果。(后来看到这是一个可能接近的值,请参看MySQLFAQ3.11)。

  表二执行记录:页面运行时间:62.3908278942秒,这次记录是1,000,066条。

  表三执行记录:页面运行时间:30.2576560974秒,这次的是1,000,224条。

  表四执行记录:页面运行时间:67.5393900871秒,这次的是:1,000,073条。

  现在把四个表的start_time字段一一加上索引。

  测试四个表的更新,分别update100条记录,并记录时间:

  表一:页面运行时间:2.62180089951秒(非定长,int时间)

  表二:页面运行时间:2.5475358963秒(定长,int时间)

  表三:页面运行时间:2.45077300072秒(varchar,datetime时间)

  表四:页面运行时间:2.82798409462秒(char,datetime时间)

  测试四个表的读取,分别select100条随机记录,以主键id为条件查询,并记录时间:

  表一:页面运行时间:0.382651090622秒(非定长,int时间)

  表二:页面运行时间:0.542181015015秒(定长,int时间)

  表三:页面运行时间:0.334048032761秒(varchar,datetime时间)

  表四:页面运行时间:0.506206989288秒(char,datetime时间)

  测试四个表的读取,分别select10条随机记录,以star_time为条件查询,并记录时间:

  表一:页面运行时间:30.1972880363秒(非定长,int时间)

  表二:页面运行时间:65.1926910877秒(定长,int时间)

  表三:页面运行时间:39.7210869789秒(varchar,datetime时间)

  表四:页面运行时间:70.4632740021秒(char,datetime时间)

  因为量比较小,所以我们默认即使是微小的变化,也是有意义的。

  结论:

  大数据量下,如果存在大量的select*fromtablewhere时间>XX这样的查询,在MySQL5.1时使用int换datetime是有意义的。

到此,相信大家对“MySQL查询时间段用INT还是DateTime比较好”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯