gpt4 book ai didi

mysql - 大型结果集的数据传输缓慢

转载 作者:可可西里 更新时间:2023-11-01 08:54:48 26 4
gpt4 key购买 nike

我有一个大的 MySQL 表,有适当的索引等。我从远程机器运行一个简单的 select * 查询,我希望有一个大的结果集。

我的问题是,当我运行查询时,结果集返回的最大数据传输速度约为 300 KB/秒。我创建了相同的表,并在 SQLServer Express 2008 R2 上运行相同的查询,结果以 2MBytes/秒(我的行限制)的传输速度返回。

服务器机器是 Windows Server 2008 R2 x64,四核,4GB 内存,MySQL 版本是 5.6.2 m5 64 位。我尝试在通信协议(protocol)中禁用压缩,但结果是一样的。

有人知道为什么会这样吗?

--西奥多

最佳答案

您可能会将苹果与橙子进行比较。

我会在 MySQL 服务器上运行 SELECT *,看看在没有网络额外限制的情况下,在本地服务器上检索数据的数据速率是多少。

如果这也很慢——那么这不是网络的问题。

当 MySQL 安装程序运行时,它会询问设置 MySQL 的人 MySQL 将在硬件上扮演什么角色——即开发服务器、共享服务器、专用服务器。

所有这些的区别在于 MySQL 将寻求在服务器上消耗多少内存。

最慢的设置是 Development(使用最少的内存),最快的设置是 Dedicated(尝试使用大量内存)。您可以修改 my.ini 文件以更改 MySQL 将为自己分配多少内存,和/或谷歌“my.ini 内存”以获取更详细的说明。

MySQL 正在使用(或未使用,视情况而定)的内存会对性能产生巨大影响。

首先,检查MySQL服务器本地检索数据的速度是多少。如果它很慢,网络不是问题——检查 MySQL 的内存使用情况——最好尽可能多地给它。当然,如果它很快,那么要么是网络和/或某些数据库中间件(ODBC?),要么是用于显示数据的工具——很慢...

还有一件事——尝试 SELECT * TWICE... 为什么?第二次应该缓存部分或全部结果(同样,取决于内存)...第二次应该更快...

此外,不要忘记在更改 my.ini 文件时重新启动 MySQL(并在进行任何更改之前创建备份...)

关于mysql - 大型结果集的数据传输缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6870860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com