mysql 执行后 sending data 占用时间82% 的时间 总耗时要3秒左右,关键是我是在NetBeans中关联这个视图
不可能每次执行程序都要等3秒。SELECT`pd`.`id`AS`id`,`pd`.`Service_number`AS`Service_number`,`pd`.`pr...
不可能每次执行程序都要等3秒。
SELECT
`pd`.`id` AS `id`,
`pd`.`Service_number` AS `Service_number`,
`pd`.`project_date` AS `project_date`,
`pd`.`project_name` AS `project_name`,
`pd`.`Responsible_project` AS `Responsible_project`,
`pd`.`Business_units` AS `Business_units`
FROM
`project_detail` `pd`
WHERE
NOT
EXISTS(
SELECT
1
FROM
`project_detail`
WHERE
`project_detail`.`Service_number` = `pd`.`Service_number`
AND
`project_detail`.`project_date` > `pd`.`project_date`) 展开
SELECT
`pd`.`id` AS `id`,
`pd`.`Service_number` AS `Service_number`,
`pd`.`project_date` AS `project_date`,
`pd`.`project_name` AS `project_name`,
`pd`.`Responsible_project` AS `Responsible_project`,
`pd`.`Business_units` AS `Business_units`
FROM
`project_detail` `pd`
WHERE
NOT
EXISTS(
SELECT
1
FROM
`project_detail`
WHERE
`project_detail`.`Service_number` = `pd`.`Service_number`
AND
`project_detail`.`project_date` > `pd`.`project_date`) 展开
1个回答
展开全部
你的sql逻辑是:如果不存在(服务号相同 且 时间不同)的数据,则把表里所有数据统统拿出。
你看下我说的sql逻辑是否有错?
看这个表的名字我感觉这个表不会太小,你的sql一次性就要拿全表的数据,这个数据集应该很大sending data时间长是肯定的了。
我有3个建议,你参考下:
1、在where条件中加入更多条件减少返回数据。例如加个日期限制
2、在select后面加上:HIGH_PRIORITY 关键字提高语句优先级
3、用explain分析下语句,看下data、number等字段索引是不是工作正常
你看下我说的sql逻辑是否有错?
看这个表的名字我感觉这个表不会太小,你的sql一次性就要拿全表的数据,这个数据集应该很大sending data时间长是肯定的了。
我有3个建议,你参考下:
1、在where条件中加入更多条件减少返回数据。例如加个日期限制
2、在select后面加上:HIGH_PRIORITY 关键字提高语句优先级
3、用explain分析下语句,看下data、number等字段索引是不是工作正常
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |