首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqlslap与mysqli_query的不同定时

mysqlslap与mysqli_query的不同定时
EN

Stack Overflow用户
提问于 2017-10-23 19:21:42
回答 1查看 64关注 0票数 1

我以两种不同的方式运行完全相同的查询(在两种方式的localhost上)

第一次使用mysqlslap

代码语言:javascript
复制
mysqlslap --iterations=100 --query="INSERT INTO table (id, name, distance, latlng, is_waypoint, path_id) VALUES (452, '', 0, 'blablablablablalblalbla', 0, 0);" --create-schema=myschema  --user=myuser

执行100次的总时间: 0.035秒.

其次,使用php脚本:

代码语言:javascript
复制
$sql = "INSERT INTO table (`id`, `name`, `distance`, `latlng`, `is_waypoint`, `path_id`) VALUES (452, '', 0, 'blablablablablalblalbla', 0, 0)";
$res = $g_Database->query($sql);

执行100次的总时间: 3.215秒.

结果怎么会如此不同呢?

不可能是mysql优化,因为第一个结果显示查询速度很快。也许是php连接?

代码语言:javascript
复制
   <?php


$db_hostname = "localhost";
$db_username = "xxx";
$db_password = "xxx";
$db_database = "xxx";


$iterations = 100;
$timings = array();

$sql = "INSERT INTO table (`id`, `name`, `distance`, `latlng`, `is_waypoint`, `path_id`) VALUES (442, '', 0, '{lat:43.".rand(0,1000) .",lng:1.".rand(0,100) ."}', 0, 0)";

$mysqli = new mysqli($db_hostname, $db_username, $db_password, $db_database);

for ($i = 0; $i < $iterations; $i++) 
{
    $timer = microtime(true);
    $mysqli->query($sql);
    $timings[] = microtime(true) - $timer;
}

echo "<pre>" . PHP_EOL;
echo "Serveur HTTP : " . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : "") . PHP_EOL;
echo "Val Min : " . min($timings) . PHP_EOL;
echo "Val Max : " . max($timings) . PHP_EOL;
echo "Val Total : " . array_sum($timings) . PHP_EOL;
echo "Val Avg : " . array_sum($timings) / count($timings) . PHP_EOL;
echo "</pre>";

?>

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-25 14:47:32

以下是产生差异的一些原因,以及基准测试中的缺陷。

如果idPRIMARY KEY,那么每次都会收到一个错误--重复键442。这让事情变慢了。请提供SHOW CREATE TABLE

mysqlslap打开了多个连接-多少?每个事务有多少次插入?让我们看看拍子的输出。您的PHP将只有一个连接。

PHP代码可能一次只提交一个插入。3.215 s对于100个插入件来说是不合理的慢;我希望在HDD上更像1s (在SSD上更快)。

min和max可能是信息丰富的;让我们看看您的输出。

每秒插入数千行是可能的,但需要比基准测试更高级的代码。

次级指数可能正在放缓。让我们看看SHOW CREATE TABLE

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46896991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档