如何提高Windows XP中MYSQL ODBC 3.51驱动程序的速度?
如何提高Windows XP中的MYSQL ODBC驱动程序3.51的速度?如何提高Windows XP中MYSQL ODBC 3.51驱动程序的速度?
这里的查询:
public static string sTableQueryUngroup =
" (SELECT
*
,(SELECT unit_param_desc
FROM tr_config_unit_params
WHERE unit_param_id={TABLE_NAME}.unit_param_id
AND unit_id={UNIT_ID}) as unit_param_desc
FROM {TABLE_NAME}
WHERE unit_param_id IN
(SELECT unit_param_id
FROM tr_config_unit_params
WHERE unit_id={UNIT_ID}) " + "
AND " + " {COLUMN_NAME} " + " BETWEEN '{FROM_DATE}' and '{TO_DATE}')";
我的第一台tr_config_unit_params结构
unit_param_id unit_id unit_param_desc unit_param_opc_progid unit_param_host unit_param_link unit_param_data_type unit_param_type groupID tagID
我的第二个表(日期明智)r20111010
`unit_param_id`
`param_value`
`OPC-date `
`param_quality`
`PC_date_logged`
我从使用的两个表第一个表(tr_config_unit_params)列的unit_param_id与另一个表(r2011101 0)unit_param_id &选择两个日期之间的数据(按PC_date_logged或OPC日期排序)。我想从表格中选择特定的单位(如集合组)ID信息。
在我责怪司机之前,我会查看您的查询。
EXPLAIN PLAN并查看您的查询速度缓慢。如果您看到TABLE SCAN,它就在您身上。
确保WHERE子句中的变量应用了索引。
公共静态字符串sTableQueryUngroup = “(选择*,(从tr_config_unit_params选择unit_param_desc其中unit_param_id = {} TABLE_NAME和.unit_param_id UNIT_ID = {UNIT_ID})从unit_param_desc {TABLE_NAME}其中” + “unit_param_id中(从其中tr_config_unit_params选择unit_param_id unit_id = {UNIT_ID})“+”和“+”{COLUMN_NAME}“+”在“{FROM_DATE}”和“{TO_DATE}”之间)“”;我已经使用这两个表来选择查询 – user847455
不要把它们发送给我;在您的数据库中解释计划。这会给你更多的信息,而不是一千个猜测的答案。 – duffymo
您可以通过运行'EXPLAIN SELECT someValues from someTable'来获得查询的EXPLAIN PLAN;' –
,你的问题是与SQL,而不是与ODBC驱动程序是很容易建立,只是尝试查询直接使用原生的MySQL工具,它不使用ODBC驱动程序。
我相信,你会发现你的查询慢慢无需驱动程序同样运行(在诸如此类的情况下这样做非常少)。
我会说这个问题与你的查询 - 我发现它非常详细,并不真正明白你为什么这样运行它,虽然你的语法很难确定你到底想做什么正如我所看到的,这个查询可以被表达,并且两个表之间的简单闭合连接不会超出子选择。
卸下子选择将从根本上提高在这种情况下,你的表现。除此之外,请查看@ duffymo's anwser并使用EXPLAIN查看一些适当的索引可以帮助您。
首先 - 尝试重写你的查询,更改子查询与JOIN,例如 -
SELECT *, p.unit_param_desc FROM <TABLE_NAME> t
JOIN (SELECT * FROM tr_config_unit_params WHERE unit_id = <unit>) p
ON t.unit_param_id = p.unit_param_id
WHERE <COLUMN_NAME> BETWEEN <'{FROM_DATE}'> and <'{TO_DATE}'>;
...括号<改变文本...>与精确值。
20秒不正常,查询一个简单的表,其中有3条记录。可能不是因为司机,我会说。 – 2011-10-10 09:49:34