我有一个正在运行的本地网站,它将通过 html 表单给出的输入查询 mysql 数据库。表单值通过 jQuery 发送到 php 来调用查询。如果网站刷新,有没有办法向 mysql 服务器发送命令来终止查询?
目前,如果我刷新,最后一个 mysql 调用仍然会运行,因此网站将被锁定,直到该查询完成。
编辑:为了提供更多关于该网站的背景信息,它是一个本地网站,仅基于大型数据库(3 个表都在1 - 5 百万条记录范围)。我指的“锁定”是无法放弃查询并尝试更有效的查询(即会更多地限制我的结果)。
最佳答案
也许有(它通常涉及从 MySQL Processlist 中选择最后一个进程 ID 并对该进程 ID 发出 KILL QUERY),但我认为您应该首先尝试解决一些问题。
首先,为什么一个查询会“锁定”一个网站?我可能嗅到了设计缺陷。
JavaScript 可以用来让浏览器在刷新时“命中”服务器,但这只是添加另一个 AJAX 调用,大概还有另一个 MySQL 查询(与进程列表有关)和需要编写更多 PHP 来处理 AJAX 调用、进程列表查找和 KILL QUERY 查询...
我建议你尝试让服务器/MySQL 查询更高效,这样无论浏览器是否刷新,你都不必飞快地翻转。至于浏览器安全性,您可能可以使用 PHP 或 JavaScript 对重复刷新实现某种“洪水限制”......
关于javascript - 如果网站刷新,则停止 php 调用的 mysql 服务器运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27297005/