当前位置: 首页 > 面试题库 >

长时间运行的查询中的SQL NOW()

胡向阳
2023-03-14
问题内容

说我长时间运行更新查询

update some_table 
set modification_time = now() 
where (something incredibly complex);

some_table中的modification_time的值是什么?它们是相同还是不同(例如,执行查询花了2天的时间)。

如果它们不同,如​​何编写此查询以使它们都相同?


问题答案:

它们都是一样的,因为NOW()在查询开始时被锁定了。

答案太短了吗?

好的,更多信息有关NOW()的MySQL参考

NOW()返回一个 恒定时间 ,该时间指示该语句 开始执行的时间
。(在存储的函数或触发器中,NOW()返回函数或触发语句开始执行的时间。)这与SYSDATE()的行为不同,后者返回确切的执行时间。

实际上,阅读SYSDATE()的手动条目实际上更有趣,它包含此代码段

mysql> SELECT NOW(), SLEEP(2), NOW();
+---------------------+----------+---------------------+
| NOW()               | SLEEP(2) | NOW()               |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:36 |        0 | 2006-04-12 13:47:36 |
+---------------------+----------+---------------------+

mysql> SELECT SYSDATE(), SLEEP(2), SYSDATE();
+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(2) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:44 |        0 | 2006-04-12 13:47:46 |
+---------------------+----------+---------------------+

您问什么有意思。.请 注意,您可以 在查询中进入 睡眠状态 ?? 考虑一下此查询(子查询仅模拟一个3记录表)

select *, now(), sleep(2), sysdate()
from (select 1 N union all select 2 union all select 3) M

你得到:

N   now()           sleep(2)  sysdate()
1   2011-04-02 23:55:27   0   2011-04-02 23:55:29
2   2011-04-02 23:55:27   0   2011-04-02 23:55:31
3   2011-04-02 23:55:27   0   2011-04-02 23:55:33


 类似资料:
  • 我有一个简单的查询循环,它在大约93分钟内处理了96,945个文档中的44,000个文档后获得一个MongoCursorNotFoundException。 “做一些事情”部分需要一段时间,这就是为什么整个循环需要这么长时间的原因。 我的问题是,在处理集合中可能一半的文档后,我会得到这个异常。 我正在Windows10笔记本电脑上本地运行客户端应用程序和mongod服务器,通过localhost访

  • 我目前使用的是mysql 我有两个名为person和zim_list_id的表,这两个表都有超过200万行

  • 当我在查询浏览器和我的应用程序中运行相同的查询时,我会得到很大的时间差。查询浏览器运行查询只花了2秒。但在我的应用程序中,它需要20秒。实际上,我正在处理12L的记录。我使用的是sql server数据库,在我的应用程序中使用了本机sql(JDBC)API。我指的是natve语句和resultSet API来获取记录。我在这里复制了我的代码片段。 另外,我使用了相同的查询条件与相同的用户。 我的代

  • 没有一个参数帮助我们在较短的时间内解决查询。

  • 问题内容: 我正在通过命令行PHP脚本运行mysql查询(使用mysqlnd驱动程序上的PDO进行预查询)。这是一个简单的查询,只有一个左联接,返回100行,每行返回7小列。 当我在MySQL CLI中(在运行有问题的PHP脚本的同一台计算机上)运行此查询时,它花费了0.10秒-即使抛出了SQL_NO_CACHE标志。 当我运行此查询时,通过PDO进行准备需要9秒钟以上。这 仅 是execute(

  • 我知道要冬眠。我有一个sql语句 我尝试用createCriteria和HQL实现它。 HQL: 问题是,此HQL的执行时间延长了10倍。并执行许多不必要的查询。我尝试使用注释字符串进行转换,它有了一些改进,但仍然比createCriteria查询长5倍,此外,我无法进行此转换 <代码>列表 版本数据防御