Php 与AJAX异步使用MySQL的性能问题
这本身并不是一个真正的问题,但更多的是一个关于效率的问题 基本上,我有一个index.php文件,用于处理我正在构建的站点的主代码。在这些代码中有几个JavaScript/JQuery函数,它们使用$.ajax()处理使用其他php文件的数据 我使用了两个与MySQL数据库交互的函数(注意,这些函数不是完全实现的函数) 一个用于更新数据库:Php 与AJAX异步使用MySQL的性能问题,php,jquery,ajax,performance,pdo,Php,Jquery,Ajax,Performance,Pdo,这本身并不是一个真正的问题,但更多的是一个关于效率的问题 基本上,我有一个index.php文件,用于处理我正在构建的站点的主代码。在这些代码中有几个JavaScript/JQuery函数,它们使用$.ajax()处理使用其他php文件的数据 我使用了两个与MySQL数据库交互的函数(注意,这些函数不是完全实现的函数) 一个用于更新数据库: function updateDB(text) { $.ajax({ url: "update_db
function updateDB(text) {
$.ajax({
url: "update_db.php",
type: "POST",
data: {text:text},
});
}
function displayText() {
$.ajax({
url: "display_text.php",
type: "POST",
data: {},
});
}
还有一个用于从数据库获取信息:
function updateDB(text) {
$.ajax({
url: "update_db.php",
type: "POST",
data: {text:text},
});
}
function displayText() {
$.ajax({
url: "display_text.php",
type: "POST",
data: {},
});
}
在这两个文件(“update_db.php”和“display_text.php”)的顶部,我包含一个使用PDO连接到数据库的.php文件:
<?php require_once('connect_to_db.php'); ?>
但是,这似乎效率低下,因为在运行index.php文件时,数据库被访问了两次,一次用于更新数据库,一次用于显示数据库内容
我的问题是:两次连接数据库有什么缺点吗?我的假设是,这将使数据库操作陷入困境,执行函数的速度变慢
如果存在缺陷,是否有一种方法可以只连接到数据库一次,即使main index.php调用两个不同的文件,每个文件都必须连接到数据库
我主要感兴趣的是学习如何编写更高效的代码,以及如何使文件处理更高效。欢迎提出任何建议 两次连接到数据库没有实际问题(如果在两个单独的请求中进行连接,则必须这样做)
如果update_db.php后面总是跟着display_text.php调用,则update_db.php可能会返回display_text.php通常会发送的数据,从而消除页面中的一个请求 如果您使用的是持久连接,我认为不会有问题
如果您想编写更高效的代码,请尝试在页面末尾的一个调用中使用一个ajax调用来处理所有代码。获取然后更新(或您需要执行的任何操作)。您可以使用持久连接,但这确实是个坏主意,您可以在此处查看更多详细信息: 如果你考虑性能,你应该考虑很多事情,比如你应该使用include和notinclude\u,或者。。。检查这里 对于你的问题,我认为,你应该选择其中一种解决方案
如果您发出两个单独的请求,则必须连接两次。如果您将这两个请求合并为一个请求,则只需连接一次即可。在页面的生命周期中,执行多个ajax请求返回服务器并不少见,只要请求不是很重。显然,只做一个会更有效,但是将它分成两个可能会更易于维护,就像您现在拥有的一样。我建议使用更易于维护的方法,除非性能成为一个问题。还可以看看设计模式,比如模型-视图-控制器。模式将帮助您编写更高效的代码。谢谢您的建议!我有点熟悉MVC模式,但还没有在很大程度上使用它。我试图将两者分开,因为它们并不总是一起使用。将布尔变量传递给ajax脚本是个好主意吗?类似于“如果(已建立连接){}其他{//make connection}”的内容?