3

我想知道是否有任何方法可以测量覆盖文件与更新 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 倍,但如果有人对如何获取准确信息有更好的解释和实用指南,那将会很有帮助。

谢谢

4

1 回答 1

2

目标:测量更新单行 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";
...

让我们知道结果 :)

于 2013-09-26T08:00:31.547 回答