我想测试mysql服务器(5.7.22都安装使用apt-get)的速度在ubuntu桌面与ubuntu服务器上的学校项目。我有一个脚本,它运行3个sql查询,每个查询10000次,并将每个查询完成所需的时间写入一个文件中。在ubuntu桌面(18.04 64位)上,我的查询平均耗时约10毫秒,但在我的ubuntu服务器(18.04 64位)上,每个查询耗时2.5秒,这使得它永远无法与其他结果集兼容。我不知道为什么会这样,它们在同一个磁盘上,拥有相同的资源(cpu、ram和保存在同一个ssd上),它们都在virtualbox中运行(但我测试它们时一次只运行一台机器)。
我正在使用mysql中的示例“employees”数据库。
我的剧本:
# !/bin/bash
AantalQ=3 #Amount of queries.
AantalHH=10000 #How often to repeat the queries.
for ((i=1; i<=AantalQ; i++)); do #Loop through queries.
for ((j=0; j<AantalHH; j++)); do #Repeat the current query.
echo "Query$i uitvoering $j" #Progress.
time (mysql --login-path=local employees < "Query$i.sql" > null) 2>> tijd.csv
done
done
sed -i.bak '/real/!d' tijd.csv #Delete all lines without 'real'.
tr -dc "0-9\n" <tijd.csv >temp.tmp && mv temp.tmp tijd.csv #Delete everything except for numbers.
sed -i.bak 's/^0*//' tijd.csv #Delete leading zeros.
我的问题:
1
USE employees;
SELECT SUM(salaries.salary),
AVG(salaries.salary),
MAX(salaries.salary),
COUNT(employees.emp_no)
FROM employees
JOIN salaries ON employees.emp_no=salaries.emp_no;
2
USE employees;
SELECT * #208734 records
FROM employees
JOIN salaries ON employees.emp_no=salaries.emp_no
WHERE first_name LIKE 'A%' AND salary > 2500;
三。
USE employees;
SELECT concat(first_name, ' ', last_name) as fullname, de.from_date, de.to_date, dept_name, dm.from_date, dm.to_date, title, salary
FROM employees e
JOIN salaries s ON e.emp_no = s.emp_no
JOIN titles t ON e.emp_no = t.emp_no
JOIN dept_emp de ON e.emp_no = de.emp_no
JOIN departments d ON d.dept_no = de.dept_no
JOIN dept_manager dm ON d.dept_no = dm.dept_no
WHERE first_name LIKE 'B%' OR first_name LIKE 'C%' OR first_name LIKE 'Z%'AND last_name LIKE 'C%' OR last_name LIKE 'O%' OR last_name LIKE 'X%';
#WHERE DATE(birth_date) BETWEEN '1980-01-01' AND '1980-01-01'
提前谢谢!
1条答案
按热度按时间yhived7q1#
通过执行以下操作安装mysqltuner
并在每个虚拟机上运行它。希望它能告诉你在分析过程中有什么不同。祝你好运!