Java MYSQL慢速查询
我们的Java应用程序运行得非常慢 这种情况有多种原因,其中一个主要原因可能是应用程序中的MySQL代码使用两个不同的表来获取数据,并进行连接。是否有人能够建议如何更好地编写此查询以提高性能Java MYSQL慢速查询,java,mysql,performance,Java,Mysql,Performance,我们的Java应用程序运行得非常慢 这种情况有多种原因,其中一个主要原因可能是应用程序中的MySQL代码使用两个不同的表来获取数据,并进行连接。是否有人能够建议如何更好地编写此查询以提高性能 选择不同的唯一ID 来自广告模块 加入广告模块上的广告。IDadvisement=广告。IDadvisement 加入广告上的advertisementschedule.idAdvertisementSchedule=advertisementschedule.idAdvertisementSchedule
选择不同的唯一ID
来自广告模块
加入广告模块上的广告。IDadvisement=广告。IDadvisement
加入广告上的advertisementschedule.idAdvertisementSchedule=advertisementschedule.idAdvertisementSchedule
在advertisementschedule.idAdScheduleGroup=adschedulegroup.idAdScheduleGroup上加入adschedulegroup
其中adschedulegroup.publisherCode='ABC';
挑选*
来自陶鲁斯托尔
加入Themestaurus
唯一的在哪里(
'18538'
,'17142'
,'11248'
,'18458'
)
空气是真实的;
哪个表是唯一ID
更具可读性:
SELECT DISTINCT uniqueId
FROM advertisementmodule AS m
JOIN advertisement AS a
ON m.idAdvertisement = a.idAdvertisement
JOIN advertisementschedule AS s
ON a.idAdvertisementSchedule = s.idAdvertisementSchedule
JOIN adschedulegroup AS g
ON s.idAdScheduleGroup = g.idAdScheduleGroup
WHERE g.publisherCode = 'ABC';
您是否有一个以publisherCode开头的索引?对于上述查询,
explain select…
显示了什么内容。将结果分享到问题中。“可能是主要原因之一”——你确定吗?引用Donald Knuth的话,“过早优化是万恶之源。”。分析代码以确保您正在优化需要优化的内容。如果延迟落在查询上-您要加入的列是否已索引?哪个DBMS?sqlserver和mysql不一样。也许可以分享更多细节。解释表格的内容和数量。告诉我们运行查询需要多长时间,以及应该有多快。您的第二个查询没有指定联接条件。它最终将成为交叉连接。