这取决于很多不同的因素,举几个例子 有多少用户是本周最佳用户?5, 10, 100? 数据库当前生成了多少负载?您是只查询用户还是同时处理登录/日志解析/。。。用它? 您使用的是哪个数据库引擎? 您使用的是ssd还是hdd(只在大文件时才重要) 你在用哪个操作系统(内存中的一些缓存文件) 你使用持久的mysql会话吗? 我总是尝试将这些数据存储在数据库中,并在其中添加时间戳,以便能够同时显示过去的数据或从中创建统计信息;这样,我也可以简单地存储用户ID,而不需要从数据库中单独加载数据(例如。 SELECT user.name FROM user, user_of_week WHERE user.id = user_of_week.user AND user_of_week.weekid = 120 ORDER BY user_of_week.position ASC; ) 您可以自己尝试针对特定案例进行测试—编写一个测试脚本并在测量时间的同时加载100次:
header('Content-Type: text/plain;charset=utf-8');
// Connect to database here
$TestAmount = 100;
$OverallTime = 0;
for($i = 0; $i < $TestAmount; $i++) {
// Read current time
$start = microtime(true);
// Load data from database here
// Get the amount of time it took
$time = microtime(true) - $start;
echo $i .': took '. $time ."\n";
$OverallTime += $time;
}
echo 'Overall time: '. $OverallTime ."\n";
echo 'Average: '. ($OverallTime / $TestAmount);
// Close connection to database here
这将输出类似的内容:
0: took 4
1: took 5
Overall time: 450
Average: 4.5
1条答案
按热度按时间jgwigjjp1#
这取决于很多不同的因素,举几个例子
有多少用户是本周最佳用户?5, 10, 100?
数据库当前生成了多少负载?您是只查询用户还是同时处理登录/日志解析/。。。用它?
您使用的是哪个数据库引擎?
您使用的是ssd还是hdd(只在大文件时才重要)
你在用哪个操作系统(内存中的一些缓存文件)
你使用持久的mysql会话吗?
我总是尝试将这些数据存储在数据库中,并在其中添加时间戳,以便能够同时显示过去的数据或从中创建统计信息;这样,我也可以简单地存储用户ID,而不需要从数据库中单独加载数据(例如。
SELECT user.name FROM user, user_of_week WHERE user.id = user_of_week.user AND user_of_week.weekid = 120 ORDER BY user_of_week.position ASC;
)您可以自己尝试针对特定案例进行测试—编写一个测试脚本并在测量时间的同时加载100次:
这将输出类似的内容:
对文件重复相同的步骤并进行比较。
在文件中存储数据时,您还可以使用json之类的东西—这更容易解析。