相关疑难解决方法(0)

MySql Server 性能缓慢 - 检查什么以及如何检查?

开始:免责声明

我不是 MySql Server DBA;我主要了解 MSSQL - 这就是为什么我需要你的帮助。

结束:免责声明

我被要求检查为什么 MySql 服务器引擎表现不佳 - 我没有看到或持有所涉及的数据库,想知道从哪里开始。

我从哪里开始?

我应该问那些有权访问 MySql 的人什么问题——我什至不知道他们是在使用 phpmyadmin 还是其他一些工具。

本质上:

  • 我应该要求哪些物品,我将如何回应他们提供的每件物品?

当问题出在数据库性能上时,需要询问的关键项目是什么?

在 MSSQL 中,我可以检查sp_who2现有连接以查看是否有任何阻塞,mysql 中的对应项是什么?* 不必很具体,因为每个项目可能有多种结果,但希望帮助您解决问题,因为它会影响用户 - 显然他们在没有 dba 的情况下设置了 mysql 引擎。

mysql performance

10
推荐指数
1
解决办法
6万
查看次数

为什么 MySQL 会产生这么多的临时 MYD 文件?

在 Debian Linux 服务器上,托管许多 PHP/MySQL 网站(图片库),有时我有“很多”文件,例如/tmp/#sql_6405_58.MYD.

例如今天:

[2012-12-15 15:18:11] /tmp/#sql_6405_6.MYD : 88MB
[2012-12-15 15:18:11] /tmp/#sql_6405_3.MYD : 22MB
[2012-12-15 15:18:11] /tmp/#sql_6405_4.MYD : 138MB
[2012-12-15 15:18:11] /tmp/#sql_6405_10.MYD : 88MB
...
[2012-12-15 15:18:11] /tmp/#sql_6405_9.MYD : 15MB
[2012-12-15 15:18:11] /tmp/#sql_6405_65.MYD : 49MB
[2012-12-15 15:18:11] /tmp/#sql_6405_44.MYD : 69MB
Run Code Online (Sandbox Code Playgroud)

(同时 59 个文件,超过 6GB...是的,我在 /tmp 中监控大文件)

不幸的是,/tmp它在同一个分区上/,它暂时中断了 Web 服务器,因为/我想是满的。然后文件消失,服务器恢复正常。

所有文件名都遵循该#sql_6405_*.MYD模式。我想了解哪个 MySQL 操作意味着这么多临时文件。我在这台服务器上有大约 2000 个数据库。是否有可能知道涉及哪个数据库?

mysql myisam temporary-tables

9
推荐指数
2
解决办法
3万
查看次数

同时创建多个mysql临时表是不是很糟糕?

我需要进行大量的统计分析才能向用户提供一些数据。目前,我从 mysql 捕获数据并通过PHP数组处理它们。但是,mysql 临时表要好得多(比 PHP 数组效率更高、速度更快;显然是由于它们的机制)。

我的暂定解决方案是在每次请求(即连接)时形成一个临时表来导入和处理数据。但是,我不确定同时创建多个临时表是否有缺点?

这会给mysql服务器带来问题吗?或者我可以在众多同时请求中使用它作为 PHP 数组的替代方案?

mysql memory mysql-5.5 temporary-tables

8
推荐指数
1
解决办法
8981
查看次数

是否有 MySQL 引擎或技巧可以避免将如此多的临时表写入磁盘?

我有一个 Web 应用程序连接到运行 MySQL 的数据库。

问题在于:大量查询创建了临时表,并且涉及的许多表都具有 BLOB 字段。这意味着我在磁盘上创建了很多临时表(这里描述了这种行为https://dba.stackexchange.com/a/17679/16724),这会导致非常糟糕的性能。

有没有办法轻松解决这个问题?也许一些叉子或其他可插拔引擎?我实际上正在运行 MySQL (XtraDB) 的 Percona fork,但它与 vanilla InnoDB 存在相同的问题。坦率地说,我正在考虑改用 Postgres。

谢谢

mysql temporary-tables

5
推荐指数
1
解决办法
6042
查看次数