我正在使用MySQL数据源进行一些测试,并在SQL查询中使用:
// my query goes here...
WHERE $__timeFilter(time_start);
它生成如下内容:
WHERE time_start >= FROM_UNIXTIME(1505207821) AND time_start <= FROM_UNIXTIME(1505229421);
是否有任何变量可以让我访问定义时间范围的2个时间戳?
例如,在上面的例子中:
from = 1505207821
to = 1505229421
SELECT * FROM table和SELECT * FROM table WHERE 1
有什么区别?
查询1:
SELECT * FROM table
记录数: 103
加载时间: 0.0005秒
查询2:
SELECT * FROM table WHERE 1
记录数: 103
加载时间: 0.0003秒
问题1:如果加载相同的数据,这两个查询之间有什么区别。问题2:如果加载相同的数据,为什么会有如此大的时间差。问题3:为什么phpmyadmin默认加载SELECT * FROM table WHERE 1查询?问题4: MySQL在MySQL查询缓存中对上述查询做了什么?
我刚刚发现使用InnoDB引擎的MySQL的以下行为。有没有办法解释执行时间上的显著差异?
第一个查询:
SELECT ask FROM history_time WHERE ask> 1.5790 AND timestamp BETWEEN 1207000800290 AND 1207690900290
执行时间:0.715秒
EXPLAIN: '1', 'SIMPLE', 'history_time', 'range', 'PRIMARY,timestamp,ask,ask_2
我们有一个MySQL数据库,用于测量自动化测试的成功和失败。现在我们需要查询数据库,找出每天有多少故障发生,原因是什么。到目前为止,我提出的问题如下:
select * from failures
where time >= '{time}' and time <= '{time} 23:59:59' and cause = '{fail_type} failed'
这个查询有几个变体。我遇到的问题是,我们需要在数据库中查询1、7和56天的这些信息。这意味着我分别运行了1次、7次和56次查询。随着数字的增加,查询的时间变得非常长。我
我有一个有数百万行的表,包括一个日期和一个时间列。
更改表结构不是一个选项,尽管添加新索引是可能的。
考虑到这个查询:
SELECT * FROM Table WHERE TIMESTAMP(Date, Time) BETWEEN 'X' AND 'Y';
我有日期和时间列的索引,也有日期和时间列的索引,但是当我使用时间戳函数时,查询不使用索引。
问题是,我能否建立一个使用时间戳函数(而不是数据类型)的索引。如果没有,是否可以将上面的查询更改为使用索引?
我试图保持查询的简洁性,并尽量避免重复每个日期(如果可能的话)。
编辑:
因此,由于MySQL不支持表达式索
我正在使用Grafana中的状态映射面板,以便实时显示某些机器的状态。所需时间范围为8小时,数据必须每1秒显示一次.我使用MySQL作为数据库,我的查询如下所示:
SELECT
$__timeGroupAlias(creation_date,1s,previous),
Workplace AS metric,
MachineState
FROM fahrtenschreiber
WHERE
$__timeFilter(creation_date) AND Area = 'Bereich_Vorhobel'
GROUP BY 1,2
ORDER BY Sortn
我有一个mysql查询来获取会话的总时间。查询是
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF(end_time,start_time)))) as total FROM session where helper_mode = 1
当我在mysql中运行这个查询时,我得到的正确结果如下
total
35:34:27
但是,当我使用django游标运行相同的查询时,我得到的异常如下
时间必须在0.23
我的质问是
cursor = connection.cursor()
cursor.execute("SELECT SEC_TO_T
假设我有一个表foo(bar:int),在bar上有一个普通的btree索引,该表包含100行( bar的值从2到101)。在运行以下查询时,MySQL如何决定首先执行>=还是<=?
SELECT bar from foo where bar BETWEEN 0 AND 1
如果它执行了>=,那么它将扫描所有100行。另一方面,如果它执行<=,它将执行0次扫描。有没有办法指定先做哪件事?
对于在包含多年历史数据的非常大的表上的datetime范围查询,以及请求的时间范围接近当前时间的情况下,这一点尤其相关。如果它首先执行<=,那么将对多年的数据进行大规模扫描。例如
我在MySQL中的一个查询在执行时花费了太多时间。在这个查询中,我使用In操作符从MySQL数据库中获取数据库。
我的问题是:
SELECT *
FROM databse_posts.post_feeds
WHERE
post_id IN (SELECT post_id FROM database_users.user_bookmarks where user_id=3) AND
post_date < unix_timestamp();
在这种情况下,两个单独的查询的执行时间都非常短,如下所示
SELECT post_id FROM database_users.use
现在,我在Mysql中有3列的表。
DocId Int
Match_DocId Int
Percentage Match Int
我正在存储文档id和它的几乎重复的文档id和百分比,这表明两个文档的匹配有多紧密。
因此,如果一个文档有100个几乎重复的,那么对于特定的文档,我们有100行。
目前,这个表有10亿多个记录,总共有1400万份文件。我预计文件总数将达到3000万份。这意味着,我的表存储了接近重复的信息,将有超过50亿行,可能会更多。(与总文档集相比,几乎重复的数据呈指数增长)
以下是我的几个问题:
获取mysql表中的所有记录需要花费大量时
我目前有两个查询,一个显示所有数据(不管时间),另一个考虑时间框架。我试图将这些压缩到一起,并想知道mysql是否为dateTimes提供了充当"allTime“变量的东西,即插入:
select count(*) from table where (color = "red") and (dateMade between "allTime" and "allTime");
将显示表中所有行的颜色为红色的行数。我想出了一个解决方案,就是只使用0000-01-01 :00:00的最低日期和一些大的结束绑定日期,但是如果已经有什么可以解决这个
我使用下面的MySQL查询从记录不足30天的表中获取数据。
$query1 = "SELECT * FROM $table WHERE user_id = '{$_SESSION['id']}' AND date > NOW() - INTERVAL 30 DAY ORDER BY date DESC";
但是,现在我需要选择表中的所有结果,其中日期在当前日期之后的30天内?我把我的日期作为约会的时间。有人能告诉我怎么做吗?
我有一个包含项目数据的数据库表,每个项目都有一条记录。在下面的一些样本数据中,持续时间以月为单位,目前限制为最大。240,但理论上可以是无限的:
id name amount start_date duration
1 Project A 9.000 2013-06-24 3
2 Project B 5.000 2013-07-13 2
3 Project C 15.000 2013-08-06 3
现在,我希望MySQL返回每个项目的每月金额:金额除以从start_date所在的月份开始的每个月的持续时间。因此,基于以上数据,M
我在雪花中有一个包含基于时间的事件数据的表,其中有不同的列,还有一个时间戳类型的_timestamp列。_timestsamp列也是该表的群集键。
该表中一个非常基本的用法是查看最新的100个事件:
SELECT * FROM table ORDER BY _timestamp desc limit 100
但是,在中等的WH上,这个查询非常慢。(60+秒,记录几百毫安)。
查看查询概要文件,它似乎没有对分区进行修剪,这意味着雪花在执行限制之前对整个数据集进行排序。我设想微分区是排序的,或者至少包含元数据,这些元数据只允许查看具有最新时间戳的分区。
在Postgres/MySQL中,这个查询与
我有一个查询,每天从我的数据库中计算"Xp“的差异,这一切都像它应该工作,但它从午夜到午夜分组,我想做的是分组3am到3am
然而,我认为我可能遇到的另一个问题是,我的查询可能并不总是在凌晨3点准确地第二行,因为它必须运行一个巨大的查询,并根据用户配置文件从另一个网站检索数据,所以它应该在凌晨3点之后获取所有数据,但可能在凌晨4点或其他时间之前,所以它有足够的时间获取所有行。
我目前的mysql是:
SELECT FROM_UNIXTIME(date, '%Y%m%d') AS YYYYMMDD, MAX(xp)-MIN(xp) AS xp_gain
FROM skil
我有一个MySQL表,其中一行使用当前的unixtime填充(让我们称之为'unixtime')。我需要选择值,但在查询中使用日期时间格式。
例如:
SELECT * from test where unixtime>"2017-01-06 12:00" AND unixtime<"2017-01-08 12:14"
注:日期时间范围可能不同。
非常感谢!
我是mysql用户,我有这样的数据源
User_id | Order_id | Status_id | createdAt | Transaction_Amount
user_id作为用户,order_id作为订单的id,status_id作为每个订单的状态,createdAt作为事务的日期。
在MySQL中,我将用户的情况划分为4种情况。
条件1 new_user
the user who doing FIRST transaction in date range, and not doing transaction before the date range
条件2 rep
我想将时间序列存储在MySQL数据库中。我想用线性的方式来做,也就是说,每一行代表一个独特的观察(1度量,1站点,1时间戳)。目前,它将需要84 096 000行,并且每年大约会增长2 102 400行。
为了正确设计时间序列表、索引和相关查询,必须采取哪些预防措施(基本上是确定测量、地点和时间范围的数据的选择)。
编辑:
增加表格设计方案:
CREATE TABLE TimeSeries(
Id INT NOT NULL AUTO_INCREMENT,
MeasureTimeStamp DATETIME N