我有一个 mysql 表列(运行),它包含一个整数,我想通过单击按钮使用更新查询将它增加另一个动态值(1、2、3、4、5)。我该怎么做?
(如果不从该表列中检索原始值,是否有任何直接的方法来增加值,不像 AUTO_INCREMENT 因为它使用静态值来实现)
我有一个 mysql 表列(运行),它包含一个整数,我想通过单击按钮使用更新查询将它增加另一个动态值(1、2、3、4、5)。我该怎么做?
(如果不从该表列中检索原始值,是否有任何直接的方法来增加值,不像 AUTO_INCREMENT 因为它使用静态值来实现)
我在这里检查了有关 MySql 的文档,看来您可以使用如下更新查询来做到这一点:
UPDATE t1 SET col1 = col1 + 1;
只要 col1 也是数字,您就可以将 1 更改为任何数值。MySql 将获取 col1 的初始值并将您的数字添加到其中。
即使 MySql 可以做到这一点,我猜这也会对速度产生影响,它可能比 2 个查询更快,但可能需要测试以确定差异。
当遇到软件速度问题时,只为一个值保存选择查询并不是优化应用程序可以做的关键修改。正如 Digvijay Yadav 建议的那样,您还应该检查其他解决方案和其他优化,以使您的应用程序更快。
该页面上的另一个示例也表明您正在尝试做的事情是:
UPDATE t SET id = id + 1 ORDER BY id DESC;
请尝试一下,如果它不起作用,请告诉我。
如果数据库交互是主要问题,那么在这种情况下,我建议不要在每次用户点击时读取/写入数据库。相反,您应该检索一次值并将它们存储在 DS(可能是数组或列表)中。每次单击时,您都在此列表上执行操作,并在一段时间后使用更新的值更新数据库。
此外,如果您在每次读/写操作时都创建和销毁数据库连接,那么我不建议这样做。一个更好的解决方案 IMO 是在您的 web 应用程序启动时创建一个数据库连接,并将connection
对象存储在您使用 servlet 和 JSPServletContext
的as 中。attribute
此外,如果您的 Web 应用程序太大并且有数千个用户,那么有几种缓存技术可以提高 DB 的性能。