mysql - 为什么 MySQL Data Connector 比 MySQL Query Browser 花费的时间长得多?

标签 mysql

我有一个来自单个表的非常简单的查询(三个 where 条件;两个等于,一个介于两者之间),在 MySQL 查询浏览器中,查询运行时间不到半秒,返回 8300 条记录。如果我使用 MySQL 数据连接器(实际上只是一个 OLEDB 包装器)运行完全相同的查询,大约需要 35 秒。

正在使用的引擎是 MyISAM(如果重要的话)。我正在使用 Visual Studio 2008(如果重要的话)。编辑:使用 MySQL 数据连接器 5.2.5。编辑,编辑:切换到 MySQL Data Connector 6.0.3(最新)将其缩短到 29 秒。

查询是:

select drh_data.reading_time, drh_data.raw_value, drh_data.float_value, drh_data.data_quality
from drh_data
where drh_data.site_id=202
and drh_data.device_id=7
and reading_time between '2009-04-08 11:15:01' and '2009-05-08 11:15:02'
order by drh_data.reading_time desc;

有什么想法吗?

更新:我终于开始检查 CPU 使用率(如回答者所建议的那样),发现我的应用程序使用了 50% 的 CPU 时间。运行 MySQL(在 CentOS 中)的 VirtualPC 框在那 20(左右)秒内有 0%,所以问题都在客户端。我还对查询运行了 Explain,结果如下:

id  select_type table   type    possible_keys                               key                             key_len     ref     rows    Extra
1   SIMPLE  drh_data    range   PRIMARY,idx_site_device_reading_receive     idx_site_device_reading_receive 11                  7674    Using where

我在这里很忙。有没有人有解决这个问题的想法?我正准备通过 LIMIT 拆分选择,但我认为我不应该这样做。

最佳答案

我建议检查那几秒钟的工作(CPU 使用率),它是 mysql 还是您的代码或其他东西。您还可以考虑使用 EXPLAIN 来查看在一种或另一种情况下发生的情况并进行比较。

关于mysql - 为什么 MySQL Data Connector 比 MySQL Query Browser 花费的时间长得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/841169/

相关文章:

mysql - 从子查询中选择具有相同名称的列

mysql - SQL Select 将行数据分散到列

php - 使用php操作MySQL数据库

php - FLASH as3 无法识别 localhost php 网址

php - 在通过 PHP 中的 CSV 上传插入数据库之前检查重复项

php - 根据所做的选择选择框加载

php - 单个 MYSQL 查询中的单独语句

mysql - 我如何将 .csv 数据转换为 mysql?

php - MySQL Import 通过 PhpMyAdmin 成功导入转储文件。但是通过PHP导入不行

mysql - laravel 列没有默认值