我想知道是否有任何方法可以测量覆盖文件与更新mysql数据库之间的开销时间差和资源消耗(内存)。让我们假设我正在更新一行,但有两个语句。意思是我必须首先获取结果的数据库:
SELECT personName FROM emplyees WHERE id = 1
然后取了那个名字我会更新
UPDATE employees SET personName = 'foo' WHERE personsName = '$queryResult'
现在,所有关于简单文件的查询都会覆盖,就像这样
$file = 'personName.txt';
fwrite(fopen($file, 'w'), 'newName');
我猜当然,覆盖文件需要的时间和资源更少,但是直到什么程度呢?文件必须考虑选择执行类似任务的查询多少?
就像一个狂野的猜测,我在想,文件的速度比更新行快10倍,但如果有人有更好的解释和实用指南如何获得准确的信息,那将会很有帮助。
感谢
答案 0 :(得分:1)
目标:使用单行测量更新MySQL表中的字符串列所花费的时间,而不是使用文件系统中的相同字符串重写文件。
考虑是否需要花时间连接到mysql服务器并断开连接(我有一种直觉,他们会比查询本身花费更多时间)
...
$val = $_SERVER['REMOTE_ADDR']
$start = microtime(true);
$con=mysqli_connect("example.com","user","pass","my_db");
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$mysqli->query("UPDATE employees SET personName= '$val'");
$mysqli->close();
echo "Time taken for MySQL: ".microtime(true)-$start."s";
$start = microtime(true);
$file = 'personName.txt';
$fpointer = fopen($file, 'w');
fwrite($fpointer, $val);
fclose($fpointer);
echo "Time taken for FileSystem: ".microtime(true)-$start."s";
...
让我们知道结果:)