通过 jQuery ajax 刷新 mysql 查询会使数据库崩溃吗?
Posted
技术标签:
【中文标题】通过 jQuery ajax 刷新 mysql 查询会使数据库崩溃吗?【英文标题】:Does refreshing mysql query by jQuery ajax crashs the database? 【发布时间】:2010-09-11 23:44:30 【问题描述】:我正在使用 jQuery .ajax 函数加载 php 页面,其中包含一个 mysql 查询,该查询从数据库中选择数据,但我的问题是:通过 jQuery ajax 刷新 mysql 查询是否会崩溃或使数据库疲劳?
信息:使用 setInterval() 刷新 1 秒。
已编辑:这是我用来刷新它们的查询。
SELECT * FROM table1 ORDER BY id DESC
SELECT * FROM table1 ORDER BY id ASC LIMIT 10
DELETE FROM table1 WHERE id = 'something'
我会回答我的。 提前致谢
【问题讨论】:
这完全取决于您的查询在做什么以及完成多少用户打开和更新此页面以及其他一些事情需要多长时间...如果您想要更好的答案提供信息关于查询和数据库架构以及使用估计中的任何其他相关信息以及其他信息。 我编辑并放置了我使用的查询 【参考方案1】:即使在低端硬件上运行,MySQL 也能够每秒处理数百个查询。
但是,您仍然可能使数据库服务器“疲倦”,尤其是在您运行非常复杂的查询时,或者您的表上没有必要的索引时。您可能想使用EXPLAIN
语法来查看 MySQL 是如何执行您的查询的。
【讨论】:
【参考方案2】:不,它不会使数据库崩溃(它怎么可能?)。当然,如果您大量请求运行 mysql_query 的脚本,它可能会导致 DoS(但通常它需要非常大量的请求才能关闭服务器)。
编辑:您的更新说明您正在使用 setInterval() 1 秒。在这种情况下,它取决于有多少用户将同时打开该页面。例如。假设该站点上有 1000 个用户 - 这将导致每分钟触发 60.000 个请求 + 查询。如果您的查询只是一个简单的选择,它可能不是问题。如果您进行慢速查询,您可能需要检查 slow query log 以改进您的查询 - 或者更改脚本的行为。
【讨论】:
【参考方案3】:什么是mysql查询?它是用户特定的吗?如果没有,最好每秒缓存一次值服务器端并使用 ajax 来获取此缓存文件,而不是让所有用户同时请求相同的数据。
【讨论】:
以上是关于通过 jQuery ajax 刷新 mysql 查询会使数据库崩溃吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用 JQuery、PHP 和 MySQL 为实时统计页面优化多个连续的 ajax 调用
页面仅在第一次通过 jquery 在 mvc 中刷新 ajax 调用响应
无需刷新页面如何使用 ajax/jQuery 显示数据库中的值