当前位置:  开发笔记 > 后端 > 正文

UPDATE LOW_PRIORITY和INSERT DELAYED INTO的优点是什么?

如何解决《UPDATELOW_PRIORITY和INSERTDELAYEDINTO的优点是什么?》经验,为你挑选了2个好方法。

我正在浏览一些代码并注意到它UPDATE LOW_PRIORITYINSERT DELAYED INTO用于更新数据库.这些陈述的用途是什么?我应该在同一数据库中的各种表的每个insert和update语句中使用它们吗?



1> Sjoerd..:

使用LOW_PRIORITY关键字,UPDATE的执行将延迟,直到没有其他客户端从表中读取.通常,读取客户端将被保留,直到更新查询完成.如果要使读取客户端优先于更新查询,则应使用LOW_PRIORITY.

该延迟 INSERT语句的选择是一个MySQL扩展到标准SQL,如果您的客户端不能或不必等待INSERT完成,这是非常有用的.这是一个常见的情况,当你使用MySQL进行日志记录,你也周期性地运行需要较长时间才能完成SELECT和UPDATE语句.


另请注意:自MySQL 5.6.6起,不推荐使用INSERT DELAYED,并在5.7中删除

2> Federico Raz..:

LOW_PRIORITY,HIGH_PRIORITY并且DELAYED仅在少数环境中有用.如果你没有大负荷他们无法帮助你.如果你有,不要做任何你不完全理解的事情.

所有这些otpions只适用于MyISAM,而不是InnoDB,而不是视图.

DELAYED不适用于分区表,它显然是为数据仓库设计的.客户端发送插入,然后忘记它,而不等待结果.因此,您将不知道插入是否成功,是否存在重复值等.当其他线程可以SELECT从该表中时,它永远不会被使用,因为延迟的插入永远不会并发.

LOW_PRIORITY等到没有客户端访问该表.但是如果你有高流量,你可能要等到连接超时...这不是你想要的,我想:)

另请注意,DELAYED将在Oracle MySQL 5.7中删除(但不会在MariaDB中删除).

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有