【问题标题】:Mysql server slower on Ubuntu server than Ubuntu desktopUbuntu服务器上的Mysql服务器比Ubuntu桌面慢
【发布时间】:2018-05-05 01:59:32
【问题描述】:

我想在一个学校项目的 Ubuntu 桌面和 Ubuntu 服务器上测试 mysql-server(使用 apt-get 安装的都是 5.7.22)速度。我有一个脚本,它运行 3 个 sql 查询,每个 10000 次,并将每个查询完成的时间写入文件中。平均而言,我的查询在 Ubuntu 桌面(18.04 64 位)上大约需要 10 毫秒,但在我的 Ubuntu 服务器(18.04 64 位)上每次查询需要 2.5 秒,这使得它需要很长时间并且无法与其他结果集相比。我不知道为什么会这样,它们在同一个磁盘上并且具有相同的资源(CPU、RAM 并保存在同一个 SSD 上)它们都在 Virtualbox 中运行(但我只用一台运行在时间)。

我正在使用 mysql 中的示例“员工”数据库。

我的脚本:

#!/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;

3.

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'

提前谢谢你!

【问题讨论】:

  • 两台机器上的设置不能相同。您的 Ubuntu Server MySQL 设置不正确。
  • 我已经在两台机器上重新安装了 mysql-server,并以完全相同的方式进行了所有设置,但得到了相同的结果。在服务器和桌面版本上设置服务器的方式有区别吗?

标签: mysql ubuntu ubuntu-server


【解决方案1】:

通过执行安装 mysqltuner

apt-get install mysqltuner

并在每个虚拟机上运行它。希望它能向您展示分析过程中的差异。祝你好运!

【讨论】:

  • @max 如果您可以花时间发布 2018 年 5 月 8 日要求的桌面和服务器信息,我们将为您找到一些差异。是的,我知道这需要时间,并且请记住 pastebin.com 每篇文章的限制为 500MB,除非您是 pastebin PRO 会员(那么限制为 10GB)。
猜你喜欢
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 2014-10-21
  • 2013-11-22
  • 2017-07-06
  • 2017-10-28
  • 2012-01-27
相关资源
最近更新 更多