首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql数据库时间类型datetime、bigint、timestamp的查询效率比较

作者 | 哒波甜 来源 | https://juejin.cn/post/6844903701094596615 数据库中可以用datetime、bigint、timestamp来表示时间,那么选择什么类型来存储时间比较合适呢...前期数据准备 通过程序往数据库插入50w数据 数据表: CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `time_date...sql查询速率测试 通过datetime类型查询: select count(*) from users where time_date >="2018-10-21 23:32:44" and time_date...,性能bigint > datetime > timestamp sql分组速率测试 使用bigint 进行分组会每条数据进行一个分组,如果将bigint做一个转化在去分组就没有比较的意义了,转化也是需要时间的...,使用4个字节保存比较节省空间,但是只能记录到2038年记录的时间有限 - END -

2.6K30

oracle、mysql 分页查询比较

对于第一个查询语句,第二层的查询条件WHERE ROWNUM <= 40就可以被Oracle推入到内层查询中,这样Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询将结果返回了。...上面分析的查询不仅仅是针对单表的简单查询,对于最内层查询是复杂的多表联合查询或最内层查询包含排序的情况一样有效。 下面简单讨论一下多表联合的情况。...* FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 2、 MySQL的分页查询语句 在PhpMyAdmin里执行如下SQL: SELECT...SELECT pid FROM `cdb_posts` ORDER BY pid LIMIT 1000000 , 1 ) LIMIT 30 同样多执行几次,避免Cache等影响,取平均值,其执行时间大约为...1000000 , 1(6.7732 秒) SELECT pid FROM `cdb_posts` ORDER BY pid LIMIT 1000000 , 1(0.5838 秒) 有网友说如果是MySQL

2.6K80
您找到你想要的搜索结果了吗?
是的
没有找到

oracle、mysql 分页查询比较

对于第一个查询语句,第二层的查询条件WHERE ROWNUM <= 40就可以被Oracle推入到内层查询中,这样Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询将结果返回了。...上面分析的查询不仅仅是针对单表的简单查询,对于最内层查询是复杂的多表联合查询或最内层查询包含排序的情况一样有效。 下面简单讨论一下多表联合的情况。...* FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 2、 MySQL的分页查询语句 在PhpMyAdmin里执行如下SQL: SELECT...SELECT pid FROM `cdb_posts` ORDER BY pid LIMIT 1000000 , 1 ) LIMIT 30 同样多执行几次,避免Cache等影响,取平均值,其执行时间大约为...1000000 , 1(6.7732 秒) SELECT pid FROM `cdb_posts` ORDER BY pid LIMIT 1000000 , 1(0.5838 秒) 有网友说如果是MySQL

2.7K90

mysql 字段时间类型的比较

字段的时间类型分为: ,,,,; 下面就分别介绍这几种时间类型的区别 每个时间类型都有一个有效范围和一个零值,当指定的类型的值超过有效范围时,就会使用零值 YEAR 该类型表示年,格式为 有三种表示方法...2000-2069,若插入70-99则表示为1970-1999.如输入22保存为2222,输入88保存为1988.如果是0则表示为0000.注意该处和字符串的情况不一样 TIME 该类型表示时:分:秒,尽管时间范围为...0~23,但是为了表示某些特殊的时间,mysql将小时的范围扩大了,并且支持负值。...哈哈,到年后就别用这个类型了 这只是一个简单的区分说明,具体时间类型的说明 请参考 官方文档 https://dev.mysql.com/doc/refman/5.7/en/date-and-time-types.html

4.6K80

MYSQL 数据库时间字段 INT,TIMESTAMP,DATETIME 性能效率比较

原文 | http://1t.click/FAB 在数据库设计的时候,我们经常会需要设计时间字段,在 MYSQL 中,时间字段可以使用 int、timestamp、datetime 三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高...直接和时间比较)> UNIXTIMESTAMP(datetime) 。...对于 MyISAM 引擎,建立索引的情况下,效率从高到低:UNIXTIMESTAMP(timestamp) > int > datetime(直接和时间比较)>timestamp(直接和时间比较)>UNIXTIMESTAMP...对于 InnoDB 引擎,没有索引的情况下(不建议),效率从高到低:int > UNIXTIMESTAMP(timestamp) > datetime(直接和时间比较) > timestamp(直接和时间比较...对于 InnoDB 引擎,建立索引的情况下,效率从高到低:int > datetime(直接和时间比较) > timestamp(直接和时间比较)> UNIXTIMESTAMP(timestamp) >

6.8K30

mysql数据库高级查询相对比较全的练习题

).push({ google_ad_client: "ca-pub-6940460185323525", enable_page_level_ads: true }); 设有一数据库...表1-1数据库的表结构 表(一)Student (学生表) 属性名 数据类型 可否为空 含 义 Sno Char(3) 否 学号(主码) Sname Char(8) 否 学生姓名 Ssex...Char(2) 否 教工性别 Tbirthday datetime 可 教工出生年月 Prof Char(6) 可 职称 Depart Varchar(10) 否 教工所在部门 表1-2数据库中的数据...(子查询或者排序) 11、 查询每门课的平均成绩。 12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。 13、查询分数大于70,小于90的Sno列。...34、 查询所有任课教师的Tname和Depart. 35 、 查询所有未讲课的教师的Tname和Depart. 36、查询至少有2名男生的班号。 37、查询Student表中不姓“王”的同学记录。

1.7K20

MYSQL数据库-复合查询

MYSQL数据库-复合查询 零、前言 一、基本查询 二、多表查询 三、自连接 四、子查询 1、单行子查询 2、多行子查询 3、多列子查询 3、在from子句中使用子查询 五、合并查询 1、union 2...、union all 零、前言 本章主要讲解学习MYSQL数据库中的复合查询,前面我们讲解的mysql表的查询都是对一张表进行查询,在实际开发中这远远不够 一、基本查询 示例: 查询工资高于500...worker,给自己的表起别名,因为要先做笛卡尔积,所以别名可以先识别 四、子查询查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询 1、单行子查询 返回一行记录的子查询...,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句 示例:查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人 3、在from...子句中使用子查询查询语句出现在from子句中。

13.2K30

Mysql数据库-子查询

Mysql数据库-子查询 1. 什么是子查询 # 子查询定义 ## B语句作为A语句的一部分,B语句是select查询语句,那么B语句称之为子查询,内层查询(子集,subquery) -- 1....查询emp表的最高工资salary,然后再根据最高工资salary查询员工的信息 -- 2.1 通过max(salary)可以查询出emp表的最高工资为9000 mysql> select max(salary...查询部门平均工资超过全公司平均工资的部门id和部门平均工资 -- 3.1 先查询公司平均工资 mysql> select avg(salary) from emp; +-----------------...查询工资大于5000的员工,来自于哪些部门的名字 -- 1.1 首先查询salary>5000的部门ID,列子查询(多行单列) mysql> select dept_id from emp where...查询开发部与财务部所有的员工信息 -- 2.1 查询出 开发部 与 财务部 的部门ID mysql> select id from dept where name = '开发部' or name = '

45.5K10

MySQL数据库查询

SQL语句,子查询被嵌入到一对小括号里面 数据库设计之三范式 1、数据库设计之三范式的介绍 范式: 对设计数据库提出的一些规范,目前有迹可寻的共有8种范式,一般遵守3范式即可。...5、E - R模型的介绍 E-R模型即实体-关系模型,E-R模型就是描述数据库存储数据的结构模型。...E-R模型由 实体、属性、实体之间的关系构成,主要用来描述数据库中表结构。...开发流程是先画出E-R模型,然后根据三范式设计数据库中的表结构 外键SQL语句的编写 1、外键约束作用 外键约束:对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败...create database jing_dong charset=utf8; -- 使用 "京东" 数据库 use jing_dong; -- 创建一个商品goods数据表 create table

18.5K20

数据库MySQL查询优化

MySQL发送查询请求,到底做了什么工作? 下图是MySQL查询执行流程图: ? •客户端发送一条查询给服务器。•服务器先检查查询缓存,如果命中了缓存,则立刻返回查询在缓存中的结果。...•MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询。•将结果返回给客户端。 是什么导致MySQL查询变慢了?...对于MySQL,最简单的衡量查询开销的三个指标如下: •响应时间•扫描的行数•返回的行数 没有哪个指标能够完美地衡量查询的开销,但它们大致反映了MySQL在内部执行查询时需要访问多少数据,并可以大概推算出查询运行的时间...2.关联子查询 MySQL的子查询实现是非常糟糕的。...不要将空的变量值直接与比较运算符(符号)比较。 如果变量可能为空,应使用 IS NULL 或 IS NOT NULL 进行比较,或者使用 ISNULL 函数。 5.

13.4K10

MySQL数据库——连接查询

概述: 连接查询的作用将多张表进行内容上的连接,查看数据时可以同时看到多张表的多个数据 连接查询的分类 内连接查询 左连接查询 右连接查询 自连接查询 语法 #内连接 SELECT * FROM...inner join 实现多表查询查询共有记录。...SELECT * FROM 表1 inner join 表2 on 表1.字段=表2.字段 左连接查询 left join 以左表为主,查询右表的数据。若右表不存在数据,则返回null。...SELECT * FROM 表1 left join 表2 on 表1.字段=表2.字段 右连接查询 right join 以右表为主,查询左表的数据。若左表不存在数据,则返回null。...SELECT * FROM 表1 right join 表2 on 表1.字段=表2.字段 自连接查询 inner join 左表和右表是同一个表,查询两个表中的数据。

53.8K85

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券