【发布时间】:2010-10-10 02:59:39
【问题描述】:
经过大量工作,我终于得到了一个相当复杂的查询,可以非常顺利地工作并很快返回结果。
它在开发和测试中运行良好,但现在测试速度已大大放缓。 在开发中花费 0.06 秒并且在测试中大致相同的解释查询现在在测试中是 7 秒。
解释略有不同,我不知道为什么会这样 来自开发者的解释
-+---------+------------------+------+ ------------------------------ ---+ |编号 |选择类型 |表|类型 |可能的键 |钥匙 | key_len |参考 |行 |额外的 | +----+-------------+------------+--------+-------- -----------------+------------ -+---------+------------------+------+ ------------------------------ ---+ | 1 |初级 | |全部 |空 |空值 |空 |空 | 5 | | | 1 |初级 |门票 |参考 |投标日期_idx |出价日期_idx | 7 |演出日期.出价,演出日期.日期 | 78 | | | 2 |派生 |节目 |全部 | biddate_idx,latlong_idx |空值 |空 |空 | 3089 |使用临时的;使用文件 rt | | 2 |派生 |流派 |参考 | bandid_idx | bandid_idx | 4 | activehw.shows.bid | 2 |使用索引 | | 2 |派生 |艺术家 | eq_ref |出价IDX | bid_idx | 4 | activehw.genres.bid | 1 |使用哪里 | +----+-------------+------------+--------+-------- -----------------+------------在测试中
|编号 |选择类型 |表|类型 |可能的键 |关键 | key_len |参考 |行 |额外 | +----+-------------+------------+--------+-------- -----------------+--------------+---------+-------- ----------------------+--------+------------------ --------------------------------------------+ | 1 |初级 | |全部 |空 |空 |空 |空 | 5 | | | 1 |初级 |门票 |参考 |投标日期_idx |投标日期_idx | 7 |演出日期.出价,演出日期.日期 | 78 | | | 2 |派生 |流派 |索引 | bandid_idx | bandid_idx | 139 |空 | 531281 |使用索引;使用临时的;使用文件排序 | | 2 |派生 |艺术家 | eq_ref |出价IDX |出价IDX | 4 | activeHW.genres.bid | 1 | | | 2 |派生 |节目 | eq_ref | biddate_idx,latlong_idx |投标日期_idx | 7 | activeHW.artists.bid | 1 |使用位置 | +----+-------------+------------+--------+-------- -----------------+--------------+---------+-------- ----------------------+--------+------------------ --------------------------------------------+ 5 行一组(6.99 秒)尽管查询完全相同,但表的顺序是不同的。 这是导致减速的原因吗?如果是这样,我将如何解决它? 开发是windows,测试是centOs。 两者都运行相同版本的 mysql 5.0,就像我说的,测试运行完美,我没有对数据库进行任何结构更改。
我运行了 mysqlcheck,所有表都恢复正常。
【问题讨论】:
-
如果一个是Windows,另一个是Linux,它们几乎不一样......
标签: mysql join sql-execution-plan